{
  "openapi": "3.1.0",
  "info": {
    "title": "DualEntry Public API",
    "version": "1.0.0",
    "description": ""
  },
  "paths": {
    "/public/v1/health/": {
      "get": {
        "operationId": "core_api_public_public_router_health_check",
        "summary": "API Health Check",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "title": "Response",
                  "type": "object"
                }
              }
            }
          }
        },
        "description": "Verify that the DualEntry Public API is operational and accepting requests.\n\nThis endpoint provides a quick way to:\n- Confirm API connectivity\n- Validate that your API key is working correctly\n- Check service availability for monitoring and uptime tracking\n\n**Response includes:**\n- `status`: Current health status of the API\n- `timestamp`: Current server time in ISO 8601 format\n\n**Note:** This endpoint is rate-limited like all other API endpoints. For high-frequency monitoring, consider using a dedicated monitoring service or increasing your rate limit.",
        "tags": [
          "Health"
        ],
        "x-mint": {
          "metadata": {
            "description": "Verify that the DualEntry Public API is operational and accepting requests.",
            "title": "API Health Check (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/health/api-health-check"
          }
        }
      }
    },
    "/public/v1/invoices/": {
      "get": {
        "operationId": "list_Invoice_records",
        "summary": "List Invoice records",
        "parameters": [
          {
            "in": "query",
            "name": "integration_sources",
            "schema": {
              "title": "Integration Sources",
              "items": {
                "$ref": "#/components/schemas/IntegrationSourceSlug"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "code",
            "schema": {
              "title": "Code",
              "items": {
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "customer_id",
            "schema": {
              "title": "Customer Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "start_date",
            "schema": {
              "title": "Start Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "title": "End Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "due_date",
            "schema": {
              "title": "Due Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "due_date_until",
            "schema": {
              "title": "Due Date Until",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "transaction_currency",
            "schema": {
              "title": "Transaction Currency",
              "items": {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "title": "Record Status",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "approval_status",
            "schema": {
              "title": "Approval Status",
              "items": {
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "approval_status_scope",
            "schema": {
              "title": "Approval Status Scope",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "amount_gte",
            "schema": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Amount Gte"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "amount_lte",
            "schema": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Amount Lte"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "amount_due_gte",
            "schema": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Amount Due Gte"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "amount_due_lte",
            "schema": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Amount Due Lte"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "amount_due_updated_at_gte",
            "schema": {
              "description": "Return invoices whose amount_due_updated_at is greater than or equal to this timestamp.",
              "title": "Amount Due Updated At Gte",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false,
            "description": "Return invoices whose amount_due_updated_at is greater than or equal to this timestamp."
          },
          {
            "in": "query",
            "name": "amount_due_updated_at_lte",
            "schema": {
              "description": "Return invoices whose amount_due_updated_at is less than or equal to this timestamp.",
              "title": "Amount Due Updated At Lte",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false,
            "description": "Return invoices whose amount_due_updated_at is less than or equal to this timestamp."
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "ordering",
            "schema": {
              "default": "id",
              "title": "Ordering",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "description": "Number of records to return per page (capped at 100)",
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to return per page (capped at 100)"
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Number of records to skip before starting to return results",
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to skip before starting to return results"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedPublicInvoiceSchemaOut"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a paginated list of Invoice records with filtering and ordering options.",
        "tags": [
          "Invoices"
        ],
        "x-mint": {
          "metadata": {
            "title": "List Invoice records (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/invoices/list-invoice-records"
          }
        }
      },
      "post": {
        "operationId": "create_Invoice_record",
        "summary": "Create Invoice record",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicInvoiceSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Create a new Invoice record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Invoices"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicInvoiceSchemaCreateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Create Invoice record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/invoices/create-invoice-record"
          }
        }
      }
    },
    "/public/v1/invoices/{record_number}/": {
      "get": {
        "operationId": "get_Invoice_record",
        "summary": "Get Invoice record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "in": "query",
            "name": "integration_sources",
            "schema": {
              "title": "Integration Sources",
              "items": {
                "$ref": "#/components/schemas/IntegrationSourceSlug"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "code",
            "schema": {
              "title": "Code",
              "items": {
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "customer_id",
            "schema": {
              "title": "Customer Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "start_date",
            "schema": {
              "title": "Start Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "title": "End Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "due_date",
            "schema": {
              "title": "Due Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "due_date_until",
            "schema": {
              "title": "Due Date Until",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "transaction_currency",
            "schema": {
              "title": "Transaction Currency",
              "items": {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "title": "Record Status",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "approval_status",
            "schema": {
              "title": "Approval Status",
              "items": {
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "approval_status_scope",
            "schema": {
              "title": "Approval Status Scope",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "amount_gte",
            "schema": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Amount Gte"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "amount_lte",
            "schema": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Amount Lte"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "amount_due_gte",
            "schema": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Amount Due Gte"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "amount_due_lte",
            "schema": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Amount Due Lte"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "amount_due_updated_at_gte",
            "schema": {
              "description": "Return invoices whose amount_due_updated_at is greater than or equal to this timestamp.",
              "title": "Amount Due Updated At Gte",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false,
            "description": "Return invoices whose amount_due_updated_at is greater than or equal to this timestamp."
          },
          {
            "in": "query",
            "name": "amount_due_updated_at_lte",
            "schema": {
              "description": "Return invoices whose amount_due_updated_at is less than or equal to this timestamp.",
              "title": "Amount Due Updated At Lte",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false,
            "description": "Return invoices whose amount_due_updated_at is less than or equal to this timestamp."
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicInvoiceSchemaOut"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a specific Invoice record by its record number with all related data.",
        "tags": [
          "Invoices"
        ],
        "x-mint": {
          "metadata": {
            "title": "Get Invoice record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/invoices/get-invoice-record"
          }
        }
      },
      "put": {
        "operationId": "update_Invoice_record",
        "summary": "Update Invoice record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicInvoiceSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Update an existing Invoice record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Invoices"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicInvoiceSchemaUpdateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Update Invoice record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/invoices/update-invoice-record"
          }
        }
      },
      "patch": {
        "operationId": "patch_Invoice_record",
        "summary": "Update Invoice record (partial)",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicInvoiceSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Partially update an existing Invoice record. Send only the fields you want to change \u2014 anything you don't send stays as it is. Updates are subject to the same constraints as the full update endpoint: period locks, payment-applied restrictions, and approval-workflow rules apply.",
        "tags": [
          "Invoices"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicInvoiceSchemaPatchIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "description": "Partially update an existing Invoice record.",
            "title": "Update Invoice record (partial) (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/invoices/update-invoice-record-partial"
          }
        }
      }
    },
    "/public/v1/invoices/{record_number}/attachments/": {
      "post": {
        "operationId": "create_Invoice_record_attachments",
        "summary": "Create Invoice record attachments",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicInvoiceSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Upload attachments to a Invoice record.",
        "tags": [
          "Invoices"
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "files": {
                    "items": {
                      "format": "binary",
                      "type": "string"
                    },
                    "title": "Files",
                    "type": "array"
                  }
                },
                "required": [
                  "files"
                ],
                "title": "FileParams",
                "type": "object"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Create Invoice record attachments (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/invoices/create-invoice-record-attachments"
          }
        }
      }
    },
    "/public/v1/invoices/{record_number}/attachments/replace/": {
      "post": {
        "operationId": "replace_Invoice_record_attachments",
        "summary": "Replace Invoice record attachments",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicInvoiceSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Replace all attachments on a Invoice record. Existing attachments are marked as deleted.",
        "tags": [
          "Invoices"
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "files": {
                    "items": {
                      "format": "binary",
                      "type": "string"
                    },
                    "title": "Files",
                    "type": "array"
                  }
                },
                "required": [
                  "files"
                ],
                "title": "FileParams",
                "type": "object"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Replace Invoice record attachments (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/invoices/replace-invoice-record-attachments"
          }
        }
      }
    },
    "/public/v1/sales-orders/": {
      "get": {
        "operationId": "list_SalesOrder_records",
        "summary": "List SalesOrder records",
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "customer_id",
            "schema": {
              "title": "Customer Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "start_date",
            "schema": {
              "title": "Start Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "title": "End Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "title": "Record Status",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "invoiced_status",
            "schema": {
              "title": "Invoiced Status",
              "items": {
                "$ref": "#/components/schemas/SalesOrderInvoicedStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "approval_status",
            "schema": {
              "title": "Approval Status",
              "items": {
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "approval_status_scope",
            "schema": {
              "title": "Approval Status Scope",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "ordering",
            "schema": {
              "default": "id",
              "title": "Ordering",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "description": "Number of records to return per page (capped at 100)",
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to return per page (capped at 100)"
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Number of records to skip before starting to return results",
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to skip before starting to return results"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedPublicSalesOrderSchemaOut"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a paginated list of SalesOrder records with filtering and ordering options.",
        "tags": [
          "Sales Orders"
        ],
        "x-mint": {
          "metadata": {
            "title": "List SalesOrder records (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/sales-orders/list-salesorder-records"
          }
        }
      },
      "post": {
        "operationId": "create_SalesOrder_record",
        "summary": "Create SalesOrder record",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicSalesOrderSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Create a new SalesOrder record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Sales Orders"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicSalesOrderSchemaCreateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Create SalesOrder record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/sales-orders/create-salesorder-record"
          }
        }
      }
    },
    "/public/v1/sales-orders/{record_number}/": {
      "get": {
        "operationId": "get_SalesOrder_record",
        "summary": "Get SalesOrder record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "customer_id",
            "schema": {
              "title": "Customer Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "start_date",
            "schema": {
              "title": "Start Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "title": "End Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "title": "Record Status",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "invoiced_status",
            "schema": {
              "title": "Invoiced Status",
              "items": {
                "$ref": "#/components/schemas/SalesOrderInvoicedStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "approval_status",
            "schema": {
              "title": "Approval Status",
              "items": {
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "approval_status_scope",
            "schema": {
              "title": "Approval Status Scope",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicSalesOrderSchemaOut"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a specific SalesOrder record by its record number with all related data.",
        "tags": [
          "Sales Orders"
        ],
        "x-mint": {
          "metadata": {
            "title": "Get SalesOrder record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/sales-orders/get-salesorder-record"
          }
        }
      },
      "put": {
        "operationId": "update_SalesOrder_record",
        "summary": "Update SalesOrder record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicSalesOrderSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Update an existing SalesOrder record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Sales Orders"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicSalesOrderSchemaUpdateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Update SalesOrder record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/sales-orders/update-salesorder-record"
          }
        }
      }
    },
    "/public/v1/sales-orders/{record_number}/attachments/": {
      "post": {
        "operationId": "create_SalesOrder_record_attachments",
        "summary": "Create SalesOrder record attachments",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicSalesOrderSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Upload attachments to a SalesOrder record.",
        "tags": [
          "Sales Orders"
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "files": {
                    "items": {
                      "format": "binary",
                      "type": "string"
                    },
                    "title": "Files",
                    "type": "array"
                  }
                },
                "required": [
                  "files"
                ],
                "title": "FileParams",
                "type": "object"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Create SalesOrder record attachments (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/sales-orders/create-salesorder-record-attachments"
          }
        }
      }
    },
    "/public/v1/bills/": {
      "get": {
        "operationId": "list_Bill_records",
        "summary": "List Bill records",
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "vendor_id",
            "schema": {
              "title": "Vendor Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "code",
            "schema": {
              "title": "Code",
              "items": {
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "start_date",
            "schema": {
              "title": "Start Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "title": "End Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "due_date",
            "schema": {
              "title": "Due Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "title": "Record Status",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "approval_status",
            "schema": {
              "title": "Approval Status",
              "items": {
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "approval_status_scope",
            "schema": {
              "title": "Approval Status Scope",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "ordering",
            "schema": {
              "default": "id",
              "title": "Ordering",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "description": "Number of records to return per page (capped at 100)",
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to return per page (capped at 100)"
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Number of records to skip before starting to return results",
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to skip before starting to return results"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedPublicBillSchemaOut"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a paginated list of Bill records with filtering and ordering options.",
        "tags": [
          "Bills"
        ],
        "x-mint": {
          "metadata": {
            "title": "List Bill records (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/bills/list-bill-records"
          }
        }
      },
      "post": {
        "operationId": "create_Bill_record",
        "summary": "Create Bill record",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicBillSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Create a new Bill record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Bills"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicBillSchemaCreateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Create Bill record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/bills/create-bill-record"
          }
        }
      }
    },
    "/public/v1/bills/{record_number}/": {
      "get": {
        "operationId": "get_Bill_record",
        "summary": "Get Bill record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "vendor_id",
            "schema": {
              "title": "Vendor Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "code",
            "schema": {
              "title": "Code",
              "items": {
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "start_date",
            "schema": {
              "title": "Start Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "title": "End Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "due_date",
            "schema": {
              "title": "Due Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "title": "Record Status",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "approval_status",
            "schema": {
              "title": "Approval Status",
              "items": {
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "approval_status_scope",
            "schema": {
              "title": "Approval Status Scope",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicBillSchemaOut"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a specific Bill record by its record number with all related data.",
        "tags": [
          "Bills"
        ],
        "x-mint": {
          "metadata": {
            "title": "Get Bill record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/bills/get-bill-record"
          }
        }
      },
      "put": {
        "operationId": "update_Bill_record",
        "summary": "Update Bill record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicBillSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Update an existing Bill record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Bills"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicBillSchemaUpdateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Update Bill record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/bills/update-bill-record"
          }
        }
      },
      "patch": {
        "operationId": "patch_Bill_record",
        "summary": "Update Bill record (partial)",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicBillSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Partially update an existing Bill record. Send only the fields you want to change \u2014 anything you don't send stays as it is. Updates are subject to the same constraints as the full update endpoint: period locks, payment-applied restrictions, and approval-workflow rules apply.",
        "tags": [
          "Bills"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicBillSchemaPatchIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "description": "Partially update an existing Bill record.",
            "title": "Update Bill record (partial) (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/bills/update-bill-record-partial"
          }
        }
      }
    },
    "/public/v1/bills/{record_number}/attachments/": {
      "post": {
        "operationId": "create_Bill_record_attachments",
        "summary": "Create Bill record attachments",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicBillSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Upload attachments to a Bill record.",
        "tags": [
          "Bills"
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "files": {
                    "items": {
                      "format": "binary",
                      "type": "string"
                    },
                    "title": "Files",
                    "type": "array"
                  }
                },
                "required": [
                  "files"
                ],
                "title": "FileParams",
                "type": "object"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Create Bill record attachments (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/bills/create-bill-record-attachments"
          }
        }
      }
    },
    "/public/v1/journal-entries/": {
      "get": {
        "operationId": "list_JournalEntry_records",
        "summary": "List JournalEntry records",
        "parameters": [
          {
            "in": "query",
            "name": "integration_sources",
            "schema": {
              "title": "Integration Sources",
              "items": {
                "$ref": "#/components/schemas/IntegrationSourceSlug"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "account_id",
            "schema": {
              "title": "Account Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "customer_id",
            "schema": {
              "title": "Customer Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "vendor_id",
            "schema": {
              "title": "Vendor Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "code",
            "schema": {
              "title": "Code",
              "items": {
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "start_date",
            "schema": {
              "title": "Start Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "title": "End Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "title": "Record Status",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "approval_status",
            "schema": {
              "title": "Approval Status",
              "items": {
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "approval_status_scope",
            "schema": {
              "title": "Approval Status Scope",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "amount_gte",
            "schema": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Amount Gte"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "amount_lte",
            "schema": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Amount Lte"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "ordering",
            "schema": {
              "default": "id",
              "title": "Ordering",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "description": "Number of records to return per page (capped at 100)",
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to return per page (capped at 100)"
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Number of records to skip before starting to return results",
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to skip before starting to return results"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedPublicJournalEntrySchemaOut"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a paginated list of JournalEntry records with filtering and ordering options.",
        "tags": [
          "Journal Entries"
        ],
        "x-mint": {
          "metadata": {
            "title": "List JournalEntry records (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/journal-entries/list-journalentry-records"
          }
        }
      },
      "post": {
        "operationId": "create_JournalEntry_record",
        "summary": "Create JournalEntry record",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicJournalEntrySchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Create a new JournalEntry record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Journal Entries"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicJournalEntrySchemaCreateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Create JournalEntry record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/journal-entries/create-journalentry-record"
          }
        }
      }
    },
    "/public/v1/journal-entries/{record_number}/": {
      "get": {
        "operationId": "get_JournalEntry_record",
        "summary": "Get JournalEntry record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "in": "query",
            "name": "integration_sources",
            "schema": {
              "title": "Integration Sources",
              "items": {
                "$ref": "#/components/schemas/IntegrationSourceSlug"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "account_id",
            "schema": {
              "title": "Account Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "customer_id",
            "schema": {
              "title": "Customer Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "vendor_id",
            "schema": {
              "title": "Vendor Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "code",
            "schema": {
              "title": "Code",
              "items": {
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "start_date",
            "schema": {
              "title": "Start Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "title": "End Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "title": "Record Status",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "approval_status",
            "schema": {
              "title": "Approval Status",
              "items": {
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "approval_status_scope",
            "schema": {
              "title": "Approval Status Scope",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "amount_gte",
            "schema": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Amount Gte"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "amount_lte",
            "schema": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Amount Lte"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicJournalEntrySchemaOut"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a specific JournalEntry record by its record number with all related data.",
        "tags": [
          "Journal Entries"
        ],
        "x-mint": {
          "metadata": {
            "title": "Get JournalEntry record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/journal-entries/get-journalentry-record"
          }
        }
      },
      "put": {
        "operationId": "update_JournalEntry_record",
        "summary": "Update JournalEntry record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicJournalEntrySchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Update an existing JournalEntry record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Journal Entries"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicJournalEntrySchemaUpdateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Update JournalEntry record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/journal-entries/update-journalentry-record"
          }
        }
      }
    },
    "/public/v1/journal-entries/{record_number}/attachments/": {
      "post": {
        "operationId": "create_JournalEntry_record_attachments",
        "summary": "Create JournalEntry record attachments",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicJournalEntrySchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Upload attachments to a JournalEntry record.",
        "tags": [
          "Journal Entries"
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "files": {
                    "items": {
                      "format": "binary",
                      "type": "string"
                    },
                    "title": "Files",
                    "type": "array"
                  }
                },
                "required": [
                  "files"
                ],
                "title": "FileParams",
                "type": "object"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Create JournalEntry record attachments (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/journal-entries/create-journalentry-record-attachments"
          }
        }
      }
    },
    "/public/v1/purchase-orders/": {
      "get": {
        "operationId": "list_PurchaseOrder_records",
        "summary": "List PurchaseOrder records",
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "vendor_id",
            "schema": {
              "title": "Vendor Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "start_date",
            "schema": {
              "title": "Start Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "title": "End Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "title": "Record Status",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "approval_status",
            "schema": {
              "title": "Approval Status",
              "items": {
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "approval_status_scope",
            "schema": {
              "title": "Approval Status Scope",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "billed",
            "schema": {
              "title": "Billed",
              "type": [
                "boolean",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "unbilled",
            "schema": {
              "title": "Unbilled",
              "type": [
                "boolean",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "partially_billed",
            "schema": {
              "title": "Partially Billed",
              "type": [
                "boolean",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "billed_status",
            "schema": {
              "default": [],
              "items": {
                "enum": [
                  "billed",
                  "unbilled",
                  "partially_billed"
                ],
                "title": "PurchaseOrderBilledStatus",
                "type": "string"
              },
              "title": "Billed Status",
              "type": "array",
              "uniqueItems": true
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "ordering",
            "schema": {
              "default": "id",
              "title": "Ordering",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "description": "Number of records to return per page (capped at 100)",
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to return per page (capped at 100)"
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Number of records to skip before starting to return results",
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to skip before starting to return results"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedPublicPurchaseOrderSchemaOut"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a paginated list of PurchaseOrder records with filtering and ordering options.",
        "tags": [
          "Purchase Orders"
        ],
        "x-mint": {
          "metadata": {
            "title": "List PurchaseOrder records (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/purchase-orders/list-purchaseorder-records"
          }
        }
      },
      "post": {
        "operationId": "create_PurchaseOrder_record",
        "summary": "Create PurchaseOrder record",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicPurchaseOrderSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Create a new PurchaseOrder record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Purchase Orders"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicPurchaseOrderSchemaCreateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Create PurchaseOrder record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/purchase-orders/create-purchaseorder-record"
          }
        }
      }
    },
    "/public/v1/purchase-orders/{record_number}/": {
      "get": {
        "operationId": "get_PurchaseOrder_record",
        "summary": "Get PurchaseOrder record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "vendor_id",
            "schema": {
              "title": "Vendor Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "start_date",
            "schema": {
              "title": "Start Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "title": "End Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "title": "Record Status",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "approval_status",
            "schema": {
              "title": "Approval Status",
              "items": {
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "approval_status_scope",
            "schema": {
              "title": "Approval Status Scope",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "billed",
            "schema": {
              "title": "Billed",
              "type": [
                "boolean",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "unbilled",
            "schema": {
              "title": "Unbilled",
              "type": [
                "boolean",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "partially_billed",
            "schema": {
              "title": "Partially Billed",
              "type": [
                "boolean",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "billed_status",
            "schema": {
              "default": [],
              "items": {
                "enum": [
                  "billed",
                  "unbilled",
                  "partially_billed"
                ],
                "title": "PurchaseOrderBilledStatus",
                "type": "string"
              },
              "title": "Billed Status",
              "type": "array",
              "uniqueItems": true
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicPurchaseOrderSchemaOut"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a specific PurchaseOrder record by its record number with all related data.",
        "tags": [
          "Purchase Orders"
        ],
        "x-mint": {
          "metadata": {
            "title": "Get PurchaseOrder record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/purchase-orders/get-purchaseorder-record"
          }
        }
      },
      "put": {
        "operationId": "update_PurchaseOrder_record",
        "summary": "Update PurchaseOrder record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicPurchaseOrderSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Update an existing PurchaseOrder record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Purchase Orders"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicPurchaseOrderSchemaUpdateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Update PurchaseOrder record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/purchase-orders/update-purchaseorder-record"
          }
        }
      }
    },
    "/public/v1/purchase-orders/{record_number}/attachments/": {
      "post": {
        "operationId": "create_PurchaseOrder_record_attachments",
        "summary": "Create PurchaseOrder record attachments",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicPurchaseOrderSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Upload attachments to a PurchaseOrder record.",
        "tags": [
          "Purchase Orders"
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "files": {
                    "items": {
                      "format": "binary",
                      "type": "string"
                    },
                    "title": "Files",
                    "type": "array"
                  }
                },
                "required": [
                  "files"
                ],
                "title": "FileParams",
                "type": "object"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Create PurchaseOrder record attachments (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/purchase-orders/create-purchaseorder-record-attachments"
          }
        }
      }
    },
    "/public/v1/customer-prepayments/": {
      "get": {
        "operationId": "list_CustomerPrepayment_records",
        "summary": "List CustomerPrepayment records",
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "id",
            "schema": {
              "title": "Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "customer_id",
            "schema": {
              "title": "Customer Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "start_date",
            "schema": {
              "title": "Start Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "title": "End Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "transaction_currency",
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/SystemCurrencies"
                },
                {
                  "type": "null"
                }
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "title": "Record Status",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "ordering",
            "schema": {
              "default": "id",
              "title": "Ordering",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "description": "Number of records to return per page (capped at 100)",
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to return per page (capped at 100)"
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Number of records to skip before starting to return results",
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to skip before starting to return results"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedPublicCustomerPrepaymentSchemaOut"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a paginated list of CustomerPrepayment records with filtering and ordering options.",
        "tags": [
          "Customer Prepayments"
        ],
        "x-mint": {
          "metadata": {
            "title": "List CustomerPrepayment records (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/customer-prepayments/list-customerprepayment-records"
          }
        }
      },
      "post": {
        "operationId": "create_CustomerPrepayment_record",
        "summary": "Create CustomerPrepayment record",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCustomerPrepaymentSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Create a new CustomerPrepayment record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Customer Prepayments"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicCustomerPrepaymentSchemaCreateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Create CustomerPrepayment record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/customer-prepayments/create-customerprepayment-record"
          }
        }
      }
    },
    "/public/v1/customer-prepayments/{record_number}/": {
      "get": {
        "operationId": "get_CustomerPrepayment_record",
        "summary": "Get CustomerPrepayment record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "id",
            "schema": {
              "title": "Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "customer_id",
            "schema": {
              "title": "Customer Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "start_date",
            "schema": {
              "title": "Start Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "title": "End Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "transaction_currency",
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/SystemCurrencies"
                },
                {
                  "type": "null"
                }
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "title": "Record Status",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCustomerPrepaymentSchemaOut"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a specific CustomerPrepayment record by its record number with all related data.",
        "tags": [
          "Customer Prepayments"
        ],
        "x-mint": {
          "metadata": {
            "title": "Get CustomerPrepayment record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/customer-prepayments/get-customerprepayment-record"
          }
        }
      },
      "put": {
        "operationId": "update_CustomerPrepayment_record",
        "summary": "Update CustomerPrepayment record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCustomerPrepaymentSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Update an existing CustomerPrepayment record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Customer Prepayments"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicCustomerPrepaymentSchemaUpdateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Update CustomerPrepayment record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/customer-prepayments/update-customerprepayment-record"
          }
        }
      },
      "patch": {
        "operationId": "patch_CustomerPrepayment_record",
        "summary": "Update CustomerPrepayment record (partial)",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCustomerPrepaymentSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Partially update an existing CustomerPrepayment record. Send only the fields you want to change \u2014 anything you don't send stays as it is. Updates are subject to the same constraints as the full update endpoint: period locks, payment-applied restrictions, and approval-workflow rules apply.",
        "tags": [
          "Customer Prepayments"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicCustomerPrepaymentSchemaPatchIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "description": "Partially update an existing CustomerPrepayment record.",
            "title": "Update CustomerPrepayment record (partial) (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/customer-prepayments/update-customerprepayment-record-partial"
          }
        }
      }
    },
    "/public/v1/customer-prepayments/{record_number}/attachments/": {
      "post": {
        "operationId": "create_CustomerPrepayment_record_attachments",
        "summary": "Create CustomerPrepayment record attachments",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCustomerPrepaymentSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Upload attachments to a CustomerPrepayment record.",
        "tags": [
          "Customer Prepayments"
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "files": {
                    "items": {
                      "format": "binary",
                      "type": "string"
                    },
                    "title": "Files",
                    "type": "array"
                  }
                },
                "required": [
                  "files"
                ],
                "title": "FileParams",
                "type": "object"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Create CustomerPrepayment record attachments (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/customer-prepayments/create-customerprepayment-record-attachments"
          }
        }
      }
    },
    "/public/v1/customer-prepayment-applications/": {
      "get": {
        "operationId": "list_CustomerPrepaymentApplication_records",
        "summary": "List CustomerPrepaymentApplication records",
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "customer_id",
            "schema": {
              "title": "Customer Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "start_date",
            "schema": {
              "title": "Start Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "title": "End Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "transaction_currency",
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/SystemCurrencies"
                },
                {
                  "type": "null"
                }
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "title": "Record Status",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "ordering",
            "schema": {
              "default": "id",
              "title": "Ordering",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "description": "Number of records to return per page (capped at 100)",
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to return per page (capped at 100)"
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Number of records to skip before starting to return results",
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to skip before starting to return results"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedPublicCustomerPrepaymentApplicationSchemaOut"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a paginated list of CustomerPrepaymentApplication records with filtering and ordering options.",
        "tags": [
          "Customer Prepayment Applications"
        ],
        "x-mint": {
          "metadata": {
            "title": "List CustomerPrepaymentApplication records (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/customer-prepayment-applications/list-customerprepaymentapplication-records"
          }
        }
      },
      "post": {
        "operationId": "create_CustomerPrepaymentApplication_record",
        "summary": "Create CustomerPrepaymentApplication record",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCustomerPrepaymentApplicationSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Create a new CustomerPrepaymentApplication record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Customer Prepayment Applications"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicCustomerPrepaymentApplicationSchemaCreateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Create CustomerPrepaymentApplication record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/customer-prepayment-applications/create-customerprepaymentapplication-record"
          }
        }
      }
    },
    "/public/v1/customer-prepayment-applications/{record_number}/": {
      "get": {
        "operationId": "get_CustomerPrepaymentApplication_record",
        "summary": "Get CustomerPrepaymentApplication record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "customer_id",
            "schema": {
              "title": "Customer Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "start_date",
            "schema": {
              "title": "Start Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "title": "End Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "transaction_currency",
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/SystemCurrencies"
                },
                {
                  "type": "null"
                }
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "title": "Record Status",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCustomerPrepaymentApplicationSchemaOut"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a specific CustomerPrepaymentApplication record by its record number with all related data.",
        "tags": [
          "Customer Prepayment Applications"
        ],
        "x-mint": {
          "metadata": {
            "title": "Get CustomerPrepaymentApplication record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/customer-prepayment-applications/get-customerprepaymentapplication-record"
          }
        }
      },
      "put": {
        "operationId": "update_CustomerPrepaymentApplication_record",
        "summary": "Update CustomerPrepaymentApplication record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCustomerPrepaymentApplicationSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Update an existing CustomerPrepaymentApplication record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Customer Prepayment Applications"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicCustomerPrepaymentApplicationSchemaUpdateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Update CustomerPrepaymentApplication record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/customer-prepayment-applications/update-customerprepaymentapplication-record"
          }
        }
      },
      "patch": {
        "operationId": "patch_CustomerPrepaymentApplication_record",
        "summary": "Update CustomerPrepaymentApplication record (partial)",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCustomerPrepaymentApplicationSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Partially update an existing CustomerPrepaymentApplication record. Send only the fields you want to change \u2014 anything you don't send stays as it is. Updates are subject to the same constraints as the full update endpoint: period locks, payment-applied restrictions, and approval-workflow rules apply.",
        "tags": [
          "Customer Prepayment Applications"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicCustomerPrepaymentApplicationSchemaPatchIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "description": "Partially update an existing CustomerPrepaymentApplication record.",
            "title": "Update CustomerPrepaymentApplication record (partial) (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/customer-prepayment-applications/update-customerprepaymentapplication-record-partial"
          }
        }
      }
    },
    "/public/v1/customer-prepayment-applications/{record_number}/attachments/": {
      "post": {
        "operationId": "create_CustomerPrepaymentApplication_record_attachments",
        "summary": "Create CustomerPrepaymentApplication record attachments",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCustomerPrepaymentApplicationSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Upload attachments to a CustomerPrepaymentApplication record.",
        "tags": [
          "Customer Prepayment Applications"
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "files": {
                    "items": {
                      "format": "binary",
                      "type": "string"
                    },
                    "title": "Files",
                    "type": "array"
                  }
                },
                "required": [
                  "files"
                ],
                "title": "FileParams",
                "type": "object"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Create CustomerPrepaymentApplication record attachments (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/customer-prepayment-applications/create-customerprepaymentapplication-record-attachments"
          }
        }
      }
    },
    "/public/v1/customer-deposits/": {
      "get": {
        "operationId": "list_CustomerDeposit_records",
        "summary": "List CustomerDeposit records",
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "customer_id",
            "schema": {
              "title": "Customer Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "start_date",
            "schema": {
              "title": "Start Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "title": "End Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "transaction_currency",
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/SystemCurrencies"
                },
                {
                  "type": "null"
                }
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "title": "Record Status",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "ordering",
            "schema": {
              "default": "id",
              "title": "Ordering",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "description": "Number of records to return per page (capped at 100)",
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to return per page (capped at 100)"
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Number of records to skip before starting to return results",
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to skip before starting to return results"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedPublicCustomerDepositSchemaOut"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a paginated list of CustomerDeposit records with filtering and ordering options.",
        "tags": [
          "Customer Deposits"
        ],
        "x-mint": {
          "metadata": {
            "title": "List CustomerDeposit records (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/customer-deposits/list-customerdeposit-records"
          }
        }
      },
      "post": {
        "operationId": "create_CustomerDeposit_record",
        "summary": "Create CustomerDeposit record",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCustomerDepositSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Create a new CustomerDeposit record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Customer Deposits"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicCustomerDepositSchemaCreateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Create CustomerDeposit record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/customer-deposits/create-customerdeposit-record"
          }
        }
      }
    },
    "/public/v1/customer-deposits/{record_number}/": {
      "get": {
        "operationId": "get_CustomerDeposit_record",
        "summary": "Get CustomerDeposit record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "customer_id",
            "schema": {
              "title": "Customer Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "start_date",
            "schema": {
              "title": "Start Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "title": "End Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "transaction_currency",
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/SystemCurrencies"
                },
                {
                  "type": "null"
                }
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "title": "Record Status",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCustomerDepositSchemaOut"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a specific CustomerDeposit record by its record number with all related data.",
        "tags": [
          "Customer Deposits"
        ],
        "x-mint": {
          "metadata": {
            "title": "Get CustomerDeposit record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/customer-deposits/get-customerdeposit-record"
          }
        }
      },
      "put": {
        "operationId": "update_CustomerDeposit_record",
        "summary": "Update CustomerDeposit record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCustomerDepositSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Update an existing CustomerDeposit record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Customer Deposits"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicCustomerDepositSchemaUpdateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Update CustomerDeposit record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/customer-deposits/update-customerdeposit-record"
          }
        }
      }
    },
    "/public/v1/customer-deposits/{record_number}/attachments/": {
      "post": {
        "operationId": "create_CustomerDeposit_record_attachments",
        "summary": "Create CustomerDeposit record attachments",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCustomerDepositSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Upload attachments to a CustomerDeposit record.",
        "tags": [
          "Customer Deposits"
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "files": {
                    "items": {
                      "format": "binary",
                      "type": "string"
                    },
                    "title": "Files",
                    "type": "array"
                  }
                },
                "required": [
                  "files"
                ],
                "title": "FileParams",
                "type": "object"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Create CustomerDeposit record attachments (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/customer-deposits/create-customerdeposit-record-attachments"
          }
        }
      }
    },
    "/public/v1/customer-refunds/": {
      "get": {
        "operationId": "list_CustomerRefund_records",
        "summary": "List CustomerRefund records",
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "customer_id",
            "schema": {
              "title": "Customer Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "start_date",
            "schema": {
              "title": "Start Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "title": "End Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "transaction_currency",
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/SystemCurrencies"
                },
                {
                  "type": "null"
                }
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "title": "Record Status",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "ordering",
            "schema": {
              "default": "id",
              "title": "Ordering",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "description": "Number of records to return per page (capped at 100)",
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to return per page (capped at 100)"
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Number of records to skip before starting to return results",
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to skip before starting to return results"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedPublicCustomerRefundSchemaOut"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a paginated list of CustomerRefund records with filtering and ordering options.",
        "tags": [
          "Customer Refunds"
        ],
        "x-mint": {
          "metadata": {
            "title": "List CustomerRefund records (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/customer-refunds/list-customerrefund-records"
          }
        }
      },
      "post": {
        "operationId": "create_CustomerRefund_record",
        "summary": "Create CustomerRefund record",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCustomerRefundSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Create a new CustomerRefund record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Customer Refunds"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicCustomerRefundSchemaCreateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Create CustomerRefund record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/customer-refunds/create-customerrefund-record"
          }
        }
      }
    },
    "/public/v1/customer-refunds/{record_number}/": {
      "get": {
        "operationId": "get_CustomerRefund_record",
        "summary": "Get CustomerRefund record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "customer_id",
            "schema": {
              "title": "Customer Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "start_date",
            "schema": {
              "title": "Start Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "title": "End Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "transaction_currency",
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/SystemCurrencies"
                },
                {
                  "type": "null"
                }
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "title": "Record Status",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCustomerRefundSchemaOut"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a specific CustomerRefund record by its record number with all related data.",
        "tags": [
          "Customer Refunds"
        ],
        "x-mint": {
          "metadata": {
            "title": "Get CustomerRefund record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/customer-refunds/get-customerrefund-record"
          }
        }
      },
      "put": {
        "operationId": "update_CustomerRefund_record",
        "summary": "Update CustomerRefund record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCustomerRefundSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Update an existing CustomerRefund record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Customer Refunds"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicCustomerRefundSchemaUpdateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Update CustomerRefund record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/customer-refunds/update-customerrefund-record"
          }
        }
      }
    },
    "/public/v1/customer-refunds/{record_number}/attachments/": {
      "post": {
        "operationId": "create_CustomerRefund_record_attachments",
        "summary": "Create CustomerRefund record attachments",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCustomerRefundSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Upload attachments to a CustomerRefund record.",
        "tags": [
          "Customer Refunds"
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "files": {
                    "items": {
                      "format": "binary",
                      "type": "string"
                    },
                    "title": "Files",
                    "type": "array"
                  }
                },
                "required": [
                  "files"
                ],
                "title": "FileParams",
                "type": "object"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Create CustomerRefund record attachments (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/customer-refunds/create-customerrefund-record-attachments"
          }
        }
      }
    },
    "/public/v1/customer-credits/": {
      "get": {
        "operationId": "list_CustomerCredit_records",
        "summary": "List CustomerCredit records",
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "customer_id",
            "schema": {
              "title": "Customer Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "start_date",
            "schema": {
              "title": "Start Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "title": "End Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "transaction_currency",
            "schema": {
              "title": "Transaction Currency",
              "items": {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "title": "Record Status",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "ordering",
            "schema": {
              "default": "id",
              "title": "Ordering",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "description": "Number of records to return per page (capped at 100)",
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to return per page (capped at 100)"
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Number of records to skip before starting to return results",
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to skip before starting to return results"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedPublicCustomerCreditSchemaOut"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a paginated list of CustomerCredit records with filtering and ordering options.",
        "tags": [
          "Customer Credits"
        ],
        "x-mint": {
          "metadata": {
            "title": "List CustomerCredit records (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/customer-credits/list-customercredit-records"
          }
        }
      },
      "post": {
        "operationId": "create_CustomerCredit_record",
        "summary": "Create CustomerCredit record",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCustomerCreditSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Create a new CustomerCredit record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Customer Credits"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicCustomerCreditSchemaCreateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Create CustomerCredit record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/customer-credits/create-customercredit-record"
          }
        }
      }
    },
    "/public/v1/customer-credits/{record_number}/": {
      "get": {
        "operationId": "get_CustomerCredit_record",
        "summary": "Get CustomerCredit record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "customer_id",
            "schema": {
              "title": "Customer Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "start_date",
            "schema": {
              "title": "Start Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "title": "End Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "transaction_currency",
            "schema": {
              "title": "Transaction Currency",
              "items": {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "title": "Record Status",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCustomerCreditSchemaOut"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a specific CustomerCredit record by its record number with all related data.",
        "tags": [
          "Customer Credits"
        ],
        "x-mint": {
          "metadata": {
            "title": "Get CustomerCredit record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/customer-credits/get-customercredit-record"
          }
        }
      },
      "put": {
        "operationId": "update_CustomerCredit_record",
        "summary": "Update CustomerCredit record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCustomerCreditSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Update an existing CustomerCredit record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Customer Credits"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicCustomerCreditSchemaUpdateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Update CustomerCredit record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/customer-credits/update-customercredit-record"
          }
        }
      },
      "patch": {
        "operationId": "patch_CustomerCredit_record",
        "summary": "Update CustomerCredit record (partial)",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCustomerCreditSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Partially update an existing CustomerCredit record. Send only the fields you want to change \u2014 anything you don't send stays as it is. Updates are subject to the same constraints as the full update endpoint: period locks, payment-applied restrictions, and approval-workflow rules apply.",
        "tags": [
          "Customer Credits"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicCustomerCreditSchemaPatchIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "description": "Partially update an existing CustomerCredit record.",
            "title": "Update CustomerCredit record (partial) (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/customer-credits/update-customercredit-record-partial"
          }
        }
      }
    },
    "/public/v1/cash-sales/": {
      "get": {
        "operationId": "list_CashSale_records",
        "summary": "List CashSale records",
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "customer_id",
            "schema": {
              "title": "Customer Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "start_date",
            "schema": {
              "title": "Start Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "title": "End Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "transaction_currency",
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/SystemCurrencies"
                },
                {
                  "type": "null"
                }
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "title": "Record Status",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "ordering",
            "schema": {
              "default": "id",
              "title": "Ordering",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "description": "Number of records to return per page (capped at 100)",
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to return per page (capped at 100)"
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Number of records to skip before starting to return results",
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to skip before starting to return results"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedPublicCashSaleSchemaOut"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a paginated list of CashSale records with filtering and ordering options.",
        "tags": [
          "Cash Sales"
        ],
        "x-mint": {
          "metadata": {
            "title": "List CashSale records (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/cash-sales/list-cashsale-records"
          }
        }
      },
      "post": {
        "operationId": "create_CashSale_record",
        "summary": "Create CashSale record",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCashSaleSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Create a new CashSale record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Cash Sales"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicCashSaleSchemaCreateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Create CashSale record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/cash-sales/create-cashsale-record"
          }
        }
      }
    },
    "/public/v1/cash-sales/{record_number}/": {
      "get": {
        "operationId": "get_CashSale_record",
        "summary": "Get CashSale record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "customer_id",
            "schema": {
              "title": "Customer Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "start_date",
            "schema": {
              "title": "Start Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "title": "End Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "transaction_currency",
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/SystemCurrencies"
                },
                {
                  "type": "null"
                }
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "title": "Record Status",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCashSaleSchemaOut"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a specific CashSale record by its record number with all related data.",
        "tags": [
          "Cash Sales"
        ],
        "x-mint": {
          "metadata": {
            "title": "Get CashSale record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/cash-sales/get-cashsale-record"
          }
        }
      },
      "put": {
        "operationId": "update_CashSale_record",
        "summary": "Update CashSale record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCashSaleSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Update an existing CashSale record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Cash Sales"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicCashSaleSchemaUpdateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Update CashSale record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/cash-sales/update-cashsale-record"
          }
        }
      }
    },
    "/public/v1/cash-sales/{record_number}/attachments/": {
      "post": {
        "operationId": "create_CashSale_record_attachments",
        "summary": "Create CashSale record attachments",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCashSaleSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Upload attachments to a CashSale record.",
        "tags": [
          "Cash Sales"
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "files": {
                    "items": {
                      "format": "binary",
                      "type": "string"
                    },
                    "title": "Files",
                    "type": "array"
                  }
                },
                "required": [
                  "files"
                ],
                "title": "FileParams",
                "type": "object"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Create CashSale record attachments (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/cash-sales/create-cashsale-record-attachments"
          }
        }
      }
    },
    "/public/v1/customer-payments/": {
      "get": {
        "operationId": "list_CustomerPayment_records",
        "summary": "List CustomerPayment records",
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "customer_id",
            "schema": {
              "title": "Customer Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "start_date",
            "schema": {
              "title": "Start Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "title": "End Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "transaction_currency",
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/SystemCurrencies"
                },
                {
                  "type": "null"
                }
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "title": "Record Status",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "invoice_number",
            "schema": {
              "title": "Invoice Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "customer_credit_number",
            "schema": {
              "title": "Customer Credit Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "ordering",
            "schema": {
              "default": "id",
              "title": "Ordering",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "description": "Number of records to return per page (capped at 100)",
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to return per page (capped at 100)"
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Number of records to skip before starting to return results",
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to skip before starting to return results"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedPublicCustomerPaymentSchemaOut"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a paginated list of CustomerPayment records with filtering and ordering options.",
        "tags": [
          "Customer Payments"
        ],
        "x-mint": {
          "metadata": {
            "title": "List CustomerPayment records (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/customer-payments/list-customerpayment-records"
          }
        }
      },
      "post": {
        "operationId": "create_CustomerPayment_record",
        "summary": "Create CustomerPayment record",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCustomerPaymentSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Create a new CustomerPayment record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Customer Payments"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicCustomerPaymentSchemaCreateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Create CustomerPayment record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/customer-payments/create-customerpayment-record"
          }
        }
      }
    },
    "/public/v1/customer-payments/{record_number}/": {
      "get": {
        "operationId": "get_CustomerPayment_record",
        "summary": "Get CustomerPayment record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "customer_id",
            "schema": {
              "title": "Customer Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "start_date",
            "schema": {
              "title": "Start Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "title": "End Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "transaction_currency",
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/SystemCurrencies"
                },
                {
                  "type": "null"
                }
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "title": "Record Status",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "invoice_number",
            "schema": {
              "title": "Invoice Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "customer_credit_number",
            "schema": {
              "title": "Customer Credit Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCustomerPaymentSchemaOut"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a specific CustomerPayment record by its record number with all related data.",
        "tags": [
          "Customer Payments"
        ],
        "x-mint": {
          "metadata": {
            "title": "Get CustomerPayment record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/customer-payments/get-customerpayment-record"
          }
        }
      },
      "put": {
        "operationId": "update_CustomerPayment_record",
        "summary": "Update CustomerPayment record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCustomerPaymentSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Update an existing CustomerPayment record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Customer Payments"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicCustomerPaymentSchemaUpdateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Update CustomerPayment record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/customer-payments/update-customerpayment-record"
          }
        }
      },
      "patch": {
        "operationId": "patch_CustomerPayment_record",
        "summary": "Update CustomerPayment record (partial)",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCustomerPaymentSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Partially update an existing CustomerPayment record. Send only the fields you want to change \u2014 anything you don't send stays as it is. Updates are subject to the same constraints as the full update endpoint: period locks, payment-applied restrictions, and approval-workflow rules apply.",
        "tags": [
          "Customer Payments"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicCustomerPaymentSchemaPatchIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "description": "Partially update an existing CustomerPayment record.",
            "title": "Update CustomerPayment record (partial) (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/customer-payments/update-customerpayment-record-partial"
          }
        }
      }
    },
    "/public/v1/vendor-payments/": {
      "get": {
        "operationId": "list_VendorPayment_records",
        "summary": "List VendorPayment records",
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "vendor_id",
            "schema": {
              "title": "Vendor Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "start_date",
            "schema": {
              "title": "Start Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "title": "End Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "transaction_currency",
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/SystemCurrencies"
                },
                {
                  "type": "null"
                }
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "title": "Record Status",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "bill_number",
            "schema": {
              "title": "Bill Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "vendor_credit_number",
            "schema": {
              "title": "Vendor Credit Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "ordering",
            "schema": {
              "default": "id",
              "title": "Ordering",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "description": "Number of records to return per page (capped at 100)",
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to return per page (capped at 100)"
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Number of records to skip before starting to return results",
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to skip before starting to return results"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedPublicVendorPaymentSchemaOut"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a paginated list of VendorPayment records with filtering and ordering options.",
        "tags": [
          "Vendor Payments"
        ],
        "x-mint": {
          "metadata": {
            "title": "List VendorPayment records (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/vendor-payments/list-vendorpayment-records"
          }
        }
      },
      "post": {
        "operationId": "create_VendorPayment_record",
        "summary": "Create VendorPayment record",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicVendorPaymentSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Create a new VendorPayment record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Vendor Payments"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicVendorPaymentSchemaCreateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Create VendorPayment record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/vendor-payments/create-vendorpayment-record"
          }
        }
      }
    },
    "/public/v1/vendor-payments/{record_number}/": {
      "get": {
        "operationId": "get_VendorPayment_record",
        "summary": "Get VendorPayment record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "vendor_id",
            "schema": {
              "title": "Vendor Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "start_date",
            "schema": {
              "title": "Start Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "title": "End Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "transaction_currency",
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/SystemCurrencies"
                },
                {
                  "type": "null"
                }
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "title": "Record Status",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "bill_number",
            "schema": {
              "title": "Bill Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "vendor_credit_number",
            "schema": {
              "title": "Vendor Credit Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicVendorPaymentSchemaOut"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a specific VendorPayment record by its record number with all related data.",
        "tags": [
          "Vendor Payments"
        ],
        "x-mint": {
          "metadata": {
            "title": "Get VendorPayment record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/vendor-payments/get-vendorpayment-record"
          }
        }
      },
      "put": {
        "operationId": "update_VendorPayment_record",
        "summary": "Update VendorPayment record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicVendorPaymentSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Update an existing VendorPayment record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Vendor Payments"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicVendorPaymentSchemaUpdateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Update VendorPayment record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/vendor-payments/update-vendorpayment-record"
          }
        }
      }
    },
    "/public/v1/vendor-prepayments/": {
      "get": {
        "operationId": "list_VendorPrepayment_records",
        "summary": "List VendorPrepayment records",
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "vendor_id",
            "schema": {
              "title": "Vendor Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "start_date",
            "schema": {
              "title": "Start Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "title": "End Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "transaction_currency",
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/SystemCurrencies"
                },
                {
                  "type": "null"
                }
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "title": "Record Status",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "recurring_record_id",
            "schema": {
              "title": "Recurring Record Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "ordering",
            "schema": {
              "default": "id",
              "title": "Ordering",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "description": "Number of records to return per page (capped at 100)",
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to return per page (capped at 100)"
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Number of records to skip before starting to return results",
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to skip before starting to return results"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedPublicVendorPrepaymentSchemaOut"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a paginated list of VendorPrepayment records with filtering and ordering options.",
        "tags": [
          "Vendor Prepayments"
        ],
        "x-mint": {
          "metadata": {
            "title": "List VendorPrepayment records (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/vendor-prepayments/list-vendorprepayment-records"
          }
        }
      },
      "post": {
        "operationId": "create_VendorPrepayment_record",
        "summary": "Create VendorPrepayment record",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicVendorPrepaymentSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Create a new VendorPrepayment record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Vendor Prepayments"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicVendorPrepaymentSchemaCreateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Create VendorPrepayment record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/vendor-prepayments/create-vendorprepayment-record"
          }
        }
      }
    },
    "/public/v1/vendor-prepayments/{record_number}/": {
      "get": {
        "operationId": "get_VendorPrepayment_record",
        "summary": "Get VendorPrepayment record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "vendor_id",
            "schema": {
              "title": "Vendor Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "start_date",
            "schema": {
              "title": "Start Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "title": "End Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "transaction_currency",
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/SystemCurrencies"
                },
                {
                  "type": "null"
                }
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "title": "Record Status",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "recurring_record_id",
            "schema": {
              "title": "Recurring Record Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicVendorPrepaymentSchemaOut"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a specific VendorPrepayment record by its record number with all related data.",
        "tags": [
          "Vendor Prepayments"
        ],
        "x-mint": {
          "metadata": {
            "title": "Get VendorPrepayment record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/vendor-prepayments/get-vendorprepayment-record"
          }
        }
      },
      "put": {
        "operationId": "update_VendorPrepayment_record",
        "summary": "Update VendorPrepayment record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicVendorPrepaymentSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Update an existing VendorPrepayment record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Vendor Prepayments"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicVendorPrepaymentSchemaUpdateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Update VendorPrepayment record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/vendor-prepayments/update-vendorprepayment-record"
          }
        }
      }
    },
    "/public/v1/vendor-prepayment-applications/": {
      "get": {
        "operationId": "list_VendorPrepaymentApplication_records",
        "summary": "List VendorPrepaymentApplication records",
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "vendor_id",
            "schema": {
              "title": "Vendor Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "start_date",
            "schema": {
              "title": "Start Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "title": "End Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "transaction_currency",
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/SystemCurrencies"
                },
                {
                  "type": "null"
                }
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "title": "Record Status",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "bill_id",
            "schema": {
              "title": "Bill Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "ordering",
            "schema": {
              "default": "id",
              "title": "Ordering",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "description": "Number of records to return per page (capped at 100)",
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to return per page (capped at 100)"
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Number of records to skip before starting to return results",
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to skip before starting to return results"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedPublicVendorPrepaymentApplicationSchemaOut"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a paginated list of VendorPrepaymentApplication records with filtering and ordering options.",
        "tags": [
          "Vendor Prepayment Applications"
        ],
        "x-mint": {
          "metadata": {
            "title": "List VendorPrepaymentApplication records (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/vendor-prepayment-applications/list-vendorprepaymentapplication-records"
          }
        }
      },
      "post": {
        "operationId": "create_VendorPrepaymentApplication_record",
        "summary": "Create VendorPrepaymentApplication record",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicVendorPrepaymentApplicationSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Create a new VendorPrepaymentApplication record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Vendor Prepayment Applications"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicVendorPrepaymentApplicationSchemaCreateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Create VendorPrepaymentApplication record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/vendor-prepayment-applications/create-vendorprepaymentapplication-record"
          }
        }
      }
    },
    "/public/v1/vendor-prepayment-applications/{record_number}/": {
      "get": {
        "operationId": "get_VendorPrepaymentApplication_record",
        "summary": "Get VendorPrepaymentApplication record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "vendor_id",
            "schema": {
              "title": "Vendor Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "start_date",
            "schema": {
              "title": "Start Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "title": "End Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "transaction_currency",
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/SystemCurrencies"
                },
                {
                  "type": "null"
                }
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "title": "Record Status",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "bill_id",
            "schema": {
              "title": "Bill Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicVendorPrepaymentApplicationSchemaOut"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a specific VendorPrepaymentApplication record by its record number with all related data.",
        "tags": [
          "Vendor Prepayment Applications"
        ],
        "x-mint": {
          "metadata": {
            "title": "Get VendorPrepaymentApplication record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/vendor-prepayment-applications/get-vendorprepaymentapplication-record"
          }
        }
      },
      "put": {
        "operationId": "update_VendorPrepaymentApplication_record",
        "summary": "Update VendorPrepaymentApplication record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicVendorPrepaymentApplicationSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Update an existing VendorPrepaymentApplication record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Vendor Prepayment Applications"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicVendorPrepaymentApplicationSchemaUpdateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Update VendorPrepaymentApplication record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/vendor-prepayment-applications/update-vendorprepaymentapplication-record"
          }
        }
      }
    },
    "/public/v1/vendor-credits/": {
      "get": {
        "operationId": "list_VendorCredit_records",
        "summary": "List VendorCredit records",
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "vendor_id",
            "schema": {
              "title": "Vendor Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "start_date",
            "schema": {
              "title": "Start Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "title": "End Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "transaction_currency",
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/SystemCurrencies"
                },
                {
                  "type": "null"
                }
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "title": "Record Status",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "bill_number",
            "schema": {
              "title": "Bill Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "ordering",
            "schema": {
              "default": "id",
              "title": "Ordering",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "description": "Number of records to return per page (capped at 100)",
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to return per page (capped at 100)"
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Number of records to skip before starting to return results",
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to skip before starting to return results"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedPublicVendorCreditSchemaOut"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a paginated list of VendorCredit records with filtering and ordering options.",
        "tags": [
          "Vendor Credits"
        ],
        "x-mint": {
          "metadata": {
            "title": "List VendorCredit records (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/vendor-credits/list-vendorcredit-records"
          }
        }
      },
      "post": {
        "operationId": "create_VendorCredit_record",
        "summary": "Create VendorCredit record",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicVendorCreditSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Create a new VendorCredit record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Vendor Credits"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicVendorCreditSchemaCreateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Create VendorCredit record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/vendor-credits/create-vendorcredit-record"
          }
        }
      }
    },
    "/public/v1/vendor-credits/{record_number}/": {
      "get": {
        "operationId": "get_VendorCredit_record",
        "summary": "Get VendorCredit record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "vendor_id",
            "schema": {
              "title": "Vendor Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "start_date",
            "schema": {
              "title": "Start Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "title": "End Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "transaction_currency",
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/SystemCurrencies"
                },
                {
                  "type": "null"
                }
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "title": "Record Status",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "bill_number",
            "schema": {
              "title": "Bill Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicVendorCreditSchemaOut"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a specific VendorCredit record by its record number with all related data.",
        "tags": [
          "Vendor Credits"
        ],
        "x-mint": {
          "metadata": {
            "title": "Get VendorCredit record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/vendor-credits/get-vendorcredit-record"
          }
        }
      },
      "put": {
        "operationId": "update_VendorCredit_record",
        "summary": "Update VendorCredit record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicVendorCreditSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Update an existing VendorCredit record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Vendor Credits"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicVendorCreditSchemaUpdateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Update VendorCredit record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/vendor-credits/update-vendorcredit-record"
          }
        }
      }
    },
    "/public/v1/vendor-refunds/": {
      "get": {
        "operationId": "list_VendorRefund_records",
        "summary": "List VendorRefund records",
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "vendor_id",
            "schema": {
              "title": "Vendor Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "vendor_credit_id",
            "schema": {
              "title": "Vendor Credit Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "start_date",
            "schema": {
              "title": "Start Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "title": "End Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "transaction_currency",
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/SystemCurrencies"
                },
                {
                  "type": "null"
                }
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "title": "Record Status",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "ordering",
            "schema": {
              "default": "id",
              "title": "Ordering",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "description": "Number of records to return per page (capped at 100)",
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to return per page (capped at 100)"
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Number of records to skip before starting to return results",
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to skip before starting to return results"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedPublicVendorRefundSchemaOut"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a paginated list of VendorRefund records with filtering and ordering options.",
        "tags": [
          "Vendor Refunds"
        ],
        "x-mint": {
          "metadata": {
            "title": "List VendorRefund records (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/vendor-refunds/list-vendorrefund-records"
          }
        }
      },
      "post": {
        "operationId": "create_VendorRefund_record",
        "summary": "Create VendorRefund record",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicVendorRefundSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Create a new VendorRefund record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Vendor Refunds"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicVendorRefundSchemaCreateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Create VendorRefund record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/vendor-refunds/create-vendorrefund-record"
          }
        }
      }
    },
    "/public/v1/vendor-refunds/{record_number}/": {
      "get": {
        "operationId": "get_VendorRefund_record",
        "summary": "Get VendorRefund record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "vendor_id",
            "schema": {
              "title": "Vendor Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "vendor_credit_id",
            "schema": {
              "title": "Vendor Credit Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "start_date",
            "schema": {
              "title": "Start Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "title": "End Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "transaction_currency",
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/SystemCurrencies"
                },
                {
                  "type": "null"
                }
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "title": "Record Status",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicVendorRefundSchemaOut"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a specific VendorRefund record by its record number with all related data.",
        "tags": [
          "Vendor Refunds"
        ],
        "x-mint": {
          "metadata": {
            "title": "Get VendorRefund record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/vendor-refunds/get-vendorrefund-record"
          }
        }
      },
      "put": {
        "operationId": "update_VendorRefund_record",
        "summary": "Update VendorRefund record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicVendorRefundSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Update an existing VendorRefund record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Vendor Refunds"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicVendorRefundSchemaUpdateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Update VendorRefund record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/vendor-refunds/update-vendorrefund-record"
          }
        }
      }
    },
    "/public/v1/vendor-refunds/{record_number}/attachments/": {
      "post": {
        "operationId": "create_VendorRefund_record_attachments",
        "summary": "Create VendorRefund record attachments",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicVendorRefundSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Upload attachments to a VendorRefund record.",
        "tags": [
          "Vendor Refunds"
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "files": {
                    "items": {
                      "format": "binary",
                      "type": "string"
                    },
                    "title": "Files",
                    "type": "array"
                  }
                },
                "required": [
                  "files"
                ],
                "title": "FileParams",
                "type": "object"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Create VendorRefund record attachments (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/vendor-refunds/create-vendorrefund-record-attachments"
          }
        }
      }
    },
    "/public/v1/direct-expenses/": {
      "get": {
        "operationId": "list_DirectExpense_records",
        "summary": "List DirectExpense records",
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "vendor_id",
            "schema": {
              "title": "Vendor Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "start_date",
            "schema": {
              "title": "Start Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "title": "End Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "transaction_currency",
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/SystemCurrencies"
                },
                {
                  "type": "null"
                }
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "title": "Record Status",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "ordering",
            "schema": {
              "default": "id",
              "title": "Ordering",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "description": "Number of records to return per page (capped at 100)",
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to return per page (capped at 100)"
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Number of records to skip before starting to return results",
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to skip before starting to return results"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedPublicDirectExpenseSchemaOut"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a paginated list of DirectExpense records with filtering and ordering options.",
        "tags": [
          "Direct Expenses"
        ],
        "x-mint": {
          "metadata": {
            "title": "List DirectExpense records (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/direct-expenses/list-directexpense-records"
          }
        }
      },
      "post": {
        "operationId": "create_DirectExpense_record",
        "summary": "Create DirectExpense record",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicDirectExpenseSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Create a new DirectExpense record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Direct Expenses"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicDirectExpenseSchemaCreateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Create DirectExpense record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/direct-expenses/create-directexpense-record"
          }
        }
      }
    },
    "/public/v1/direct-expenses/{record_number}/": {
      "get": {
        "operationId": "get_DirectExpense_record",
        "summary": "Get DirectExpense record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "vendor_id",
            "schema": {
              "title": "Vendor Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "start_date",
            "schema": {
              "title": "Start Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "title": "End Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "transaction_currency",
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/SystemCurrencies"
                },
                {
                  "type": "null"
                }
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "title": "Record Status",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicDirectExpenseSchemaOut"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a specific DirectExpense record by its record number with all related data.",
        "tags": [
          "Direct Expenses"
        ],
        "x-mint": {
          "metadata": {
            "title": "Get DirectExpense record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/direct-expenses/get-directexpense-record"
          }
        }
      },
      "put": {
        "operationId": "update_DirectExpense_record",
        "summary": "Update DirectExpense record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicDirectExpenseSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Update an existing DirectExpense record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Direct Expenses"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicDirectExpenseSchemaUpdateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Update DirectExpense record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/direct-expenses/update-directexpense-record"
          }
        }
      }
    },
    "/public/v1/direct-expenses/{record_number}/attachments/": {
      "post": {
        "operationId": "create_DirectExpense_record_attachments",
        "summary": "Create DirectExpense record attachments",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicDirectExpenseSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Upload attachments to a DirectExpense record.",
        "tags": [
          "Direct Expenses"
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "files": {
                    "items": {
                      "format": "binary",
                      "type": "string"
                    },
                    "title": "Files",
                    "type": "array"
                  }
                },
                "required": [
                  "files"
                ],
                "title": "FileParams",
                "type": "object"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Create DirectExpense record attachments (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/direct-expenses/create-directexpense-record-attachments"
          }
        }
      }
    },
    "/public/v1/bank-transfers/": {
      "get": {
        "operationId": "list_BankTransfer_records",
        "summary": "List BankTransfer records",
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "start_date",
            "schema": {
              "title": "Start Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "title": "End Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "debit_bank_account_number",
            "schema": {
              "title": "Debit Bank Account Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "credit_bank_account_number",
            "schema": {
              "title": "Credit Bank Account Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "title": "Record Status",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "approval_status",
            "schema": {
              "title": "Approval Status",
              "items": {
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "approval_status_scope",
            "schema": {
              "title": "Approval Status Scope",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "ordering",
            "schema": {
              "default": "id",
              "title": "Ordering",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "description": "Number of records to return per page (capped at 100)",
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to return per page (capped at 100)"
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Number of records to skip before starting to return results",
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to skip before starting to return results"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedPublicBankTransferSchemaOut"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a paginated list of BankTransfer records with filtering and ordering options.",
        "tags": [
          "Bank Transfers"
        ],
        "x-mint": {
          "metadata": {
            "title": "List BankTransfer records (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/bank-transfers/list-banktransfer-records"
          }
        }
      },
      "post": {
        "operationId": "create_BankTransfer_record",
        "summary": "Create BankTransfer record",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicBankTransferSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Create a new BankTransfer record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Bank Transfers"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicBankTransferSchemaCreateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Create BankTransfer record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/bank-transfers/create-banktransfer-record"
          }
        }
      }
    },
    "/public/v1/bank-transfers/{record_number}/": {
      "get": {
        "operationId": "get_BankTransfer_record",
        "summary": "Get BankTransfer record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "start_date",
            "schema": {
              "title": "Start Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "title": "End Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "debit_bank_account_number",
            "schema": {
              "title": "Debit Bank Account Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "credit_bank_account_number",
            "schema": {
              "title": "Credit Bank Account Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "title": "Record Status",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "approval_status",
            "schema": {
              "title": "Approval Status",
              "items": {
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "approval_status_scope",
            "schema": {
              "title": "Approval Status Scope",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicBankTransferSchemaOut"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a specific BankTransfer record by its record number with all related data.",
        "tags": [
          "Bank Transfers"
        ],
        "x-mint": {
          "metadata": {
            "title": "Get BankTransfer record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/bank-transfers/get-banktransfer-record"
          }
        }
      },
      "put": {
        "operationId": "update_BankTransfer_record",
        "summary": "Update BankTransfer record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicBankTransferSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Update an existing BankTransfer record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Bank Transfers"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicBankTransferSchemaUpdateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Update BankTransfer record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/bank-transfers/update-banktransfer-record"
          }
        }
      }
    },
    "/public/v1/statistical-journals/": {
      "get": {
        "operationId": "list_StatisticalJournal_records",
        "summary": "List StatisticalJournal records",
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "account_id",
            "schema": {
              "title": "Account Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "account_number",
            "schema": {
              "title": "Account Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "line_account_id",
            "schema": {
              "title": "Line Account Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "line_account_number",
            "schema": {
              "title": "Line Account Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "period_start",
            "schema": {
              "title": "Period Start",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "period_end",
            "schema": {
              "title": "Period End",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "date_start",
            "schema": {
              "title": "Date Start",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "date_end",
            "schema": {
              "title": "Date End",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "title": "Record Status",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "ordering",
            "schema": {
              "default": "id",
              "title": "Ordering",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "description": "Number of records to return per page (capped at 100)",
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to return per page (capped at 100)"
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Number of records to skip before starting to return results",
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to skip before starting to return results"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedPublicStatisticalJournalListSchemaOut"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a paginated list of StatisticalJournal records with filtering and ordering options.",
        "tags": [
          "Statistical Journals"
        ],
        "x-mint": {
          "metadata": {
            "title": "List StatisticalJournal records (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/statistical-journals/list-statisticaljournal-records"
          }
        }
      },
      "post": {
        "operationId": "create_StatisticalJournal_record",
        "summary": "Create StatisticalJournal record",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicStatisticalJournalSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Create a new StatisticalJournal record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Statistical Journals"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicStatisticalJournalSchemaCreateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Create StatisticalJournal record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/statistical-journals/create-statisticaljournal-record"
          }
        }
      }
    },
    "/public/v1/statistical-journals/{record_number}/": {
      "get": {
        "operationId": "get_StatisticalJournal_record",
        "summary": "Get StatisticalJournal record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "account_id",
            "schema": {
              "title": "Account Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "account_number",
            "schema": {
              "title": "Account Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "line_account_id",
            "schema": {
              "title": "Line Account Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "line_account_number",
            "schema": {
              "title": "Line Account Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "period_start",
            "schema": {
              "title": "Period Start",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "period_end",
            "schema": {
              "title": "Period End",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "date_start",
            "schema": {
              "title": "Date Start",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "date_end",
            "schema": {
              "title": "Date End",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "title": "Record Status",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicStatisticalJournalSchemaOut"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a specific StatisticalJournal record by its record number with all related data.",
        "tags": [
          "Statistical Journals"
        ],
        "x-mint": {
          "metadata": {
            "title": "Get StatisticalJournal record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/statistical-journals/get-statisticaljournal-record"
          }
        }
      },
      "put": {
        "operationId": "update_StatisticalJournal_record",
        "summary": "Update StatisticalJournal record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicStatisticalJournalSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Update an existing StatisticalJournal record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Statistical Journals"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicStatisticalJournalSchemaUpdateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Update StatisticalJournal record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/statistical-journals/update-statisticaljournal-record"
          }
        }
      }
    },
    "/public/v1/statistical-journals/{record_number}/attachments/": {
      "post": {
        "operationId": "create_StatisticalJournal_record_attachments",
        "summary": "Create StatisticalJournal record attachments",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicStatisticalJournalSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Upload attachments to a StatisticalJournal record.",
        "tags": [
          "Statistical Journals"
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "files": {
                    "items": {
                      "format": "binary",
                      "type": "string"
                    },
                    "title": "Files",
                    "type": "array"
                  }
                },
                "required": [
                  "files"
                ],
                "title": "FileParams",
                "type": "object"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Create StatisticalJournal record attachments (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/statistical-journals/create-statisticaljournal-record-attachments"
          }
        }
      }
    },
    "/public/v1/recurring/invoices/": {
      "get": {
        "operationId": "list_RecurringInvoice_records",
        "summary": "List RecurringInvoice records",
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "recurring_type",
            "schema": {
              "title": "Recurring Type",
              "items": {
                "$ref": "#/components/schemas/RecurringType"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "ordering",
            "schema": {
              "default": "id",
              "title": "Ordering",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "description": "Number of records to return per page (capped at 100)",
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to return per page (capped at 100)"
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Number of records to skip before starting to return results",
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to skip before starting to return results"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedPublicRecurringInvoiceSchemaOut"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a paginated list of RecurringInvoice records with filtering and ordering options.",
        "tags": [
          "Recurring Invoices"
        ],
        "x-mint": {
          "metadata": {
            "title": "List RecurringInvoice records (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/recurring-invoices/list-recurringinvoice-records"
          }
        }
      },
      "post": {
        "operationId": "create_RecurringInvoice_record",
        "summary": "Create RecurringInvoice record",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicRecurringInvoiceSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Create a new RecurringInvoice record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Recurring Invoices"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicRecurringInvoiceSchemaCreateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Create RecurringInvoice record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/recurring-invoices/create-recurringinvoice-record"
          }
        }
      }
    },
    "/public/v1/recurring/invoices/{record_number}/": {
      "get": {
        "operationId": "get_RecurringInvoice_record",
        "summary": "Get RecurringInvoice record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "recurring_type",
            "schema": {
              "title": "Recurring Type",
              "items": {
                "$ref": "#/components/schemas/RecurringType"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicRecurringInvoiceSchemaOut"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a specific RecurringInvoice record by its record number with all related data.",
        "tags": [
          "Recurring Invoices"
        ],
        "x-mint": {
          "metadata": {
            "title": "Get RecurringInvoice record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/recurring-invoices/get-recurringinvoice-record"
          }
        }
      },
      "put": {
        "operationId": "update_RecurringInvoice_record",
        "summary": "Update RecurringInvoice record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicRecurringInvoiceSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Update an existing RecurringInvoice record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Recurring Invoices"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicRecurringInvoiceSchemaUpdateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Update RecurringInvoice record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/recurring-invoices/update-recurringinvoice-record"
          }
        }
      },
      "delete": {
        "operationId": "delete_RecurringInvoice_record",
        "summary": "Delete RecurringInvoice record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessSchema"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Delete a RecurringInvoice record.",
        "tags": [
          "Recurring Invoices"
        ],
        "x-mint": {
          "metadata": {
            "title": "Delete RecurringInvoice record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/recurring-invoices/delete-recurringinvoice-record"
          }
        }
      }
    },
    "/public/v1/recurring/bills/": {
      "get": {
        "operationId": "list_RecurringBill_records",
        "summary": "List RecurringBill records",
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "recurring_type",
            "schema": {
              "title": "Recurring Type",
              "items": {
                "$ref": "#/components/schemas/RecurringType"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "ordering",
            "schema": {
              "default": "id",
              "title": "Ordering",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "description": "Number of records to return per page (capped at 100)",
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to return per page (capped at 100)"
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Number of records to skip before starting to return results",
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to skip before starting to return results"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedPublicRecurringBillSchemaOut"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a paginated list of RecurringBill records with filtering and ordering options.",
        "tags": [
          "Recurring Bills"
        ],
        "x-mint": {
          "metadata": {
            "title": "List RecurringBill records (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/recurring-bills/list-recurringbill-records"
          }
        }
      },
      "post": {
        "operationId": "create_RecurringBill_record",
        "summary": "Create RecurringBill record",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicRecurringBillSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Create a new RecurringBill record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Recurring Bills"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicRecurringBillSchemaCreateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Create RecurringBill record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/recurring-bills/create-recurringbill-record"
          }
        }
      }
    },
    "/public/v1/recurring/bills/{record_number}/": {
      "get": {
        "operationId": "get_RecurringBill_record",
        "summary": "Get RecurringBill record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "recurring_type",
            "schema": {
              "title": "Recurring Type",
              "items": {
                "$ref": "#/components/schemas/RecurringType"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicRecurringBillSchemaOut"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a specific RecurringBill record by its record number with all related data.",
        "tags": [
          "Recurring Bills"
        ],
        "x-mint": {
          "metadata": {
            "title": "Get RecurringBill record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/recurring-bills/get-recurringbill-record"
          }
        }
      },
      "put": {
        "operationId": "update_RecurringBill_record",
        "summary": "Update RecurringBill record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicRecurringBillSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Update an existing RecurringBill record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Recurring Bills"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicRecurringBillSchemaUpdateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Update RecurringBill record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/recurring-bills/update-recurringbill-record"
          }
        }
      },
      "delete": {
        "operationId": "delete_RecurringBill_record",
        "summary": "Delete RecurringBill record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessSchema"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Delete a RecurringBill record.",
        "tags": [
          "Recurring Bills"
        ],
        "x-mint": {
          "metadata": {
            "title": "Delete RecurringBill record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/recurring-bills/delete-recurringbill-record"
          }
        }
      }
    },
    "/public/v1/recurring/journal-entries/": {
      "get": {
        "operationId": "list_RecurringJournalEntry_records",
        "summary": "List RecurringJournalEntry records",
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "recurring_type",
            "schema": {
              "title": "Recurring Type",
              "items": {
                "$ref": "#/components/schemas/RecurringType"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "ordering",
            "schema": {
              "default": "id",
              "title": "Ordering",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "description": "Number of records to return per page (capped at 100)",
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to return per page (capped at 100)"
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Number of records to skip before starting to return results",
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to skip before starting to return results"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedPublicRecurringJournalEntrySchemaOut"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a paginated list of RecurringJournalEntry records with filtering and ordering options.",
        "tags": [
          "Recurring Journal Entries"
        ],
        "x-mint": {
          "metadata": {
            "title": "List RecurringJournalEntry records (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/recurring-journal-entries/list-recurringjournalentry-records"
          }
        }
      },
      "post": {
        "operationId": "create_RecurringJournalEntry_record",
        "summary": "Create RecurringJournalEntry record",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicRecurringJournalEntrySchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Create a new RecurringJournalEntry record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Recurring Journal Entries"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicRecurringJournalEntrySchemaCreateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Create RecurringJournalEntry record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/recurring-journal-entries/create-recurringjournalentry-record"
          }
        }
      }
    },
    "/public/v1/recurring/journal-entries/{record_number}/": {
      "get": {
        "operationId": "get_RecurringJournalEntry_record",
        "summary": "Get RecurringJournalEntry record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "recurring_type",
            "schema": {
              "title": "Recurring Type",
              "items": {
                "$ref": "#/components/schemas/RecurringType"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicRecurringJournalEntrySchemaOut"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a specific RecurringJournalEntry record by its record number with all related data.",
        "tags": [
          "Recurring Journal Entries"
        ],
        "x-mint": {
          "metadata": {
            "title": "Get RecurringJournalEntry record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/recurring-journal-entries/get-recurringjournalentry-record"
          }
        }
      },
      "put": {
        "operationId": "update_RecurringJournalEntry_record",
        "summary": "Update RecurringJournalEntry record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicRecurringJournalEntrySchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Update an existing RecurringJournalEntry record with the provided data. Validates all required fields and business rules.",
        "tags": [
          "Recurring Journal Entries"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicRecurringJournalEntrySchemaUpdateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Update RecurringJournalEntry record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/recurring-journal-entries/update-recurringjournalentry-record"
          }
        }
      },
      "delete": {
        "operationId": "delete_RecurringJournalEntry_record",
        "summary": "Delete RecurringJournalEntry record",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "description": "The `number` attribute of the record.",
              "title": "Record Number",
              "type": "integer"
            },
            "required": true,
            "description": "The `number` attribute of the record."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessSchema"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Delete a RecurringJournalEntry record.",
        "tags": [
          "Recurring Journal Entries"
        ],
        "x-mint": {
          "metadata": {
            "title": "Delete RecurringJournalEntry record (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/recurring-journal-entries/delete-recurringjournalentry-record"
          }
        }
      }
    },
    "/public/v1/companies/": {
      "get": {
        "operationId": "core_api_public_companies_list_companies",
        "summary": "List companies",
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "id",
            "schema": {
              "title": "Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "name",
            "schema": {
              "title": "Name",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "parent_company_id",
            "schema": {
              "title": "Parent Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "currency_iso_4217_code",
            "schema": {
              "title": "Currency Iso 4217 Code",
              "items": {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "is_active",
            "schema": {
              "title": "Is Active",
              "type": [
                "boolean",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "is_elimination",
            "schema": {
              "title": "Is Elimination",
              "type": [
                "boolean",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "ordering",
            "schema": {
              "default": "-updated_at",
              "title": "Ordering",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "description": "Number of records to return per page (capped at 100)",
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to return per page (capped at 100)"
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Number of records to skip before starting to return results",
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to skip before starting to return results"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedCompanySchemaOut"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a paginated list of companies with filtering, search, and ordering capabilities.",
        "tags": [
          "Companies"
        ],
        "x-mint": {
          "metadata": {
            "title": "List companies (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/companies/list-companies"
          }
        }
      }
    },
    "/public/v1/companies/{company_id}/": {
      "get": {
        "operationId": "core_api_public_companies_get_company",
        "summary": "Get company",
        "parameters": [
          {
            "in": "path",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "type": "integer"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanySchemaOut"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a specific company by ID with all related data including company access.",
        "tags": [
          "Companies"
        ],
        "x-mint": {
          "metadata": {
            "title": "Get company (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/companies/get-company"
          }
        }
      }
    },
    "/public/v1/accounts/": {
      "get": {
        "operationId": "core_api_public_accounts_list_accounts",
        "summary": "List accounts",
        "parameters": [
          {
            "in": "query",
            "name": "integration_sources",
            "schema": {
              "title": "Integration Sources",
              "items": {
                "$ref": "#/components/schemas/IntegrationSourceSlug"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "id",
            "schema": {
              "title": "Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "excluded_id",
            "schema": {
              "description": "Account IDs to exclude from the response. Combines with id (include set minus excluded set).",
              "title": "Excluded Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false,
            "description": "Account IDs to exclude from the response. Combines with id (include set minus excluded set)."
          },
          {
            "in": "query",
            "name": "name",
            "schema": {
              "title": "Name",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "description",
            "schema": {
              "title": "Description",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "type": [
                "integer",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "account_types",
            "schema": {
              "title": "Account Types",
              "items": {
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "excluded_account_types",
            "schema": {
              "description": "Account types to exclude from the response. Combines with account_types (include set minus excluded set).",
              "title": "Excluded Account Types",
              "items": {
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false,
            "description": "Account types to exclude from the response. Combines with account_types (include set minus excluded set)."
          },
          {
            "in": "query",
            "name": "is_active",
            "schema": {
              "title": "Is Active",
              "type": [
                "boolean",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "is_system",
            "schema": {
              "title": "Is System",
              "type": [
                "boolean",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "is_monetary",
            "schema": {
              "title": "Is Monetary",
              "type": [
                "boolean",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "description": "Only filters by company_id field used in Bank and Credit Card accounts.",
              "title": "Company Id",
              "items": {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "const": "null",
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "uniqueItems": true,
              "type": [
                "array",
                "null"
              ]
            },
            "required": false,
            "description": "Only filters by company_id field used in Bank and Credit Card accounts."
          },
          {
            "in": "query",
            "name": "parent_account_id",
            "schema": {
              "title": "Parent Account Id",
              "type": [
                "integer",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "financial_account_id",
            "schema": {
              "description": "Only filters by financial_account_id field used in Bank and Credit Card accounts.",
              "title": "Financial Account Id",
              "items": {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "const": "null",
                    "type": "string"
                  }
                ]
              },
              "uniqueItems": true,
              "type": [
                "array",
                "null"
              ]
            },
            "required": false,
            "description": "Only filters by financial_account_id field used in Bank and Credit Card accounts."
          },
          {
            "in": "query",
            "name": "no_financial_account",
            "schema": {
              "title": "No Financial Account",
              "type": [
                "boolean",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "currency_iso_4217_code",
            "schema": {
              "title": "Currency Iso 4217 Code",
              "items": {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "category_1099",
            "schema": {
              "title": "Category 1099",
              "items": {
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "should_sync_pending",
            "schema": {
              "title": "Should Sync Pending",
              "type": [
                "boolean",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id_access",
            "schema": {
              "description": "A combined filter by company_id_access, and the company_id field used in Bank and Credit Card accounts.",
              "title": "Company Id Access",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false,
            "description": "A combined filter by company_id_access, and the company_id field used in Bank and Credit Card accounts."
          },
          {
            "in": "query",
            "name": "numbers",
            "schema": {
              "title": "Numbers",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "names",
            "schema": {
              "title": "Names",
              "items": {
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "system_ref",
            "schema": {
              "title": "System Ref",
              "items": {
                "$ref": "#/components/schemas/SystemAccountNames"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "exclude_mapped_to_other_companies",
            "schema": {
              "description": "When set to a company_id, only returns accounts that are completely unmapped (no company_id and no AccountCompanyAccess). Used during migration to avoid selecting accounts already mapped to any company.",
              "title": "Exclude Mapped To Other Companies",
              "type": [
                "integer",
                "null"
              ]
            },
            "required": false,
            "description": "When set to a company_id, only returns accounts that are completely unmapped (no company_id and no AccountCompanyAccess). Used during migration to avoid selecting accounts already mapped to any company."
          },
          {
            "in": "query",
            "name": "start_date",
            "schema": {
              "title": "Start Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "title": "End Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "ordering",
            "schema": {
              "default": "number",
              "title": "Ordering",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "description": "Number of records to return per page (capped at 100)",
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to return per page (capped at 100)"
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Number of records to skip before starting to return results",
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to skip before starting to return results"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedPublicAccountSchemaOut"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a paginated list of chart of accounts with filtering, search, and ordering capabilities.",
        "tags": [
          "Accounts"
        ],
        "x-mint": {
          "metadata": {
            "title": "List accounts (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/accounts/list-accounts"
          }
        }
      },
      "post": {
        "operationId": "core_api_public_accounts_create_account",
        "summary": "Create account",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicAccountSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Create a new account in the chart of accounts. Supports parent-child relationships and company access restrictions.",
        "tags": [
          "Accounts"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicAccountSchemaCreateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Create account (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/accounts/create-account"
          }
        }
      }
    },
    "/public/v1/accounts/{account_number}/": {
      "get": {
        "operationId": "core_api_public_accounts_get_account",
        "summary": "Get account",
        "parameters": [
          {
            "in": "path",
            "name": "account_number",
            "schema": {
              "title": "Account Number",
              "type": "integer"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicAccountSchemaOut"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a specific account by number with all related data including company access.",
        "tags": [
          "Accounts"
        ],
        "x-mint": {
          "metadata": {
            "title": "Get account (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/accounts/get-account"
          }
        }
      }
    },
    "/public/v1/budgets/": {
      "get": {
        "operationId": "core_api_public_budgets_list_budgets",
        "summary": "List budgets",
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "budget_type",
            "schema": {
              "title": "Budget Type",
              "items": {
                "$ref": "#/components/schemas/BudgetTypes"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "calendar_year",
            "schema": {
              "title": "Calendar Year",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "title": "Record Status",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "ordering",
            "schema": {
              "default": "-updated_at",
              "title": "Ordering",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "description": "Number of records to return per page (capped at 100)",
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to return per page (capped at 100)"
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Number of records to skip before starting to return results",
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to skip before starting to return results"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedPublicBudgetSchemaOut"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a paginated list of budgets with filtering and search capabilities.",
        "tags": [
          "Budgets"
        ],
        "x-mint": {
          "metadata": {
            "title": "List budgets (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/budgets/list-budgets"
          }
        }
      }
    },
    "/public/v1/budgets/{budget_id}/": {
      "get": {
        "operationId": "core_api_public_budgets_get_budget",
        "summary": "Get budget",
        "parameters": [
          {
            "in": "path",
            "name": "budget_id",
            "schema": {
              "title": "Budget Id",
              "type": "integer"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicBudgetSchemaOut"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a specific budget by ID with all related data.",
        "tags": [
          "Budgets"
        ],
        "x-mint": {
          "metadata": {
            "title": "Get budget (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/budgets/get-budget"
          }
        }
      }
    },
    "/public/v1/contracts/": {
      "get": {
        "operationId": "core_api_public_contracts_list_contracts",
        "summary": "List Contracts",
        "parameters": [
          {
            "in": "query",
            "name": "integration_sources",
            "schema": {
              "title": "Integration Sources",
              "items": {
                "$ref": "#/components/schemas/IntegrationSourceSlug"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "id",
            "schema": {
              "title": "Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "customer_id",
            "schema": {
              "title": "Customer Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "status",
            "schema": {
              "title": "Status",
              "items": {
                "$ref": "#/components/schemas/ContractStatusFilter"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "start_date",
            "schema": {
              "title": "Start Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "title": "End Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "contract_start_date",
            "schema": {
              "title": "Contract Start Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "contract_end_date",
            "schema": {
              "title": "Contract End Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "approval_status",
            "schema": {
              "title": "Approval Status",
              "items": {
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "recognition_mode",
            "schema": {
              "title": "Recognition Mode",
              "items": {
                "$ref": "#/components/schemas/RecognitionMode"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "recognition_strategy",
            "schema": {
              "title": "Recognition Strategy",
              "items": {
                "$ref": "#/components/schemas/RecognitionStrategy"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "has_auto_renewal",
            "schema": {
              "title": "Has Auto Renewal",
              "type": [
                "boolean",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "has_scheduled_termination",
            "schema": {
              "title": "Has Scheduled Termination",
              "type": [
                "boolean",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "days_till_expiry",
            "schema": {
              "title": "Days Till Expiry",
              "type": [
                "integer",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "ordering",
            "schema": {
              "default": "-updated_at",
              "title": "Ordering",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "description": "Number of records to return per page (capped at 100)",
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to return per page (capped at 100)"
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Number of records to skip before starting to return results",
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to skip before starting to return results"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedContractListSchemaOut"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a paginated list of revenue recognition contracts, with filtering and ordering options.",
        "tags": [
          "Contracts"
        ],
        "x-mint": {
          "metadata": {
            "title": "List Contracts (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/contracts/list-contracts"
          }
        }
      },
      "post": {
        "operationId": "core_api_public_contracts_create_contract",
        "summary": "Create Contract",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContractSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Create a revenue recognition contract with its performance obligations and recognition schedule.",
        "tags": [
          "Contracts"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ContractSchemaCreateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Create Contract (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/contracts/create-contract"
          }
        }
      }
    },
    "/public/v1/contracts/{record_id}/": {
      "get": {
        "operationId": "core_api_public_contracts_get_contract",
        "summary": "Get Contract",
        "parameters": [
          {
            "in": "path",
            "name": "record_id",
            "schema": {
              "title": "Record Id",
              "type": "integer"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContractSchemaOut"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a single revenue recognition contract by record ID, including its performance obligations.",
        "tags": [
          "Contracts"
        ],
        "x-mint": {
          "metadata": {
            "title": "Get Contract (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/contracts/get-contract"
          }
        }
      }
    },
    "/public/v1/contracts/{contract_id}/usage/": {
      "get": {
        "operationId": "core_api_public_contracts_list_obligation_usage",
        "summary": "List usage records for a contract",
        "parameters": [
          {
            "in": "path",
            "name": "contract_id",
            "schema": {
              "title": "Contract Id",
              "type": "integer"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ObligationUsageSchemaOut"
                  },
                  "title": "Response",
                  "type": "array"
                }
              }
            }
          }
        },
        "description": "Return all usage records for a given contract.",
        "tags": [
          "Contracts"
        ],
        "x-mint": {
          "metadata": {
            "title": "List usage records for a contract (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/contracts/list-usage-records-for-a-contract"
          }
        }
      }
    },
    "/public/v1/contracts/{contract_id}/usage/bulk-upsert/": {
      "post": {
        "operationId": "core_api_public_contracts_upsert_obligation_usage",
        "summary": "Upsert usage records for contract obligations",
        "parameters": [
          {
            "in": "path",
            "name": "contract_id",
            "schema": {
              "title": "Contract Id",
              "type": "integer"
            },
            "required": true
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ObligationUsageSchemaOut"
                  },
                  "title": "Response",
                  "type": "array"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Create or update usage records in batch. Items with an 'id' field are updated; items without are created. Generates revenue recognitions and invoices.",
        "tags": [
          "Contracts"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ObligationUsageBatchIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Upsert usage records for contract obligations (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/contracts/upsert-usage-records-for-contract-obligations"
          }
        }
      }
    },
    "/public/v1/customers/": {
      "get": {
        "operationId": "core_api_public_customers_list_customers",
        "summary": "List customers",
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "id",
            "schema": {
              "title": "Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "customer_type",
            "schema": {
              "title": "Customer Type",
              "items": {
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "name",
            "schema": {
              "title": "Name",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "name_exact",
            "schema": {
              "title": "Name Exact",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "unique_id",
            "schema": {
              "title": "Unique Id",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "email",
            "schema": {
              "title": "Email",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "website",
            "schema": {
              "title": "Website",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "address",
            "schema": {
              "title": "Address",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "country",
            "schema": {
              "title": "Country",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "state",
            "schema": {
              "title": "State",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "phone",
            "schema": {
              "title": "Phone",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "title": "Record Status",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "approval_status",
            "schema": {
              "title": "Approval Status",
              "items": {
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "approval_status_scope",
            "schema": {
              "title": "Approval Status Scope",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "ordering",
            "schema": {
              "default": "-updated_at",
              "title": "Ordering",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "description": "Number of records to return per page (capped at 100)",
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to return per page (capped at 100)"
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Number of records to skip before starting to return results",
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to skip before starting to return results"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedCustomerListSchemaOut"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a paginated list of customers with filtering, search, and ordering capabilities.",
        "tags": [
          "Customers"
        ],
        "x-mint": {
          "metadata": {
            "title": "List customers (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/customers/list-customers"
          }
        }
      },
      "post": {
        "operationId": "core_api_public_customers_create_customer",
        "summary": "Create customer",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Create a new customer record with address information.\n\nSet `is_taxable` to `false` to create a tax-exempt customer (for example resellers, government agencies, or qualifying non-profits). Omit the field to use the default (`false`).",
        "tags": [
          "Customers"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerSchemaCreateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "description": "Create a new customer record with address information.",
            "title": "Create customer (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/customers/create-customer"
          }
        }
      }
    },
    "/public/v1/customers/{customer_id}/": {
      "get": {
        "operationId": "core_api_public_customers_get_customer",
        "summary": "Get customer",
        "parameters": [
          {
            "in": "path",
            "name": "customer_id",
            "schema": {
              "title": "Customer Id",
              "type": "integer"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerSchemaOut"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a specific customer by ID.",
        "tags": [
          "Customers"
        ],
        "x-mint": {
          "metadata": {
            "title": "Get customer (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/customers/get-customer"
          }
        }
      },
      "put": {
        "operationId": "core_api_public_customers_update_customer",
        "summary": "Update customer",
        "parameters": [
          {
            "in": "path",
            "name": "customer_id",
            "schema": {
              "title": "Customer Id",
              "type": "integer"
            },
            "required": true
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Update a customer. Send only the fields you want to change \u2014 anything you don't send stays as it is.\n\nSet `is_taxable` to `false` to mark the customer as tax-exempt, or `true` to make them taxable. Omit the field to leave the current value unchanged.\n\nSetting custom fields is easiest using the field name as the key:\n\n```json\n{\"custom_fields\": [{\"Partner\": true}, {\"Tier\": \"Gold\"}]}\n```\n\nEach item is a one-key object where the key is the custom field's name and the value is whatever you want to set. Use `null` to clear a field. If the name doesn't match a custom field in your organization you'll get a 422 back \u2014 we won't silently ignore it.\n\nIf you already know the custom field's id, the older nested shape still works and you can mix both in the same request:\n\n```json\n{\"custom_fields\": [{\"field\": {\"id\": 42}, \"value\": {\"custom_field_id\": 42, \"value\": \"Acme\"}}]}\n```\n\nEdge case: if you happen to have two custom fields with the same name, the name-keyed shape can't tell them apart \u2014 use the id-based shape for those.",
        "tags": [
          "Customers"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerSchemaUpdateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "description": "Update a customer.",
            "title": "Update customer (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/customers/update-customer"
          }
        }
      },
      "patch": {
        "operationId": "core_api_public_customers_patch_customer",
        "summary": "Update customer (partial)",
        "parameters": [
          {
            "in": "path",
            "name": "customer_id",
            "schema": {
              "title": "Customer Id",
              "type": "integer"
            },
            "required": true
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Update specific fields on a customer. Send only the fields you want to change \u2014 anything you don't send stays as it is. To clear a nullable field, send `null`.\n\nSet `is_taxable` to `false` to mark the customer as tax-exempt, or `true` to make them taxable. Omit the field to leave the current value unchanged.\n\nExample \u2014 rename a customer:\n\n```json\n{\"name\": \"Acme Holdings, Inc.\"}\n```\n\nExample \u2014 update phone and website together:\n\n```json\n{\"phone\": \"555-0199\", \"website\": \"https://acme.example\"}\n```\n\n**Custom fields**\n\nSet custom fields by name:\n\n```json\n{\"custom_fields\": [{\"Partner\": true}, {\"Tier\": \"Gold\"}]}\n```\n\nEach item is a one-key object where the key is the custom field's name and the value is whatever you want to set. Use `null` to clear a field. If the name doesn't match a custom field in your organization you'll get a 422 back \u2014 we won't silently ignore it. If you happen to have two custom fields with the same name, use the id-based shape:\n\n```json\n{\"custom_fields\": [{\"field\": {\"id\": 42}, \"value\": {\"custom_field_id\": 42, \"value\": \"Acme\"}}]}\n```\n\nOmitting `custom_fields` from the request leaves existing values untouched.",
        "tags": [
          "Customers"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerSchemaPatchIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "description": "Update specific fields on a customer.",
            "title": "Update customer (partial) (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/customers/update-customer-partial"
          }
        }
      },
      "delete": {
        "operationId": "core_api_public_customers_delete_customer",
        "summary": "Delete customer",
        "parameters": [
          {
            "in": "path",
            "name": "customer_id",
            "schema": {
              "title": "Customer Id",
              "type": "integer"
            },
            "required": true
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessSchema"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Delete a customer by ID. Fails if the customer is referenced by other records.",
        "tags": [
          "Customers"
        ],
        "x-mint": {
          "metadata": {
            "title": "Delete customer (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/customers/delete-customer"
          }
        }
      }
    },
    "/public/v1/items/": {
      "get": {
        "operationId": "core_api_public_items_list_items",
        "summary": "List Items",
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "id",
            "schema": {
              "title": "Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "name",
            "schema": {
              "title": "Name",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "item_type",
            "schema": {
              "title": "Item Type",
              "items": {
                "$ref": "#/components/schemas/ItemTypes"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "no_income_account",
            "schema": {
              "title": "No Income Account",
              "type": [
                "boolean",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "no_expense_account",
            "schema": {
              "title": "No Expense Account",
              "type": [
                "boolean",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "no_deferral_account",
            "schema": {
              "title": "No Deferral Account",
              "type": [
                "boolean",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "no_asset_account",
            "schema": {
              "title": "No Asset Account",
              "type": [
                "boolean",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "no_discount_account",
            "schema": {
              "title": "No Discount Account",
              "type": [
                "boolean",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "expense_account_id",
            "schema": {
              "title": "Expense Account Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "income_account_id",
            "schema": {
              "title": "Income Account Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "deferral_account_id",
            "schema": {
              "title": "Deferral Account Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "asset_account_id",
            "schema": {
              "title": "Asset Account Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "product_tax_code_id",
            "schema": {
              "title": "Product Tax Code Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "discount_account_id",
            "schema": {
              "title": "Discount Account Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "is_active",
            "schema": {
              "title": "Is Active",
              "type": [
                "boolean",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "title": "Record Status",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "show_inactive",
            "schema": {
              "default": false,
              "title": "Show Inactive",
              "type": "boolean"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "ordering",
            "schema": {
              "default": "-updated_at",
              "title": "Ordering",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "description": "Number of records to return per page (capped at 100)",
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to return per page (capped at 100)"
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Number of records to skip before starting to return results",
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to skip before starting to return results"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedPublicItemSchemaOut"
                }
              }
            }
          }
        },
        "description": "Retrieve a paginated list of items (products and services), with filtering and ordering options.",
        "tags": [
          "Items"
        ],
        "x-mint": {
          "metadata": {
            "title": "List Items (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/items/list-items"
          }
        }
      },
      "post": {
        "operationId": "core_api_public_items_create_item",
        "summary": "Create Item",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicItemSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Create an item (product or service) with pricing, description, and revenue or expense accounts.",
        "tags": [
          "Items"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicItemSchemaCreateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Create Item (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/items/create-item"
          }
        }
      }
    },
    "/public/v1/items/{item_id}/": {
      "get": {
        "operationId": "core_api_public_items_get_item",
        "summary": "Get Item",
        "parameters": [
          {
            "in": "path",
            "name": "item_id",
            "schema": {
              "title": "Item Id",
              "type": "integer"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicItemSchemaOut"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a single item by ID, including its pricing and associated accounts.",
        "tags": [
          "Items"
        ],
        "x-mint": {
          "metadata": {
            "title": "Get Item (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/items/get-item"
          }
        }
      },
      "put": {
        "operationId": "core_api_public_items_update_item",
        "summary": "Update Item",
        "parameters": [
          {
            "in": "path",
            "name": "item_id",
            "schema": {
              "title": "Item Id",
              "type": "integer"
            },
            "required": true
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicItemSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Update an existing item's pricing, description, and associated accounts.",
        "tags": [
          "Items"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicItemSchemaUpdateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Update Item (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/items/update-item"
          }
        }
      },
      "patch": {
        "operationId": "core_api_public_items_patch_item",
        "summary": "Update Item (partial)",
        "parameters": [
          {
            "in": "path",
            "name": "item_id",
            "schema": {
              "title": "Item Id",
              "type": "integer"
            },
            "required": true
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicItemSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Update specific fields on an item. Send only the fields you want to change \u2014 anything you don't send stays as it is. To clear a nullable field, send `null`.",
        "tags": [
          "Items"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicItemSchemaPatchIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "description": "Update specific fields on an item.",
            "title": "Update Item (partial) (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/items/update-item-partial"
          }
        }
      },
      "delete": {
        "operationId": "core_api_public_items_delete_item",
        "summary": "Delete Item",
        "parameters": [
          {
            "in": "path",
            "name": "item_id",
            "schema": {
              "title": "Item Id",
              "type": "integer"
            },
            "required": true
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessSchema"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Delete an item so it can no longer be added to invoices or bills.",
        "tags": [
          "Items"
        ],
        "x-mint": {
          "metadata": {
            "title": "Delete Item (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/items/delete-item"
          }
        }
      }
    },
    "/public/v1/vendors/": {
      "get": {
        "operationId": "core_api_public_vendors_list_vendors",
        "summary": "List vendors",
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "id",
            "schema": {
              "title": "Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "vendor_type",
            "schema": {
              "title": "Vendor Type",
              "items": {
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "name",
            "schema": {
              "title": "Name",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "unique_id",
            "schema": {
              "title": "Unique Id",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "email",
            "schema": {
              "title": "Email",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "website",
            "schema": {
              "title": "Website",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "single_address",
            "schema": {
              "title": "Single Address",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "country",
            "schema": {
              "title": "Country",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "state",
            "schema": {
              "title": "State",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "phone",
            "schema": {
              "title": "Phone",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "is_active",
            "schema": {
              "title": "Is Active",
              "type": [
                "boolean",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "is_1099_eligible",
            "schema": {
              "title": "Is 1099 Eligible",
              "type": [
                "boolean",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "tin",
            "schema": {
              "title": "Tin",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "title": "Record Status",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "exclude_company_id",
            "schema": {
              "title": "Exclude Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "names",
            "schema": {
              "title": "Names",
              "items": {
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "start_date",
            "schema": {
              "title": "Start Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "title": "End Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "approval_status",
            "schema": {
              "title": "Approval Status",
              "items": {
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "approval_status_scope",
            "schema": {
              "title": "Approval Status Scope",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "view",
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/ListView"
                },
                {
                  "type": "null"
                }
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id_access",
            "schema": {
              "title": "Company Id Access",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "ordering",
            "schema": {
              "default": "-updated_at",
              "title": "Ordering",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "description": "Number of records to return per page (capped at 100)",
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to return per page (capped at 100)"
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Number of records to skip before starting to return results",
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to skip before starting to return results"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedPublicVendorListSchemaOut"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a paginated list of vendors with filtering, search, and ordering capabilities.",
        "tags": [
          "Vendors"
        ],
        "x-mint": {
          "metadata": {
            "title": "List vendors (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/vendors/list-vendors"
          }
        }
      },
      "post": {
        "operationId": "core_api_public_vendors_create_vendor",
        "summary": "Create vendor",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicVendorSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Create a new vendor record with address and payment information.",
        "tags": [
          "Vendors"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicVendorSchemaCreateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Create vendor (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/vendors/create-vendor"
          }
        }
      }
    },
    "/public/v1/vendors/{vendor_id}/": {
      "get": {
        "operationId": "core_api_public_vendors_get_vendor",
        "summary": "Get vendor",
        "parameters": [
          {
            "in": "path",
            "name": "vendor_id",
            "schema": {
              "title": "Vendor Id",
              "type": "integer"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicVendorSchemaOut"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a specific vendor by ID with address, attachments, and payment information.",
        "tags": [
          "Vendors"
        ],
        "x-mint": {
          "metadata": {
            "title": "Get vendor (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/vendors/get-vendor"
          }
        }
      },
      "put": {
        "operationId": "core_api_public_vendors_update_vendor",
        "summary": "Update vendor",
        "parameters": [
          {
            "in": "path",
            "name": "vendor_id",
            "schema": {
              "title": "Vendor Id",
              "type": "integer"
            },
            "required": true
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicVendorSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Update a vendor. Send only the fields you want to change \u2014 anything you don't send stays as it is.\n\nSetting custom fields is easiest using the field name as the key:\n\n```json\n{\"custom_fields\": [{\"Partner\": true}, {\"Tier\": \"Gold\"}]}\n```\n\nEach item is a one-key object where the key is the custom field's name and the value is whatever you want to set. Use `null` to clear a field. If the name doesn't match a custom field in your organization you'll get a 422 back \u2014 we won't silently ignore it.\n\nIf you already know the custom field's id, the older nested shape still works and you can mix both in the same request:\n\n```json\n{\"custom_fields\": [{\"field\": {\"id\": 42}, \"value\": {\"custom_field_id\": 42, \"value\": \"Acme\"}}]}\n```\n\nEdge case: if you happen to have two custom fields with the same name, the name-keyed shape can't tell them apart \u2014 use the id-based shape for those.",
        "tags": [
          "Vendors"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicVendorSchemaUpdateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "description": "Update a vendor.",
            "title": "Update vendor (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/vendors/update-vendor"
          }
        }
      },
      "patch": {
        "operationId": "core_api_public_vendors_patch_vendor",
        "summary": "Update vendor (partial)",
        "parameters": [
          {
            "in": "path",
            "name": "vendor_id",
            "schema": {
              "title": "Vendor Id",
              "type": "integer"
            },
            "required": true
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicVendorSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Update specific fields on a vendor. Send only the fields you want to change \u2014 anything you don't send stays as it is. To clear a nullable field, send `null`.\n\nExample \u2014 rename a vendor and update its TIN:\n\n```json\n{\"name\": \"Acme Supply Co.\", \"tin\": \"12-3456789\", \"tin_type\": \"ein\"}\n```\n\nExample \u2014 change payment routing:\n\n```json\n{\"bank_account_number\": \"000123456789\", \"bank_routing_number\": \"021000021\"}\n```\n\nExisting attachments are preserved unless you explicitly send the `attachments` field; use the dedicated attachments endpoint to manage them.\n\n**Custom fields**\n\nSet custom fields by name:\n\n```json\n{\"custom_fields\": [{\"Partner\": true}, {\"Tier\": \"Gold\"}]}\n```\n\nEach item is a one-key object where the key is the custom field's name and the value is whatever you want to set. Use `null` to clear a field. If the name doesn't match a custom field in your organization you'll get a 422 back \u2014 we won't silently ignore it. If you happen to have two custom fields with the same name, use the id-based shape:\n\n```json\n{\"custom_fields\": [{\"field\": {\"id\": 42}, \"value\": {\"custom_field_id\": 42, \"value\": \"Acme\"}}]}\n```\n\nOmitting `custom_fields` from the request leaves existing values untouched.",
        "tags": [
          "Vendors"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicVendorSchemaPatchIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "description": "Update specific fields on a vendor.",
            "title": "Update vendor (partial) (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/vendors/update-vendor-partial"
          }
        }
      },
      "delete": {
        "operationId": "core_api_public_vendors_delete_vendor",
        "summary": "Delete vendor",
        "parameters": [
          {
            "in": "path",
            "name": "vendor_id",
            "schema": {
              "title": "Vendor Id",
              "type": "integer"
            },
            "required": true
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessSchema"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Delete a vendor by ID. Fails if the vendor is referenced by other records.",
        "tags": [
          "Vendors"
        ],
        "x-mint": {
          "metadata": {
            "title": "Delete vendor (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/vendors/delete-vendor"
          }
        }
      }
    },
    "/public/v1/classifications/": {
      "get": {
        "operationId": "core_api_public_classifications_list_classifications",
        "summary": "List Classifications",
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "id",
            "schema": {
              "title": "Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "name",
            "schema": {
              "title": "Name",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "is_active",
            "schema": {
              "title": "Is Active",
              "type": [
                "boolean",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "is_required",
            "schema": {
              "title": "Is Required",
              "type": [
                "boolean",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "ordering",
            "schema": {
              "default": "-updated_at",
              "title": "Ordering",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "description": "Number of records to return per page (capped at 100)",
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to return per page (capped at 100)"
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Number of records to skip before starting to return results",
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to skip before starting to return results"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedPublicClassificationSchemaOut"
                }
              }
            }
          }
        },
        "description": "Retrieve a paginated list of classification dimensions, such as departments, locations, or projects.",
        "tags": [
          "Classifications"
        ],
        "x-mint": {
          "metadata": {
            "title": "List Classifications (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/classifications/list-classifications"
          }
        }
      },
      "post": {
        "operationId": "core_api_public_classifications_create_classification",
        "summary": "Create Classification",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicClassificationSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Create a classification dimension used to tag and analyze transactions across multiple dimensions.",
        "tags": [
          "Classifications"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicClassificationSchemaCreateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Create Classification (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/classifications/create-classification"
          }
        }
      }
    },
    "/public/v1/classifications/{classification_id}/": {
      "get": {
        "operationId": "core_api_public_classifications_get_classification",
        "summary": "Get Classification",
        "parameters": [
          {
            "in": "path",
            "name": "classification_id",
            "schema": {
              "title": "Classification Id",
              "type": "integer"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicClassificationSchemaOut"
                }
              }
            }
          }
        },
        "description": "Retrieve a single classification dimension by ID.",
        "tags": [
          "Classifications"
        ],
        "x-mint": {
          "metadata": {
            "title": "Get Classification (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/classifications/get-classification"
          }
        }
      },
      "put": {
        "operationId": "core_api_public_classifications_update_classification",
        "summary": "Update Classification",
        "parameters": [
          {
            "in": "path",
            "name": "classification_id",
            "schema": {
              "title": "Classification Id",
              "type": "integer"
            },
            "required": true
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicClassificationSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Update an existing classification dimension's name and settings.",
        "tags": [
          "Classifications"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicClassificationSchemaUpdateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Update Classification (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/classifications/update-classification"
          }
        }
      },
      "patch": {
        "operationId": "core_api_public_classifications_patch_classification",
        "summary": "Update classification (partial)",
        "parameters": [
          {
            "in": "path",
            "name": "classification_id",
            "schema": {
              "title": "Classification Id",
              "type": "integer"
            },
            "required": true
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicClassificationSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Update specific fields on a classification. Send only the fields you want to change \u2014 anything you don't send stays as it is. Use `null` on `parent_id` to remove a parent.\n\nExample \u2014 rename and deactivate a classification:\n\n```json\n{\"name\": \"Department (legacy)\", \"is_active\": false}\n```\n\n**Selections (classification lines)**\n\nOmitting `selections` preserves the existing lines. Sending the field applies it as-is: lines whose `id` you include are kept (and updated with whatever values you send), and lines whose `id` you omit are deleted. Sending `[]` removes every line. Adding a new line means sending it without an `id`:\n\n```json\n{\"selections\": [\n  {\"id\": 42, \"name\": \"Engineering\", \"is_active\": true, \"parent_id\": null},\n  {\"name\": \"Operations\", \"is_active\": true, \"parent_id\": null}\n]}\n```\n\n**Required-for-records**\n\nOmitting `required_for_records` preserves existing associations. Sending the field replaces the full set; sending `[]` removes them all:\n\n```json\n{\"required_for_records\": [\"invoice\", \"bill\"]}\n```\n\nLines that are in use elsewhere can't be deleted; you'll get a 422 back listing which ones.",
        "tags": [
          "Classifications"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicClassificationSchemaPatchIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "description": "Update specific fields on a classification.",
            "title": "Update classification (partial) (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/classifications/update-classification-partial"
          }
        }
      },
      "delete": {
        "operationId": "core_api_public_classifications_delete_classification",
        "summary": "Delete Classification",
        "parameters": [
          {
            "in": "path",
            "name": "classification_id",
            "schema": {
              "title": "Classification Id",
              "type": "integer"
            },
            "required": true
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessSchema"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Delete a classification dimension so it can no longer be assigned to transactions.",
        "tags": [
          "Classifications"
        ],
        "x-mint": {
          "metadata": {
            "title": "Delete Classification (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/classifications/delete-classification"
          }
        }
      }
    },
    "/public/v1/classifications-lines/": {
      "get": {
        "operationId": "core_api_public_classifications_list_classification_lines",
        "summary": "List Classification Lines",
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "id",
            "schema": {
              "title": "Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "name",
            "schema": {
              "title": "Name",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "is_active",
            "schema": {
              "title": "Is Active",
              "type": [
                "boolean",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "classification_id",
            "schema": {
              "title": "Classification Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "ordering",
            "schema": {
              "default": "-id",
              "title": "Ordering",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "description": "Number of records to return per page (capped at 100)",
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to return per page (capped at 100)"
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Number of records to skip before starting to return results",
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to skip before starting to return results"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedPublicClassificationLineSchemaOut"
                }
              }
            }
          }
        },
        "description": "Retrieve a paginated list of classification values that can be assigned to transaction line items.",
        "tags": [
          "Classifications Lines"
        ],
        "x-mint": {
          "metadata": {
            "title": "List Classification Lines (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/classifications-lines/list-classification-lines"
          }
        }
      }
    },
    "/public/v1/custom-fields/": {
      "get": {
        "operationId": "core_api_public_custom_fields_list_custom_fields",
        "summary": "List custom fields",
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "id",
            "schema": {
              "title": "Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "field_type",
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/FieldType"
                },
                {
                  "type": "null"
                }
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "is_active",
            "schema": {
              "title": "Is Active",
              "type": [
                "boolean",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "name",
            "schema": {
              "title": "Name",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_type",
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/AppliesToTypes"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filter to fields that apply to this record type (e.g. `customer`, `invoice`)."
            },
            "required": false,
            "description": "Filter to fields that apply to this record type (e.g. `customer`, `invoice`)."
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "description": "Include both org-level fields and fields scoped to this company id.",
              "title": "Company Id",
              "type": [
                "integer",
                "null"
              ]
            },
            "required": false,
            "description": "Include both org-level fields and fields scoped to this company id."
          },
          {
            "in": "query",
            "name": "is_required",
            "schema": {
              "description": "Filter on the `is_required` flag of the `applies_to` entry (needs `record_type`).",
              "title": "Is Required",
              "type": [
                "boolean",
                "null"
              ]
            },
            "required": false,
            "description": "Filter on the `is_required` flag of the `applies_to` entry (needs `record_type`)."
          },
          {
            "in": "query",
            "name": "is_active_record",
            "schema": {
              "description": "Filter on the `is_active` flag of the `applies_to` entry (needs `record_type`).",
              "title": "Is Active Record",
              "type": [
                "boolean",
                "null"
              ]
            },
            "required": false,
            "description": "Filter on the `is_active` flag of the `applies_to` entry (needs `record_type`)."
          },
          {
            "in": "query",
            "name": "ordering",
            "schema": {
              "default": "-updated_at",
              "title": "Ordering",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "description": "Number of records to return per page (capped at 100)",
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to return per page (capped at 100)"
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Number of records to skip before starting to return results",
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to skip before starting to return results"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedPublicCustomFieldSchemaOut"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a paginated list of custom field definitions with filtering and ordering options.",
        "tags": [
          "Custom Fields"
        ],
        "x-mint": {
          "metadata": {
            "title": "List custom fields (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/custom-fields/list-custom-fields"
          }
        }
      },
      "post": {
        "operationId": "core_api_public_custom_fields_create_custom_field",
        "summary": "Create custom field",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCustomFieldSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Create a new custom field definition. Supply `applies_to` to bind the field to record types, and `company_ids` (or `company_id`) to restrict it to specific companies.",
        "tags": [
          "Custom Fields"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicCustomFieldSchemaCreateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "description": "Create a new custom field definition.",
            "title": "Create custom field (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/custom-fields/create-custom-field"
          }
        }
      }
    },
    "/public/v1/custom-fields/{custom_field_id}/": {
      "get": {
        "operationId": "core_api_public_custom_fields_get_custom_field",
        "summary": "Get custom field",
        "parameters": [
          {
            "in": "path",
            "name": "custom_field_id",
            "schema": {
              "title": "Custom Field Id",
              "type": "integer"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCustomFieldSchemaOut"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a specific custom field definition by id.",
        "tags": [
          "Custom Fields"
        ],
        "x-mint": {
          "metadata": {
            "title": "Get custom field (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/custom-fields/get-custom-field"
          }
        }
      },
      "put": {
        "operationId": "core_api_public_custom_fields_update_custom_field",
        "summary": "Update custom field",
        "parameters": [
          {
            "in": "path",
            "name": "custom_field_id",
            "schema": {
              "title": "Custom Field Id",
              "type": "integer"
            },
            "required": true
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCustomFieldSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Update an existing custom field definition. `applies_to` and `company_ids` are replaced wholesale \u2014 send the full desired list. `field_type` cannot be changed after creation.",
        "tags": [
          "Custom Fields"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicCustomFieldSchemaUpdateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "description": "Update an existing custom field definition.",
            "title": "Update custom field (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/custom-fields/update-custom-field"
          }
        }
      },
      "delete": {
        "operationId": "core_api_public_custom_fields_delete_custom_field",
        "summary": "Delete custom field",
        "parameters": [
          {
            "in": "path",
            "name": "custom_field_id",
            "schema": {
              "title": "Custom Field Id",
              "type": "integer"
            },
            "required": true
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessSchema"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Delete a custom field definition. Fails with 422 if any record already has a value stored against this field \u2014 clear those values first, or archive the field via `is_active=false` instead.",
        "tags": [
          "Custom Fields"
        ],
        "x-mint": {
          "metadata": {
            "description": "Delete a custom field definition.",
            "title": "Delete custom field (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/custom-fields/delete-custom-field"
          }
        }
      }
    },
    "/public/v1/paper-checks/": {
      "get": {
        "operationId": "core_api_public_paper_checks_list_paper_checks",
        "summary": "List paper checks",
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "id",
            "schema": {
              "description": "Filter by paper check IDs",
              "title": "Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false,
            "description": "Filter by paper check IDs"
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "description": "Filter by status: 'not_printed', 'printed', or 'archived'",
              "title": "Record Status",
              "items": {
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false,
            "description": "Filter by status: 'not_printed', 'printed', or 'archived'"
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "description": "Filter by company IDs",
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false,
            "description": "Filter by company IDs"
          },
          {
            "in": "query",
            "name": "transaction_type",
            "schema": {
              "description": "Filter by transaction type: 'direct_expense', 'vendor_payment', 'vendor_prepayment', 'customer_refund'",
              "title": "Transaction Type",
              "items": {
                "$ref": "#/components/schemas/PaperCheckSourceRecordType"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false,
            "description": "Filter by transaction type: 'direct_expense', 'vendor_payment', 'vendor_prepayment', 'customer_refund'"
          },
          {
            "in": "query",
            "name": "vendor_id",
            "schema": {
              "description": "Filter by vendor IDs (for vendor-related checks)",
              "title": "Vendor Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false,
            "description": "Filter by vendor IDs (for vendor-related checks)"
          },
          {
            "in": "query",
            "name": "customer_id",
            "schema": {
              "description": "Filter by customer IDs (for customer refund checks)",
              "title": "Customer Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false,
            "description": "Filter by customer IDs (for customer refund checks)"
          },
          {
            "in": "query",
            "name": "account_id",
            "schema": {
              "description": "Filter by bank account IDs",
              "title": "Account Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false,
            "description": "Filter by bank account IDs"
          },
          {
            "in": "query",
            "name": "start_date",
            "schema": {
              "description": "Filter checks created on or after this date (YYYY-MM-DD)",
              "title": "Start Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false,
            "description": "Filter checks created on or after this date (YYYY-MM-DD)"
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "description": "Filter checks created on or before this date (YYYY-MM-DD)",
              "title": "End Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false,
            "description": "Filter checks created on or before this date (YYYY-MM-DD)"
          },
          {
            "in": "query",
            "name": "ordering",
            "schema": {
              "default": "-created_at",
              "title": "Ordering",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "description": "Number of records to return per page (capped at 100)",
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to return per page (capped at 100)"
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Number of records to skip before starting to return results",
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to skip before starting to return results"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedPublicPaperCheckSchemaOut"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "\nRetrieve a paginated list of paper checks with filtering options.\n\nPaper checks represent physical checks that can be printed for vendor payments,\ndirect expenses, vendor prepayments, or customer refunds.\n\n**Common use cases:**\n- List all queued checks ready to print: `?record_status=not_printed`\n- List checks for a specific vendor: `?vendor_id=123`\n- List checks within a date range: `?start_date=2024-01-01&end_date=2024-01-31`\n",
        "tags": [
          "Paper Checks"
        ],
        "x-mint": {
          "metadata": {
            "description": "Retrieve a paginated list of paper checks with filtering options.",
            "title": "List paper checks (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/paper-checks/list-paper-checks"
          }
        }
      }
    },
    "/public/v1/paper-checks/print-now/": {
      "post": {
        "operationId": "core_api_public_paper_checks_print_now",
        "summary": "Print check immediately",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicPaperCheckWithPDFContentSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "\nCreate and immediately print a paper check for a transaction.\n\nThis endpoint creates a paper check record and generates the PDF in a single operation.\nThe check is immediately marked as PRINTED.\n\n**When to use:**\n- When you need to print a single check right away\n- For on-demand check printing workflows\n\n**Alternative:** Use `POST /print-later/` to queue checks for batch printing.\n\n**Supported transaction types:**\n- Direct expenses\n- Vendor payments\n- Vendor prepayments\n- Customer refunds\n\n**Returns:** The created paper check details along with the PDF content encoded in base64.\n",
        "tags": [
          "Paper Checks"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicPrintNowPayload"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "description": "Create and immediately print a paper check for a transaction.",
            "title": "Print check immediately (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/paper-checks/print-check-immediately"
          }
        }
      }
    },
    "/public/v1/paper-checks/print-later/": {
      "post": {
        "operationId": "core_api_public_paper_checks_print_later",
        "summary": "Queue checks for later printing",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/PublicPaperCheckSchemaOut"
                  },
                  "title": "Response",
                  "type": "array"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "\nCreate paper checks for transactions that will be printed later in a batch.\n\nThis endpoint creates paper check records with status NOT_PRINTED. These checks\ncan then be printed together using the `PUT /print-batch/` endpoint.\n\n**When to use:**\n- When you want to accumulate checks before printing\n- For batch check printing workflows\n- When check numbers need to be assigned in sequence\n\n**Alternative:** Use `POST /print-now/` to print a single check immediately.\n\n**Workflow:**\n1. Queue checks: `POST /print-later/` with transaction IDs\n2. Review queued checks: `GET /paper-checks/?record_status=not_printed`\n3. Print batch: `PUT /print-batch/` with paper check IDs\n\n**Returns:** List of created paper checks with status 'not_printed'.\n",
        "tags": [
          "Paper Checks"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicPrintLaterPayload"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "description": "Create paper checks for transactions that will be printed later in a batch.",
            "title": "Queue checks for later printing (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/paper-checks/queue-checks-for-later-printing"
          }
        }
      }
    },
    "/public/v1/paper-checks/print-batch/": {
      "put": {
        "operationId": "core_api_public_paper_checks_print_batch",
        "summary": "Batch print paper checks",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicPaperCheckBatchPrintResponse"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "\nPrint multiple queued paper checks in a batch.\n\nThis endpoint prints all specified checks, assigns sequential check numbers,\nand returns a merged PDF containing all checks.\n\n**Prerequisites:**\n- All specified checks must have status 'not_printed'\n- Use `POST /print-later/` to queue checks first\n\n**Check number assignment:**\nCheck numbers are assigned sequentially starting from `first_check_number`.\nThe order of `paper_check_ids` in the request determines:\n1. The order of checks in the PDF\n2. The order of check number assignment\n\n**Example:**\nIf `first_check_number=1001` and you print 3 checks, they will be numbered 1001, 1002, 1003.\n\n**Returns:**\n- `pdf_content`: Base64-encoded PDF with all checks\n- `printed_checks`: List showing each check ID and its assigned check number\n- `total_printed`: Count of checks printed\n",
        "tags": [
          "Paper Checks"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicPrintBatchPayload"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "description": "Print multiple queued paper checks in a batch.",
            "title": "Batch print paper checks (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/paper-checks/batch-print-paper-checks"
          }
        }
      }
    },
    "/public/v1/paper-checks/{paper_check_id}/": {
      "get": {
        "operationId": "core_api_public_paper_checks_get_paper_check",
        "summary": "Get paper check",
        "parameters": [
          {
            "in": "path",
            "name": "paper_check_id",
            "schema": {
              "title": "Paper Check Id",
              "type": "integer"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicPaperCheckSchemaOut"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "\nRetrieve a specific paper check by ID.\n\nReturns the full details of a paper check including the associated transaction\ninformation, payee details, and current status.\n",
        "tags": [
          "Paper Checks"
        ],
        "x-mint": {
          "metadata": {
            "description": "Retrieve a specific paper check by ID.",
            "title": "Get paper check (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/paper-checks/get-paper-check"
          }
        }
      },
      "delete": {
        "operationId": "core_api_public_paper_checks_delete_paper_check",
        "summary": "Archive paper check",
        "parameters": [
          {
            "in": "path",
            "name": "paper_check_id",
            "schema": {
              "title": "Paper Check Id",
              "type": "integer"
            },
            "required": true
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicPaperCheckSchemaOut"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "\nArchive a paper check by setting its status to ARCHIVED.\n\nArchiving a paper check removes it from active workflows without deleting it.\nThis allows you to:\n- Remove a check from the print queue\n- Create a new check for the same transaction\n- Maintain audit history\n\n**Note:** Archived checks can still be retrieved via the list and get endpoints\nby filtering with `record_status=archived`.\n",
        "tags": [
          "Paper Checks"
        ],
        "x-mint": {
          "metadata": {
            "description": "Archive a paper check by setting its status to ARCHIVED.",
            "title": "Archive paper check (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/paper-checks/archive-paper-check"
          }
        }
      }
    },
    "/public/v1/workflows/": {
      "get": {
        "operationId": "core_api_public_workflows_list_workflows",
        "summary": "List workflows",
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "id",
            "schema": {
              "title": "Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "type": [
                "integer",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_type",
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/PublicRecordType"
                },
                {
                  "type": "null"
                }
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "is_active",
            "schema": {
              "title": "Is Active",
              "type": [
                "boolean",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "ordering",
            "schema": {
              "default": "-priority,-id",
              "title": "Ordering",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "description": "Number of records to return per page (capped at 100)",
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to return per page (capped at 100)"
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Number of records to skip before starting to return results",
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to skip before starting to return results"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedPublicWorkflowListSchemaOut"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a paginated list of approval workflows with filtering options by company, record type, and active status.",
        "tags": [
          "Approval Policies"
        ],
        "x-mint": {
          "metadata": {
            "title": "List workflows (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/approval-policies/list-workflows"
          }
        }
      }
    },
    "/public/v1/workflows/execution-states/": {
      "get": {
        "operationId": "core_api_public_workflows_list_execution_states",
        "summary": "List execution states",
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "workflow_id",
            "schema": {
              "title": "Workflow Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "status",
            "schema": {
              "title": "Status",
              "items": {
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_type",
            "schema": {
              "title": "Record Type",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "initiator_id",
            "schema": {
              "title": "Initiator Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "description": "Number of records to return per page (capped at 100)",
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to return per page (capped at 100)"
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Number of records to skip before starting to return results",
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to skip before starting to return results"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedPublicWorkflowExecutionStateSchemaOut"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a paginated list of workflow execution states (approval statuses for records).",
        "tags": [
          "Approval Policies"
        ],
        "x-mint": {
          "metadata": {
            "title": "List execution states (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/approval-policies/list-execution-states"
          }
        }
      }
    },
    "/public/v1/workflows/execution-states/{state_id}/": {
      "get": {
        "operationId": "core_api_public_workflows_get_execution_state",
        "summary": "Get execution state by ID",
        "parameters": [
          {
            "in": "path",
            "name": "state_id",
            "schema": {
              "title": "State Id",
              "type": "integer"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicWorkflowExecutionStateSchemaOut"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a single workflow execution state by its ID.",
        "tags": [
          "Approval Policies"
        ],
        "x-mint": {
          "metadata": {
            "title": "Get execution state by ID (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/approval-policies/get-execution-state-by-id"
          }
        }
      }
    },
    "/public/v1/workflows/execution-states/{state_id}/actions/": {
      "get": {
        "operationId": "core_api_public_workflows_get_execution_state_actions",
        "summary": "Get approval actions for execution state",
        "parameters": [
          {
            "in": "path",
            "name": "state_id",
            "schema": {
              "title": "State Id",
              "type": "integer"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/PublicApprovalActionSchemaOut"
                  },
                  "title": "Response",
                  "type": "array"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve all approval actions (history) for a specific workflow execution state.",
        "tags": [
          "Approval Policies"
        ],
        "x-mint": {
          "metadata": {
            "title": "Get approval actions for execution state (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/approval-policies/get-approval-actions-for-execution-state"
          }
        }
      }
    },
    "/public/v1/workflows/actions/": {
      "get": {
        "operationId": "core_api_public_workflows_list_approval_actions",
        "summary": "List approval actions",
        "parameters": [
          {
            "in": "query",
            "name": "workflow_execution_state_id",
            "schema": {
              "title": "Workflow Execution State Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_type",
            "schema": {
              "title": "Record Type",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_id",
            "schema": {
              "title": "Record Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "action_type",
            "schema": {
              "title": "Action Type",
              "items": {
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "approver_id",
            "schema": {
              "title": "Approver Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "start_date",
            "schema": {
              "title": "Start Date",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "title": "End Date",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "description": "Number of records to return per page (capped at 100)",
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to return per page (capped at 100)"
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Number of records to skip before starting to return results",
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to skip before starting to return results"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedPublicApprovalActionSchemaOut"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a paginated list of approval actions (history) with filtering options.",
        "tags": [
          "Approval Policies"
        ],
        "x-mint": {
          "metadata": {
            "title": "List approval actions (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/approval-policies/list-approval-actions"
          }
        }
      }
    },
    "/public/v1/workflows/roles/": {
      "get": {
        "operationId": "core_api_public_workflows_get_workflow_roles",
        "summary": "Get roles for workflow conditions",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/PublicRoleMetadataSchemaOut"
                  },
                  "title": "Response",
                  "type": "array"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Returns all active roles that can be used in workflow conditions.",
        "tags": [
          "Approval Policies"
        ],
        "x-mint": {
          "metadata": {
            "title": "Get roles for workflow conditions (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/approval-policies/get-roles-for-workflow-conditions"
          }
        }
      }
    },
    "/public/v1/workflows/{workflow_id}/": {
      "get": {
        "operationId": "core_api_public_workflows_get_workflow",
        "summary": "Get workflow by ID",
        "parameters": [
          {
            "in": "path",
            "name": "workflow_id",
            "schema": {
              "title": "Workflow Id",
              "type": "integer"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicWorkflowSchemaOut"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a single approval workflow by its ID, including all steps, conditions, and approvers.",
        "tags": [
          "Approval Policies"
        ],
        "x-mint": {
          "metadata": {
            "title": "Get workflow by ID (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/approval-policies/get-workflow-by-id"
          }
        }
      }
    },
    "/public/v1/workflows/{workflow_id}/versions/": {
      "get": {
        "operationId": "core_api_public_workflows_get_workflow_versions",
        "summary": "Get workflow version history",
        "parameters": [
          {
            "in": "path",
            "name": "workflow_id",
            "schema": {
              "title": "Workflow Id",
              "type": "integer"
            },
            "required": true
          },
          {
            "in": "query",
            "name": "include_snapshot",
            "schema": {
              "default": false,
              "title": "Include Snapshot",
              "type": "boolean"
            },
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/PublicWorkflowVersionSchemaOut"
                  },
                  "title": "Response",
                  "type": "array"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve version history for a workflow including changes, timestamps, and optionally full snapshots.",
        "tags": [
          "Approval Policies"
        ],
        "x-mint": {
          "metadata": {
            "title": "Get workflow version history (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/approval-policies/get-workflow-version-history"
          }
        }
      }
    },
    "/public/v1/inbox/": {
      "get": {
        "operationId": "core_api_public_inbox_inbox_summary",
        "summary": "Get inbox summary",
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicInboxSummarySchemaOut"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Get counts of pending approvals in the inbox for the entire organization.",
        "tags": [
          "Inbox"
        ],
        "x-mint": {
          "metadata": {
            "title": "Get inbox summary (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/inbox/get-inbox-summary"
          }
        }
      }
    },
    "/public/v1/inbox/transactions/": {
      "get": {
        "operationId": "core_api_public_inbox_transactions_inbox",
        "summary": "List transactions inbox",
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "transaction_type",
            "schema": {
              "title": "Transaction Type",
              "items": {
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "approval_status",
            "schema": {
              "title": "Approval Status",
              "items": {
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "start_date",
            "schema": {
              "title": "Start Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "title": "End Date",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "customer_id",
            "schema": {
              "title": "Customer Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_id",
            "schema": {
              "title": "Record Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "transaction_id",
            "schema": {
              "title": "Transaction Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "min_amount",
            "schema": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Min Amount"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "max_amount",
            "schema": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Max Amount"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "description": "Number of records to return per page (capped at 100)",
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to return per page (capped at 100)"
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Number of records to skip before starting to return results",
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to skip before starting to return results"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedPublicTransactionInboxSchemaOut"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve all transactions (invoices, bills, purchase orders, sales orders, journal entries) with workflow approval status for the organization.",
        "tags": [
          "Inbox"
        ],
        "x-mint": {
          "metadata": {
            "title": "List transactions inbox (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/inbox/list-transactions-inbox"
          }
        }
      }
    },
    "/public/v1/inbox/records/": {
      "get": {
        "operationId": "core_api_public_inbox_records_inbox",
        "summary": "List records inbox",
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_type",
            "schema": {
              "title": "Record Type",
              "items": {
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "approval_status",
            "schema": {
              "title": "Approval Status",
              "items": {
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_id",
            "schema": {
              "title": "Record Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "description": "Number of records to return per page (capped at 100)",
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to return per page (capped at 100)"
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Number of records to skip before starting to return results",
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to skip before starting to return results"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedPublicRecordInboxSchemaOut"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve all non-monetary records (customers, vendors) with workflow approval status for the organization.",
        "tags": [
          "Inbox"
        ],
        "x-mint": {
          "metadata": {
            "title": "List records inbox (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/inbox/list-records-inbox"
          }
        }
      }
    },
    "/public/v1/inbox/transactions/{record_id}/": {
      "get": {
        "operationId": "core_api_public_inbox_transaction_inbox_detail",
        "summary": "Get transaction inbox details",
        "parameters": [
          {
            "in": "path",
            "name": "record_id",
            "schema": {
              "title": "Record Id",
              "type": "integer"
            },
            "required": true
          },
          {
            "in": "query",
            "name": "transaction_type",
            "schema": {
              "title": "Transaction Type",
              "type": "string"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/PublicTransactionInboxSchemaOut"
                    },
                    {
                      "additionalProperties": true,
                      "type": "object"
                    }
                  ],
                  "title": "Response"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve approval details for a specific transaction. Returns empty dict if not in inbox.",
        "tags": [
          "Inbox"
        ],
        "x-mint": {
          "metadata": {
            "title": "Get transaction inbox details (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/inbox/get-transaction-inbox-details"
          }
        }
      }
    },
    "/public/v1/inbox/records/{record_id}/": {
      "get": {
        "operationId": "core_api_public_inbox_record_inbox_detail",
        "summary": "Get record inbox details",
        "parameters": [
          {
            "in": "path",
            "name": "record_id",
            "schema": {
              "title": "Record Id",
              "type": "integer"
            },
            "required": true
          },
          {
            "in": "query",
            "name": "record_type",
            "schema": {
              "title": "Record Type",
              "type": "string"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/PublicRecordInboxSchemaOut"
                    },
                    {
                      "additionalProperties": true,
                      "type": "object"
                    }
                  ],
                  "title": "Response"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve approval details for a specific non-monetary record. Returns empty dict if not in inbox.",
        "tags": [
          "Inbox"
        ],
        "x-mint": {
          "metadata": {
            "title": "Get record inbox details (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/inbox/get-record-inbox-details"
          }
        }
      }
    },
    "/public/v1/fixed-assets/": {
      "get": {
        "operationId": "core_api_public_fixed_asset_list_fixed_assets",
        "summary": "List fixed assets",
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "title": "Updated After",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "title": "Updated Before",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "company_id",
            "schema": {
              "title": "Company Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "number",
            "schema": {
              "title": "Number",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "status",
            "schema": {
              "title": "Status",
              "items": {
                "$ref": "#/components/schemas/FixedAssetStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "record_status",
            "schema": {
              "title": "Record Status",
              "items": {
                "$ref": "#/components/schemas/RecordStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "purchase_date_gte",
            "schema": {
              "title": "Purchase Date Gte",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "purchase_date_lte",
            "schema": {
              "title": "Purchase Date Lte",
              "format": "date",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "vendor_id",
            "schema": {
              "title": "Vendor Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "customer_id",
            "schema": {
              "title": "Customer Id",
              "items": {
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "ordering",
            "schema": {
              "default": "-updated_at",
              "title": "Ordering",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "description": "Number of records to return per page (capped at 100)",
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to return per page (capped at 100)"
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Number of records to skip before starting to return results",
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to skip before starting to return results"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedPublicFixedAssetSchemaOut"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a paginated list of fixed assets with their depreciation schedules.",
        "tags": [
          "Fixed Assets"
        ],
        "x-mint": {
          "metadata": {
            "title": "List fixed assets (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/fixed-assets/list-fixed-assets"
          }
        }
      },
      "post": {
        "operationId": "core_api_public_fixed_asset_create_fixed_asset",
        "summary": "Create fixed asset",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicFixedAssetSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Create a fixed asset with its depreciation schedule, account assignments, and details.",
        "tags": [
          "Fixed Assets"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicFixedAssetSchemaCreateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Create fixed asset (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/fixed-assets/create-fixed-asset"
          }
        }
      }
    },
    "/public/v1/fixed-assets/{record_number}/": {
      "get": {
        "operationId": "core_api_public_fixed_asset_get_fixed_asset",
        "summary": "Get fixed asset",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "title": "Record Number",
              "type": "integer"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicFixedAssetSchemaOut"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a single fixed asset by record number, including its depreciation schedule.",
        "tags": [
          "Fixed Assets"
        ],
        "x-mint": {
          "metadata": {
            "title": "Get fixed asset (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/fixed-assets/get-fixed-asset"
          }
        }
      },
      "put": {
        "operationId": "core_api_public_fixed_asset_update_fixed_asset",
        "summary": "Update fixed asset",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "title": "Record Number",
              "type": "integer"
            },
            "required": true
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicFixedAssetSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Fully update a fixed asset, including its depreciation schedule and account assignments.",
        "tags": [
          "Fixed Assets"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicFixedAssetSchemaUpdateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Update fixed asset (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/fixed-assets/update-fixed-asset"
          }
        }
      },
      "patch": {
        "operationId": "core_api_public_fixed_asset_patch_fixed_asset",
        "summary": "Patch fixed asset",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "title": "Record Number",
              "type": "integer"
            },
            "required": true
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicFixedAssetSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Partially update a fixed asset; send only the fields you want to change.",
        "tags": [
          "Fixed Assets"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicFixedAssetSchemaPatchIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Patch fixed asset (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/fixed-assets/partial-update-fixed-asset"
          }
        }
      },
      "delete": {
        "operationId": "core_api_public_fixed_asset_archive_fixed_asset",
        "summary": "Archive fixed asset",
        "parameters": [
          {
            "in": "path",
            "name": "record_number",
            "schema": {
              "title": "Record Number",
              "type": "integer"
            },
            "required": true
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessSchema"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Archive a fixed asset by setting its record status to archived. This also archives any posted depreciation transactions. Depreciation schedules, addresses, classifications, and attachments remain unchanged.",
        "tags": [
          "Fixed Assets"
        ],
        "x-mint": {
          "metadata": {
            "description": "Archive a fixed asset by setting its record status to archived.",
            "title": "Archive fixed asset (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/fixed-assets/archive-fixed-asset"
          }
        }
      }
    },
    "/public/v1/webhooks/": {
      "post": {
        "operationId": "core_outbound_webhooks_api_create_webhook",
        "summary": "Create webhook",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookCreateSchemaOut"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Register a webhook endpoint for events. The signing secret is returned once and never shown again.",
        "tags": [
          "Webhooks"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookSchemaCreateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Create webhook (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/webhooks/create-webhook"
          }
        }
      },
      "get": {
        "operationId": "core_outbound_webhooks_api_list_webhooks",
        "summary": "List webhooks",
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "schema": {
              "title": "Search",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "is_active",
            "schema": {
              "title": "Is Active",
              "type": [
                "boolean",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "ordering",
            "schema": {
              "default": "-created_at",
              "title": "Ordering",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "description": "Number of records to return per page (capped at 100)",
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to return per page (capped at 100)"
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Number of records to skip before starting to return results",
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to skip before starting to return results"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedWebhookSchemaOut"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a paginated list of registered webhooks.",
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "List webhooks (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/webhooks/list-webhooks"
          }
        }
      }
    },
    "/public/v1/webhooks/topics/": {
      "get": {
        "operationId": "core_outbound_webhooks_api_list_webhook_topics",
        "summary": "List webhook topics",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/WebhookTopicSchemaOut"
                  },
                  "title": "Response",
                  "type": "array"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "List all available topics a webhook can subscribe to.",
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "List webhook topics (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/webhooks/list-webhook-topics"
          }
        }
      }
    },
    "/public/v1/webhooks/{webhook_uuid}/": {
      "get": {
        "operationId": "core_outbound_webhooks_api_get_webhook",
        "summary": "Get webhook",
        "parameters": [
          {
            "in": "path",
            "name": "webhook_uuid",
            "schema": {
              "title": "Webhook Uuid",
              "type": "string"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookSchemaOut"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a specific webhook by UUID.",
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "Get webhook (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/webhooks/get-webhook"
          }
        }
      },
      "put": {
        "operationId": "core_outbound_webhooks_api_update_webhook",
        "summary": "Update webhook",
        "parameters": [
          {
            "in": "path",
            "name": "webhook_uuid",
            "schema": {
              "title": "Webhook Uuid",
              "type": "string"
            },
            "required": true
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookSchemaOut"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Update a webhook: change the URL, replace topics, or toggle active state.",
        "tags": [
          "Webhooks"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookSchemaUpdateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Update webhook (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/webhooks/update-webhook"
          }
        }
      },
      "patch": {
        "operationId": "core_outbound_webhooks_api_patch_webhook",
        "summary": "Patch webhook",
        "parameters": [
          {
            "in": "path",
            "name": "webhook_uuid",
            "schema": {
              "title": "Webhook Uuid",
              "type": "string"
            },
            "required": true
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookSchemaOut"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Partially update a webhook (URL, topics, active state).",
        "tags": [
          "Webhooks"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookSchemaUpdateIn"
              }
            }
          },
          "required": true
        },
        "x-mint": {
          "metadata": {
            "title": "Patch webhook (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/webhooks/patch-webhook"
          }
        }
      },
      "delete": {
        "operationId": "core_outbound_webhooks_api_delete_webhook",
        "summary": "Delete webhook",
        "parameters": [
          {
            "in": "path",
            "name": "webhook_uuid",
            "schema": {
              "title": "Webhook Uuid",
              "type": "string"
            },
            "required": true
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Delete a webhook by UUID.",
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "Delete webhook (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/webhooks/delete-webhook"
          }
        }
      }
    },
    "/public/v1/webhooks/{webhook_uuid}/deliveries/": {
      "get": {
        "operationId": "core_outbound_webhooks_api_list_webhook_deliveries",
        "summary": "List webhook deliveries",
        "parameters": [
          {
            "in": "path",
            "name": "webhook_uuid",
            "schema": {
              "title": "Webhook Uuid",
              "type": "string"
            },
            "required": true
          },
          {
            "in": "query",
            "name": "ordering",
            "schema": {
              "default": "-created_at",
              "title": "Ordering",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "description": "Number of records to return per page (capped at 100)",
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to return per page (capped at 100)"
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Number of records to skip before starting to return results",
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to skip before starting to return results"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedWebhookDeliverySchemaOut"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "List delivery attempts (events) for a specific webhook.",
        "tags": [
          "Webhooks"
        ],
        "x-mint": {
          "metadata": {
            "title": "List webhook deliveries (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/webhooks/list-webhook-deliveries"
          }
        }
      }
    },
    "/public/v1/export-jobs/": {
      "post": {
        "operationId": "core_api_public_exports_request_export",
        "summary": "Request a data export",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255
            },
            "description": "Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422."
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicExportJobRequestSchemaOut"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Requests a data refresh. Execution is orchestrated by DualEntry and starts when capacity allows \u2014 typically within minutes. There is no SLA on start time. Exports also run automatically on a schedule; this endpoint forces an off-cycle refresh. Poll `GET /export-jobs/{id}/` for completion.\n\nAlways returns `202 Accepted`. Calling it while an export is already running is safe: the in-flight job is returned with `deduplicated: true` and no second export is started.",
        "tags": [
          "Data Exports"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PublicExportJobSchemaIn"
                  }
                ]
              }
            }
          },
          "required": false
        },
        "x-mint": {
          "metadata": {
            "description": "Requests a data refresh.",
            "title": "Request a data export (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/data-exports/request-a-data-export"
          }
        }
      },
      "get": {
        "operationId": "core_api_public_exports_list_export_jobs",
        "summary": "List export jobs",
        "parameters": [
          {
            "in": "query",
            "name": "status",
            "schema": {
              "description": "Filter by public status.",
              "title": "Status",
              "items": {
                "$ref": "#/components/schemas/PublicExportJobStatus"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "required": false,
            "description": "Filter by public status."
          },
          {
            "in": "query",
            "name": "ordering",
            "schema": {
              "default": "-created_at",
              "title": "Ordering",
              "type": [
                "string",
                "null"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "description": "Number of records to return per page (capped at 100)",
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to return per page (capped at 100)"
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Number of records to skip before starting to return results",
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            },
            "required": false,
            "description": "Number of records to skip before starting to return results"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedPublicExportJobSchemaOut"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve a paginated list of export jobs for the organization, most recent first.",
        "tags": [
          "Data Exports"
        ],
        "x-mint": {
          "metadata": {
            "title": "List export jobs (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/data-exports/list-export-jobs"
          }
        }
      }
    },
    "/public/v1/export-jobs/{job_id}/": {
      "get": {
        "operationId": "core_api_public_exports_get_export_job",
        "summary": "Get export job",
        "parameters": [
          {
            "in": "path",
            "name": "job_id",
            "schema": {
              "title": "Job Id",
              "type": "integer"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicExportJobSchemaOut"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorSchema"
                }
              }
            }
          }
        },
        "description": "Retrieve the status of a single export job. Poll this after requesting an export.",
        "tags": [
          "Data Exports"
        ],
        "x-mint": {
          "metadata": {
            "title": "Get export job (v1)",
            "canonical": "https://docs.dualentry.com/developers/api/resources-v2/data-exports/get-export-job"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "DynamicInput": {
        "properties": {
          "ordering": {
            "default": "-created_at",
            "title": "Ordering",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "DynamicInput",
        "type": "object"
      },
      "Input": {
        "properties": {
          "limit": {
            "default": 100,
            "description": "Number of records to return per page (capped at 100)",
            "minimum": 1,
            "title": "Limit",
            "type": "integer"
          },
          "offset": {
            "default": 0,
            "description": "Number of records to skip before starting to return results",
            "minimum": 0,
            "title": "Offset",
            "type": "integer"
          }
        },
        "title": "Input",
        "type": "object"
      },
      "IntegrationSourceSlug": {
        "enum": [
          "bill_com",
          "ramp",
          "zoho",
          "fivetran",
          "stripe",
          "hubspot",
          "brex",
          "cubby",
          "avalara",
          "deel",
          "tax1099",
          "sitelink",
          "postgresql",
          "qlik",
          "power_bi",
          "snowflake",
          "avidxchange",
          "concur",
          "salesforce",
          "hmrc",
          "rippling",
          "monday",
          "quickbooks",
          "xero",
          "netsuite_suiteanalytics",
          "sage_intacct",
          "netsuite_rutter",
          "adp_totalsource",
          "justworks",
          "paychex_flex",
          "paycom",
          "gusto",
          "ukg_ready"
        ],
        "type": "string"
      },
      "PublicInvoiceListFilterSchema": {
        "properties": {
          "integration_sources": {
            "title": "Integration Sources",
            "items": {
              "$ref": "#/components/schemas/IntegrationSourceSlug"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "search": {
            "title": "Search",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "number": {
            "title": "Number",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "code": {
            "title": "Code",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "customer_id": {
            "title": "Customer Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "start_date": {
            "title": "Start Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "end_date": {
            "title": "End Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "due_date": {
            "title": "Due Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "due_date_until": {
            "title": "Due Date Until",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "transaction_currency": {
            "title": "Transaction Currency",
            "items": {
              "$ref": "#/components/schemas/SystemCurrencies"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "record_status": {
            "title": "Record Status",
            "items": {
              "$ref": "#/components/schemas/RecordStatus"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "approval_status": {
            "title": "Approval Status",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "approval_status_scope": {
            "title": "Approval Status Scope",
            "items": {
              "$ref": "#/components/schemas/RecordStatus"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "amount_gte": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Amount Gte"
          },
          "amount_lte": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Amount Lte"
          },
          "amount_due_gte": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Amount Due Gte"
          },
          "amount_due_lte": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Amount Due Lte"
          },
          "amount_due_updated_at_gte": {
            "description": "Return invoices whose amount_due_updated_at is greater than or equal to this timestamp.",
            "title": "Amount Due Updated At Gte",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "amount_due_updated_at_lte": {
            "description": "Return invoices whose amount_due_updated_at is less than or equal to this timestamp.",
            "title": "Amount Due Updated At Lte",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "updated_after": {
            "title": "Updated After",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "updated_before": {
            "title": "Updated Before",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "PublicInvoiceListFilterSchema",
        "type": "object"
      },
      "RecordStatus": {
        "enum": [
          "draft",
          "posted",
          "archived"
        ],
        "title": "RecordStatus",
        "type": "string"
      },
      "SystemCurrencies": {
        "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",
          "CLF",
          "CLP",
          "CNY",
          "COP",
          "CRC",
          "CUP",
          "CVE",
          "CZK",
          "DJF",
          "DKK",
          "DOP",
          "DZD",
          "EGP",
          "ERN",
          "ETB",
          "EUR",
          "FJD",
          "FKP",
          "GBP",
          "GEL",
          "GHS",
          "GIP",
          "GMD",
          "GNF",
          "GTQ",
          "GYD",
          "HKD",
          "HNL",
          "HTG",
          "HUF",
          "IDR",
          "ILS",
          "INR",
          "IQD",
          "IRR",
          "ISK",
          "JMD",
          "JOD",
          "JPY",
          "KES",
          "KGS",
          "KHR",
          "KMF",
          "KPW",
          "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",
          "SLL",
          "SOS",
          "SRD",
          "STN",
          "SVC",
          "SYP",
          "SZL",
          "THB",
          "TJS",
          "TMT",
          "TND",
          "TOP",
          "TRY",
          "TTD",
          "TWD",
          "TZS",
          "UAH",
          "UGX",
          "USD",
          "UYU",
          "UZS",
          "VES",
          "VND",
          "VUV",
          "WST",
          "XAF",
          "XAG",
          "XAU",
          "XCD",
          "XDR",
          "XOF",
          "XPD",
          "XPF",
          "XPT",
          "YER",
          "ZAR",
          "ZMW",
          "ZWL"
        ],
        "title": "SystemCurrencies",
        "type": "string"
      },
      "AddressSchemaOut": {
        "properties": {
          "name": {
            "title": "Name",
            "type": [
              "string",
              "null"
            ]
          },
          "street": {
            "title": "Street",
            "type": "string"
          },
          "second_line": {
            "title": "Second Line",
            "type": "string"
          },
          "city": {
            "title": "City",
            "type": "string"
          },
          "state": {
            "title": "State",
            "type": "string"
          },
          "postal_code": {
            "title": "Postal Code",
            "type": "string"
          },
          "country": {
            "title": "Country",
            "type": "string"
          }
        },
        "required": [
          "street",
          "second_line",
          "city",
          "state",
          "postal_code",
          "country"
        ],
        "title": "AddressSchemaOut",
        "type": "object"
      },
      "AppliesToItemSchema": {
        "description": "An entry in `applies_to` \u2014 binds a custom field to a record type with activation/required flags.",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/AppliesToTypes"
          },
          "is_active": {
            "default": true,
            "title": "Is Active",
            "type": "boolean"
          },
          "is_required": {
            "default": false,
            "title": "Is Required",
            "type": "boolean"
          }
        },
        "required": [
          "type"
        ],
        "title": "AppliesToItemSchema",
        "type": "object"
      },
      "AppliesToTypes": {
        "enum": [
          "invoice",
          "bill",
          "direct_expense",
          "journal_entry",
          "vendor_prepayment",
          "vendor_credit",
          "vendor_payment",
          "vendor_refund",
          "customer_payment",
          "customer_prepayment",
          "customer_refund",
          "customer_deposit",
          "currency_revaluation",
          "contract",
          "fixed_asset",
          "customer",
          "vendor",
          "company",
          "sales_order",
          "cash_sale",
          "customer_credit"
        ],
        "title": "AppliesToTypes",
        "type": "string"
      },
      "ApproverDictSchema": {
        "description": "Approver info from pre-serialized dict.",
        "properties": {
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "first_name": {
            "title": "First Name",
            "type": "string"
          },
          "last_name": {
            "title": "Last Name",
            "type": "string"
          },
          "email": {
            "title": "Email",
            "type": "string"
          },
          "full_name": {
            "title": "Full Name",
            "type": "string"
          },
          "avatar_url": {
            "title": "Avatar Url",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "first_name",
          "last_name",
          "email",
          "full_name"
        ],
        "title": "ApproverDictSchema",
        "type": "object"
      },
      "AuditActorSchemaOut": {
        "description": "Schema for audit actor information.",
        "properties": {
          "actor_type": {
            "title": "Actor Type",
            "type": [
              "string",
              "null"
            ]
          },
          "email": {
            "title": "Email",
            "type": [
              "string",
              "null"
            ]
          },
          "first_name": {
            "title": "First Name",
            "type": [
              "string",
              "null"
            ]
          },
          "last_name": {
            "title": "Last Name",
            "type": [
              "string",
              "null"
            ]
          },
          "timestamp": {
            "title": "Timestamp",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "AuditActorSchemaOut",
        "type": "object"
      },
      "CustomFieldSchemaOut": {
        "properties": {
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "company_id": {
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "company_ids": {
            "title": "Company Ids",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": [
              "string",
              "null"
            ]
          },
          "helper_text": {
            "title": "Helper Text",
            "type": [
              "string",
              "null"
            ]
          },
          "field_type": {
            "$ref": "#/components/schemas/FieldType"
          },
          "applies_to": {
            "items": {
              "$ref": "#/components/schemas/AppliesToItemSchema"
            },
            "title": "Applies To",
            "type": "array"
          },
          "default_value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Default Value"
          },
          "options": {
            "title": "Options",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "is_active": {
            "title": "Is Active",
            "type": [
              "boolean",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "name",
          "description",
          "helper_text",
          "field_type",
          "applies_to",
          "options",
          "is_active"
        ],
        "title": "CustomFieldSchemaOut",
        "type": "object"
      },
      "CustomFieldValuePairOutputSchema": {
        "properties": {
          "field": {
            "$ref": "#/components/schemas/CustomFieldSchemaOut"
          },
          "value": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CustomFieldValueSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "field"
        ],
        "title": "CustomFieldValuePairOutputSchema",
        "type": "object"
      },
      "CustomFieldValueSchemaOut": {
        "properties": {
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "custom_field_id": {
            "title": "Custom Field Id",
            "type": "integer"
          },
          "custom_field_name": {
            "title": "Custom Field Name",
            "type": "string"
          },
          "custom_field_type": {
            "title": "Custom Field Type",
            "type": "string"
          },
          "custom_field_value_id": {
            "title": "Custom Field Value Id",
            "type": "integer"
          },
          "value": {
            "title": "Value"
          },
          "created_at": {
            "title": "Created At",
            "type": "string"
          },
          "updated_at": {
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "id",
          "custom_field_id",
          "custom_field_name",
          "custom_field_type",
          "custom_field_value_id",
          "value",
          "created_at",
          "updated_at"
        ],
        "title": "CustomFieldValueSchemaOut",
        "type": "object"
      },
      "DiscountType": {
        "enum": [
          "PERCENTAGE",
          "FIXED"
        ],
        "title": "DiscountType",
        "type": "string"
      },
      "FieldType": {
        "enum": [
          "text",
          "number",
          "currency",
          "date",
          "boolean",
          "single_select",
          "multi_select",
          "link",
          "paragraph"
        ],
        "title": "FieldType",
        "type": "string"
      },
      "GstComponentType": {
        "enum": [
          "CGST",
          "SGST",
          "IGST",
          "CESS",
          "GST",
          "PST",
          "HST",
          "QST"
        ],
        "title": "GstComponentType",
        "type": "string"
      },
      "ItemTaxDataOut": {
        "properties": {
          "code": {
            "title": "Code",
            "type": "string"
          },
          "rate": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
            "title": "Rate",
            "type": "string"
          },
          "amount": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Amount",
            "type": "string"
          },
          "is_taxable": {
            "title": "Is Taxable",
            "type": [
              "boolean",
              "null"
            ]
          },
          "tax_exempt_amount": {
            "title": "Tax Exempt Amount",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "type": [
              "string",
              "null"
            ]
          },
          "vat_rate_id": {
            "title": "Vat Rate Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "gst_tax_rate_id": {
            "title": "Gst Tax Rate Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "tax_metadata": {
            "title": "Tax Metadata",
            "additionalProperties": true,
            "type": [
              "object",
              "null"
            ]
          },
          "tax_components": {
            "title": "Tax Components",
            "items": {
              "$ref": "#/components/schemas/TaxComponentSchema"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "amount_with_tax": {
            "title": "Amount With Tax",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "type": [
              "string",
              "null"
            ]
          },
          "rate_name": {
            "title": "Rate Name",
            "type": [
              "string",
              "null"
            ]
          },
          "rate_type": {
            "title": "Rate Type",
            "type": [
              "string",
              "null"
            ]
          },
          "tax_treatment": {
            "title": "Tax Treatment",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "code",
          "rate",
          "amount"
        ],
        "title": "ItemTaxDataOut",
        "type": "object"
      },
      "PagedPublicInvoiceSchemaOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicInvoiceSchemaOut"
            },
            "title": "Items",
            "type": "array"
          },
          "count": {
            "title": "Count",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "count"
        ],
        "title": "PagedPublicInvoiceSchemaOut",
        "type": "object"
      },
      "PaymentSchemaOut": {
        "description": "Schema for payment collection configuration output.",
        "properties": {
          "type": {
            "title": "Type",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "title": "Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "body": {
            "title": "Body",
            "type": [
              "string",
              "null"
            ]
          },
          "link": {
            "title": "Link",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "PaymentSchemaOut",
        "type": "object"
      },
      "PublicAttachmentSchemaOut": {
        "properties": {
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "file_name": {
            "title": "File Name",
            "type": "string"
          },
          "file_size": {
            "title": "File Size",
            "type": "integer"
          },
          "download_url": {
            "title": "Download Url",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "file_name",
          "file_size"
        ],
        "title": "PublicAttachmentSchemaOut",
        "type": "object"
      },
      "PublicInvoiceItemOut": {
        "properties": {
          "classifications": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/RecordClassificationsSchemaOut"
            },
            "title": "Classifications",
            "type": "array"
          },
          "item_type": {
            "title": "Item Type",
            "type": [
              "string",
              "null"
            ]
          },
          "hsn_sac_code": {
            "title": "Hsn Sac Code",
            "type": [
              "string",
              "null"
            ]
          },
          "discount_type": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DiscountType"
              },
              {
                "type": "null"
              }
            ]
          },
          "discount_value": {
            "title": "Discount Value",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
            "type": [
              "string",
              "null"
            ]
          },
          "discount_account_id": {
            "title": "Discount Account Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "record_level_discount_amount": {
            "title": "Record Level Discount Amount",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "type": [
              "string",
              "null"
            ]
          },
          "tax": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemTaxDataOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "item_id": {
            "title": "Item Id",
            "type": "integer"
          },
          "quantity": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
            "title": "Quantity",
            "type": "string"
          },
          "rate": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,10}0*$",
            "title": "Rate",
            "type": "string"
          },
          "position": {
            "title": "Position",
            "type": "integer"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "company_id": {
            "description": "Optional company for this line. When set to a different company than the record header company_id, DualEntry treats the line as a cross-company (intercompany) allocation and posts IC Due To/From and elimination entries. Omit or set equal to the header company_id for a normal single-company line.",
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "net_amount": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "readOnly": true,
            "title": "Net Amount",
            "type": "string"
          },
          "tax_amount": {
            "description": "Calculated tax amount",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "readOnly": true,
            "title": "Tax Amount",
            "type": "string"
          },
          "gross_amount": {
            "description": "Calculated total amount including tax",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "readOnly": true,
            "title": "Gross Amount",
            "type": "string"
          },
          "amount": {
            "description": "Calculated total amount including tax named amount for backward compatibility",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "readOnly": true,
            "title": "Amount",
            "type": "string"
          },
          "discount_amount": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "readOnly": true,
            "title": "Discount Amount",
            "type": "string"
          }
        },
        "required": [
          "id",
          "item_id",
          "quantity",
          "rate",
          "position",
          "memo",
          "net_amount",
          "tax_amount",
          "gross_amount",
          "amount",
          "discount_amount"
        ],
        "title": "PublicInvoiceItemOut",
        "type": "object"
      },
      "PublicInvoiceSchemaOut": {
        "properties": {
          "bill_to_address": {
            "deprecated": true,
            "description": "Deprecated: send the structured billing_address / shipping_address instead.",
            "title": "Bill To Address",
            "type": "string"
          },
          "ship_to_address": {
            "deprecated": true,
            "description": "Deprecated: send the structured billing_address / shipping_address instead.",
            "title": "Ship To Address",
            "type": "string"
          },
          "billing_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "shipping_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "custom_fields": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CustomFieldValuePairOutputSchema"
            },
            "title": "Custom Fields",
            "type": "array"
          },
          "customer_name": {
            "title": "Customer Name",
            "type": [
              "string",
              "null"
            ]
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicAttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "payment": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PaymentSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "term_id": {
            "title": "Term Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "term_name": {
            "title": "Term Name",
            "type": "string"
          },
          "transaction_ids": {
            "items": {
              "type": "integer"
            },
            "title": "Transaction Ids",
            "type": "array"
          },
          "bank_match_status": {
            "title": "Bank Match Status",
            "type": [
              "string",
              "null"
            ]
          },
          "reconciliation_status": {
            "title": "Reconciliation Status",
            "type": [
              "string",
              "null"
            ]
          },
          "created_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "updated_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "approval_status": {
            "title": "Approval Status",
            "type": [
              "string",
              "null"
            ]
          },
          "next_approvers": {
            "title": "Next Approvers",
            "items": {
              "$ref": "#/components/schemas/ApproverDictSchema"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "rejected_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RejectedBySchema"
              },
              {
                "type": "null"
              }
            ]
          },
          "internal_id": {
            "title": "Internal Id",
            "type": "integer"
          },
          "number": {
            "title": "Number",
            "type": "integer"
          },
          "code": {
            "title": "Code",
            "type": [
              "string",
              "null"
            ]
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicInvoiceItemOut"
            },
            "title": "Items",
            "type": "array"
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "company_name": {
            "title": "Company Name",
            "type": "string"
          },
          "company_currency": {
            "title": "Company Currency",
            "type": "string"
          },
          "customer_id": {
            "title": "Customer Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "exchange_rate": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
            "title": "Exchange Rate",
            "type": "string"
          },
          "amount": {
            "description": "Total amount of transaction",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Amount",
            "type": "string"
          },
          "amount_due": {
            "description": "Amount to be paid",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Amount Due",
            "type": "string"
          },
          "paid_total": {
            "description": "Amount that was already paid by Customer Repayment Applications or Customer Payments",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Paid Total",
            "type": "string"
          },
          "amount_due_updated_at": {
            "description": "Timestamp of the most recent change that could have affected `amount_due`. Moves whenever the invoice itself is edited, or whenever a posted Customer Payment or Customer Prepayment Application referencing this invoice is written. ",
            "format": "date-time",
            "title": "Amount Due Updated At",
            "type": "string"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "date": {
            "description": "Posting date (GL date) - the date when the transaction is recorded in the general ledger",
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "description": "Transaction date (inception date) - the date when the transaction actually occurred",
            "format": "date",
            "title": "Transaction Date",
            "type": "string"
          },
          "due_date": {
            "title": "Due Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "record_status": {
            "$ref": "#/components/schemas/RecordStatus"
          },
          "recurring_record_number": {
            "title": "Recurring Record Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "reference_number": {
            "title": "Reference Number",
            "type": "string"
          },
          "created_at": {
            "description": "Date and time the record was created",
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "updated_at": {
            "description": "Date and time the record was last updated",
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "bill_to_address",
          "ship_to_address",
          "term_id",
          "term_name",
          "transaction_ids",
          "internal_id",
          "number",
          "items",
          "company_id",
          "company_name",
          "company_currency",
          "customer_id",
          "currency_iso_4217_code",
          "exchange_rate",
          "amount",
          "amount_due",
          "paid_total",
          "amount_due_updated_at",
          "memo",
          "date",
          "transaction_date",
          "due_date",
          "record_status",
          "recurring_record_number",
          "reference_number",
          "created_at",
          "updated_at"
        ],
        "title": "PublicInvoiceSchemaOut",
        "type": "object"
      },
      "RecordClassificationsSchemaOut": {
        "properties": {
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "line_id": {
            "title": "Line Id",
            "type": "integer"
          },
          "line_name": {
            "title": "Line Name",
            "type": "string"
          },
          "parent_classification_id": {
            "title": "Parent Classification Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "parent_classification_line_id": {
            "title": "Parent Classification Line Id",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "name",
          "line_id",
          "line_name"
        ],
        "title": "RecordClassificationsSchemaOut",
        "type": "object"
      },
      "RejectedBySchema": {
        "description": "Schema for rejector information including rejection reason.",
        "properties": {
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "first_name": {
            "title": "First Name",
            "type": "string"
          },
          "last_name": {
            "title": "Last Name",
            "type": "string"
          },
          "email": {
            "title": "Email",
            "type": "string"
          },
          "full_name": {
            "title": "Full Name",
            "type": "string"
          },
          "rejection_reason": {
            "title": "Rejection Reason",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "first_name",
          "last_name",
          "email",
          "full_name",
          "rejection_reason"
        ],
        "title": "RejectedBySchema",
        "type": "object"
      },
      "SystemCountries": {
        "enum": [
          "AA",
          "AB",
          "AC",
          "AD",
          "AE",
          "AF",
          "AG",
          "AH",
          "AI",
          "AJ",
          "AK",
          "AL",
          "AM",
          "AN",
          "AO",
          "AP",
          "AQ",
          "AR",
          "AS",
          "AT",
          "AU",
          "AV",
          "AW",
          "AX",
          "AY",
          "AZ",
          "BA",
          "BB",
          "BC",
          "BD",
          "BE",
          "BF",
          "BG",
          "BH",
          "BI",
          "BJ",
          "BK",
          "BL",
          "BM",
          "BN",
          "BO",
          "BP",
          "BQ",
          "BR",
          "BS",
          "BT",
          "BU",
          "BV",
          "BW",
          "BX",
          "BY",
          "BZ",
          "CA",
          "CB",
          "CC",
          "CD",
          "CE",
          "CF",
          "CG",
          "CH",
          "CI",
          "CJ",
          "CK",
          "CL",
          "CM",
          "CN",
          "CO",
          "CP",
          "CQ",
          "CR",
          "CS",
          "CT",
          "CU",
          "CV",
          "CW",
          "CX",
          "CY",
          "CZ",
          "DA",
          "DB",
          "DC",
          "DD",
          "DE",
          "DF",
          "DG",
          "DH",
          "DI",
          "DJ",
          "DK",
          "DL",
          "DM",
          "DN",
          "DO",
          "DP",
          "DQ",
          "DR",
          "DS",
          "DT",
          "DU",
          "DV",
          "DW",
          "DX",
          "DY",
          "DZ",
          "EA",
          "EB",
          "EC",
          "ED",
          "EE",
          "EF",
          "EG",
          "EH",
          "EI",
          "EJ",
          "EK",
          "EL",
          "EM",
          "EN",
          "EO",
          "EP",
          "EQ",
          "ER",
          "ES",
          "ET",
          "EU",
          "EV",
          "EW",
          "EX",
          "EY",
          "EZ",
          "FA",
          "FB",
          "FC",
          "FD",
          "FE",
          "FF",
          "FG",
          "FH",
          "FI",
          "FJ",
          "FK",
          "FL",
          "FM",
          "FN",
          "FO",
          "FP",
          "FQ",
          "FR",
          "FS",
          "FT",
          "FU",
          "FV",
          "FW",
          "FX",
          "FY",
          "FZ",
          "GA",
          "GB",
          "GC",
          "GD",
          "GE",
          "GF",
          "GG",
          "GH",
          "GI",
          "GJ",
          "GK",
          "GL",
          "GM",
          "GN",
          "GO",
          "GP",
          "GQ",
          "GR",
          "GS",
          "GT",
          "GU",
          "GV",
          "GW",
          "GX",
          "GY",
          "GZ",
          "HA",
          "HB",
          "HC",
          "HD",
          "HE",
          "HF",
          "HG",
          "HH",
          "HI",
          "HJ",
          "HK",
          "HL",
          "HM",
          "HN",
          "HO",
          "HP",
          "HQ",
          "HR",
          "HS",
          "HT",
          "HU",
          "HV",
          "HW",
          "HX",
          "HY",
          "HZ",
          "IA",
          "IB",
          "IC",
          "ID",
          "IE",
          "IF",
          "IG",
          "IH",
          "II",
          "IJ",
          "IK",
          "IL",
          "IM",
          "IN",
          "IO",
          "IP",
          "IQ",
          "IR",
          "IS",
          "IT",
          "IU",
          "IV",
          "IW",
          "IX",
          "IY",
          "IZ",
          "JA",
          "JB",
          "JC",
          "JD",
          "JE",
          "JF",
          "JG",
          "JH",
          "JI",
          "JJ",
          "JK",
          "JL",
          "JM",
          "JN",
          "JO",
          "JP",
          "JQ",
          "JR",
          "JS",
          "JT",
          "JU",
          "JV",
          "JW",
          "JX",
          "JY",
          "JZ",
          "KA",
          "KB",
          "KC",
          "KD",
          "KE",
          "KF",
          "KG",
          "KH",
          "KI",
          "KJ",
          "KK",
          "KL",
          "KM",
          "KN",
          "KO",
          "KP",
          "KQ",
          "KR",
          "KS",
          "KT",
          "KU",
          "KV",
          "KW",
          "KX",
          "KY",
          "KZ",
          "LA",
          "LB",
          "LC",
          "LD",
          "LE",
          "LF",
          "LG",
          "LH",
          "LI",
          "LJ",
          "LK",
          "LL",
          "LM",
          "LN",
          "LO",
          "LP",
          "LQ",
          "LR",
          "LS",
          "LT",
          "LU",
          "LV",
          "LW",
          "LX",
          "LY",
          "LZ",
          "MA",
          "MB",
          "MC",
          "MD",
          "ME",
          "MF",
          "MG",
          "MH",
          "MI",
          "MJ",
          "MK",
          "ML",
          "MM",
          "MN",
          "MO",
          "MP",
          "MQ",
          "MR",
          "MS",
          "MT",
          "MU",
          "MV",
          "MW",
          "MX",
          "MY",
          "MZ",
          "NA",
          "NB",
          "NC",
          "ND",
          "NE",
          "NF",
          "NG",
          "NH",
          "NI",
          "NJ",
          "NK",
          "NL",
          "NM",
          "NN",
          "NO",
          "NP",
          "NQ",
          "NR",
          "NS",
          "NT",
          "NU",
          "NV",
          "NW",
          "NX",
          "NY",
          "NZ",
          "OA",
          "OB",
          "OC",
          "OD",
          "OE",
          "OF",
          "OG",
          "OH",
          "OI",
          "OJ",
          "OK",
          "OL",
          "OM",
          "ON",
          "OO",
          "OP",
          "OQ",
          "OR",
          "OS",
          "OT",
          "OU",
          "OV",
          "OW",
          "OX",
          "OY",
          "OZ",
          "PA",
          "PB",
          "PC",
          "PD",
          "PE",
          "PF",
          "PG",
          "PH",
          "PI",
          "PJ",
          "PK",
          "PL",
          "PM",
          "PN",
          "PO",
          "PP",
          "PQ",
          "PR",
          "PS",
          "PT",
          "PU",
          "PV",
          "PW",
          "PX",
          "PY",
          "PZ",
          "QA",
          "QB",
          "QC",
          "QD",
          "QE",
          "QF",
          "QG",
          "QH",
          "QI",
          "QJ",
          "QK",
          "QL",
          "QM",
          "QN",
          "QO",
          "QP",
          "QQ",
          "QR",
          "QS",
          "QT",
          "QU",
          "QV",
          "QW",
          "QX",
          "QY",
          "QZ",
          "RA",
          "RB",
          "RC",
          "RD",
          "RE",
          "RF",
          "RG",
          "RH",
          "RI",
          "RJ",
          "RK",
          "RL",
          "RM",
          "RN",
          "RO",
          "RP",
          "RQ",
          "RR",
          "RS",
          "RT",
          "RU",
          "RV",
          "RW",
          "RX",
          "RY",
          "RZ",
          "SA",
          "SB",
          "SC",
          "SD",
          "SE",
          "SF",
          "SG",
          "SH",
          "SI",
          "SJ",
          "SK",
          "SL",
          "SM",
          "SN",
          "SO",
          "SP",
          "SQ",
          "SR",
          "SS",
          "ST",
          "SU",
          "SV",
          "SW",
          "SX",
          "SY",
          "SZ",
          "TA",
          "TB",
          "TC",
          "TD",
          "TE",
          "TF",
          "TG",
          "TH",
          "TI",
          "TJ",
          "TK",
          "TL",
          "TM",
          "TN",
          "TO",
          "TP",
          "TQ",
          "TR",
          "TS",
          "TT",
          "TU",
          "TV",
          "TW",
          "TX",
          "TY",
          "TZ",
          "UA",
          "UB",
          "UC",
          "UD",
          "UE",
          "UF",
          "UG",
          "UH",
          "UI",
          "UJ",
          "UK",
          "UL",
          "UM",
          "UN",
          "UO",
          "UP",
          "UQ",
          "UR",
          "US",
          "UT",
          "UU",
          "UV",
          "UW",
          "UX",
          "UY",
          "UZ",
          "VA",
          "VB",
          "VC",
          "VD",
          "VE",
          "VF",
          "VG",
          "VH",
          "VI",
          "VJ",
          "VK",
          "VL",
          "VM",
          "VN",
          "VO",
          "VP",
          "VQ",
          "VR",
          "VS",
          "VT",
          "VU",
          "VV",
          "VW",
          "VX",
          "VY",
          "VZ",
          "WA",
          "WB",
          "WC",
          "WD",
          "WE",
          "WF",
          "WG",
          "WH",
          "WI",
          "WJ",
          "WK",
          "WL",
          "WM",
          "WN",
          "WO",
          "WP",
          "WQ",
          "WR",
          "WS",
          "WT",
          "WU",
          "WV",
          "WW",
          "WX",
          "WY",
          "WZ",
          "XA",
          "XB",
          "XC",
          "XD",
          "XE",
          "XF",
          "XG",
          "XH",
          "XI",
          "XJ",
          "XK",
          "XL",
          "XM",
          "XN",
          "XO",
          "XP",
          "XQ",
          "XR",
          "XS",
          "XT",
          "XU",
          "XV",
          "XW",
          "XX",
          "XY",
          "XZ",
          "YA",
          "YB",
          "YC",
          "YD",
          "YE",
          "YF",
          "YG",
          "YH",
          "YI",
          "YJ",
          "YK",
          "YL",
          "YM",
          "YN",
          "YO",
          "YP",
          "YQ",
          "YR",
          "YS",
          "YT",
          "YU",
          "YV",
          "YW",
          "YX",
          "YY",
          "YZ",
          "ZA",
          "ZB",
          "ZC",
          "ZD",
          "ZE",
          "ZF",
          "ZG",
          "ZH",
          "ZI",
          "ZJ",
          "ZK",
          "ZL",
          "ZM",
          "ZN",
          "ZO",
          "ZP",
          "ZQ",
          "ZR",
          "ZS",
          "ZT",
          "ZU",
          "ZV",
          "ZW",
          "ZX",
          "ZY",
          "ZZ"
        ],
        "title": "SystemCountries",
        "type": "string"
      },
      "TaxComponentSchema": {
        "description": "Per-component consumption tax breakdown stored on line items.",
        "properties": {
          "component_type": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/GstComponentType"
              },
              {
                "$ref": "#/components/schemas/TaxFamily"
              }
            ],
            "title": "Component Type"
          },
          "rate": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
            "title": "Rate",
            "type": "string"
          },
          "amount": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Amount",
            "type": "string"
          },
          "region": {
            "title": "Region",
            "type": [
              "string",
              "null"
            ]
          },
          "position": {
            "title": "Position",
            "type": "integer"
          }
        },
        "required": [
          "component_type",
          "rate",
          "amount",
          "position"
        ],
        "title": "TaxComponentSchema",
        "type": "object"
      },
      "TaxFamily": {
        "description": "Broad classification of a tax rate within the GST module.\n\n`GST` covers the single-stage value-added-style regimes (AU, NZ, SG, IN, CA).\n`SST` covers Malaysia's Sales and Service Tax \u2014 a non-creditable single-stage\nregime that replaced Malaysia's GST in 2018. SST actually has two sub-regimes\n(Sales Tax on goods, Service Tax on services) but they share registration\nformat (ANN-YYMM-NNNNNNNN, self-identifying by prefix), calculation rules, and\nadministration \u2014 so we don't split them at the family level. The rate's\n``name`` (\"Sales Tax 10%\", \"Service Tax 8%\") carries that human distinction.",
        "enum": [
          "GST",
          "SST"
        ],
        "title": "TaxFamily",
        "type": "string"
      },
      "ErrorSchema": {
        "properties": {
          "success": {
            "const": false,
            "default": false,
            "title": "Success",
            "type": "boolean"
          },
          "errors": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "title": "Errors",
            "type": "object"
          }
        },
        "required": [
          "errors"
        ],
        "title": "ErrorSchema",
        "type": "object"
      },
      "AddressSchemaIn": {
        "properties": {
          "street": {
            "title": "Street",
            "type": "string"
          },
          "city": {
            "title": "City",
            "type": "string"
          },
          "state": {
            "default": "",
            "title": "State",
            "type": "string"
          },
          "postal_code": {
            "title": "Postal Code",
            "type": "string"
          },
          "country": {
            "anyOf": [
              {
                "const": "",
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/SystemCountries"
              }
            ],
            "default": "",
            "title": "Country"
          },
          "second_line": {
            "default": "",
            "title": "Second Line",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "street",
          "city",
          "postal_code"
        ],
        "title": "AddressSchemaIn",
        "type": "object"
      },
      "AttachmentSchemaOut": {
        "properties": {
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "file_name": {
            "title": "File Name",
            "type": "string"
          },
          "file_size": {
            "title": "File Size",
            "type": "integer"
          },
          "download_url": {
            "title": "Download Url",
            "type": [
              "string",
              "null"
            ]
          },
          "upload_url": {
            "title": "Upload Url",
            "type": [
              "string",
              "null"
            ]
          },
          "category": {
            "default": "default",
            "title": "Category",
            "type": "string"
          }
        },
        "required": [
          "id",
          "file_name",
          "file_size"
        ],
        "title": "AttachmentSchemaOut",
        "type": "object"
      },
      "ItemTaxData": {
        "properties": {
          "code": {
            "title": "Code",
            "type": "string"
          },
          "rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
                "type": "string"
              }
            ],
            "title": "Rate"
          },
          "amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              }
            ],
            "title": "Amount"
          },
          "is_taxable": {
            "title": "Is Taxable",
            "type": [
              "boolean",
              "null"
            ]
          },
          "tax_exempt_amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tax Exempt Amount"
          },
          "vat_rate_id": {
            "title": "Vat Rate Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "gst_tax_rate_id": {
            "title": "Gst Tax Rate Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "tax_metadata": {
            "title": "Tax Metadata",
            "additionalProperties": true,
            "type": [
              "object",
              "null"
            ]
          }
        },
        "required": [
          "code",
          "rate",
          "amount"
        ],
        "title": "ItemTaxData",
        "type": "object"
      },
      "PaymentSchemaIn": {
        "description": "Schema for payment collection configuration input (matches frontend structure).",
        "properties": {
          "type": {
            "title": "Type",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "title": "Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "body": {
            "title": "Body",
            "type": [
              "string",
              "null"
            ]
          },
          "link": {
            "title": "Link",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "PaymentSchemaIn",
        "type": "object"
      },
      "PublicInvoiceItemIn": {
        "properties": {
          "discount_type": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DiscountType"
              },
              {
                "type": "null"
              }
            ]
          },
          "discount_value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Discount Value"
          },
          "discount_account_id": {
            "title": "Discount Account Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "record_level_discount_amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Record Level Discount Amount"
          },
          "tax": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemTaxData"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "title": "Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "item_id": {
            "title": "Item Id",
            "type": "integer"
          },
          "quantity": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
                "type": "string"
              }
            ],
            "title": "Quantity"
          },
          "rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,10}0*$",
                "type": "string"
              }
            ],
            "title": "Rate"
          },
          "position": {
            "title": "Position",
            "type": "integer"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "classifications": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/RecordClassificationsSchemaOut"
            },
            "title": "Classifications",
            "type": "array"
          },
          "company_id": {
            "description": "Optional company for this line. When set to a different company than the record header company_id, DualEntry treats the line as a cross-company (intercompany) allocation and posts IC Due To/From and elimination entries. Omit or set equal to the header company_id for a normal single-company line.",
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "item_id",
          "quantity",
          "rate",
          "position",
          "memo"
        ],
        "title": "PublicInvoiceItemIn",
        "type": "object"
      },
      "PublicInvoiceSchemaCreateIn": {
        "properties": {
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "title": "Transaction Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "bill_to_address": {
            "default": "",
            "deprecated": true,
            "description": "Deprecated: send the structured billing_address / shipping_address instead.",
            "title": "Bill To Address",
            "type": [
              "string",
              "null"
            ]
          },
          "ship_to_address": {
            "default": "",
            "deprecated": true,
            "description": "Deprecated: send the structured billing_address / shipping_address instead.",
            "title": "Ship To Address",
            "type": [
              "string",
              "null"
            ]
          },
          "billing_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "shipping_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "discount_type": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DiscountType"
              },
              {
                "type": "null"
              }
            ]
          },
          "discount_value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Discount Value"
          },
          "memo": {
            "title": "Memo",
            "type": [
              "string",
              "null"
            ]
          },
          "due_date": {
            "title": "Due Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "customer_id": {
            "title": "Customer Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "currency_iso_4217_code": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "type": "null"
              }
            ]
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "If omitted or null, calculated from the company base currency, invoice currency, and date.",
            "title": "Exchange Rate"
          },
          "items": {
            "title": "Items",
            "items": {
              "$ref": "#/components/schemas/PublicInvoiceItemIn"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "sales_order_id": {
            "title": "Sales Order Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "contracted": {
            "default": false,
            "title": "Contracted",
            "type": "boolean"
          },
          "contract_id": {
            "title": "Contract Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "term_id": {
            "title": "Term Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "reference_number": {
            "default": "",
            "title": "Reference Number",
            "type": "string"
          },
          "ar_account_id": {
            "title": "Ar Account Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "payment": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PaymentSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "date"
        ],
        "title": "PublicInvoiceSchemaCreateIn",
        "type": "object"
      },
      "PublicInvoiceSchemaUpdateIn": {
        "properties": {
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "title": "Transaction Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "bill_to_address": {
            "default": "",
            "deprecated": true,
            "description": "Deprecated: send the structured billing_address / shipping_address instead.",
            "title": "Bill To Address",
            "type": [
              "string",
              "null"
            ]
          },
          "ship_to_address": {
            "default": "",
            "deprecated": true,
            "description": "Deprecated: send the structured billing_address / shipping_address instead.",
            "title": "Ship To Address",
            "type": [
              "string",
              "null"
            ]
          },
          "billing_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "shipping_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "discount_type": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DiscountType"
              },
              {
                "type": "null"
              }
            ]
          },
          "discount_value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Discount Value"
          },
          "memo": {
            "title": "Memo",
            "type": [
              "string",
              "null"
            ]
          },
          "due_date": {
            "title": "Due Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "customer_id": {
            "title": "Customer Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "currency_iso_4217_code": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "type": "null"
              }
            ]
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "If omitted or null, calculated from the company base currency, invoice currency, and date.",
            "title": "Exchange Rate"
          },
          "items": {
            "title": "Items",
            "items": {
              "$ref": "#/components/schemas/PublicInvoiceItemIn"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "sales_order_id": {
            "title": "Sales Order Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "contracted": {
            "default": false,
            "title": "Contracted",
            "type": "boolean"
          },
          "contract_id": {
            "title": "Contract Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "term_id": {
            "title": "Term Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "reference_number": {
            "default": "",
            "title": "Reference Number",
            "type": "string"
          },
          "ar_account_id": {
            "title": "Ar Account Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "payment": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PaymentSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "date"
        ],
        "title": "PublicInvoiceSchemaUpdateIn",
        "type": "object"
      },
      "PublicInvoiceSchemaPatchIn": {
        "description": "Partial update payload for PATCH /public/invoices/{number}/.\n\nEvery field is optional: send only the fields you want to change.\nUnset fields are left untouched on the existing record.\n\nUpdates allowed under the same constraints as PUT: period locks,\npayment-applied restrictions, and approval-workflow rules apply.",
        "properties": {
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "memo": {
            "title": "Memo",
            "type": [
              "string",
              "null"
            ]
          },
          "due_date": {
            "title": "Due Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "customer_id": {
            "title": "Customer Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "currency_iso_4217_code": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "type": "null"
              }
            ]
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Exchange Rate"
          },
          "items": {
            "title": "Items",
            "items": {
              "$ref": "#/components/schemas/PublicInvoiceItemIn"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "bill_to_address": {
            "deprecated": true,
            "description": "Deprecated: send the structured billing_address / shipping_address instead.",
            "title": "Bill To Address",
            "type": [
              "string",
              "null"
            ]
          },
          "billing_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "ship_to_address": {
            "deprecated": true,
            "description": "Deprecated: send the structured billing_address / shipping_address instead.",
            "title": "Ship To Address",
            "type": [
              "string",
              "null"
            ]
          },
          "shipping_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "sales_order_id": {
            "title": "Sales Order Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "record_status": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              },
              {
                "type": "null"
              }
            ]
          },
          "attachments": {
            "title": "Attachments",
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "contracted": {
            "default": false,
            "title": "Contracted",
            "type": "boolean"
          },
          "contract_id": {
            "title": "Contract Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "term_id": {
            "title": "Term Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "reference_number": {
            "default": "",
            "title": "Reference Number",
            "type": "string"
          },
          "ar_account_id": {
            "title": "Ar Account Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "payment": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PaymentSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "date": {
            "title": "Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "transaction_date": {
            "title": "Transaction Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "discount_type": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DiscountType"
              },
              {
                "type": "null"
              }
            ]
          },
          "discount_value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Discount Value"
          }
        },
        "title": "PublicInvoiceSchemaPatchIn",
        "type": "object"
      },
      "PublicSalesOrderListFilterSchema": {
        "properties": {
          "search": {
            "title": "Search",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "number": {
            "title": "Number",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "customer_id": {
            "title": "Customer Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "start_date": {
            "title": "Start Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "end_date": {
            "title": "End Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "record_status": {
            "title": "Record Status",
            "items": {
              "$ref": "#/components/schemas/RecordStatus"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "invoiced_status": {
            "title": "Invoiced Status",
            "items": {
              "$ref": "#/components/schemas/SalesOrderInvoicedStatus"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "approval_status": {
            "title": "Approval Status",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "approval_status_scope": {
            "title": "Approval Status Scope",
            "items": {
              "$ref": "#/components/schemas/RecordStatus"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "updated_after": {
            "title": "Updated After",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "updated_before": {
            "title": "Updated Before",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "PublicSalesOrderListFilterSchema",
        "type": "object"
      },
      "SalesOrderInvoicedStatus": {
        "enum": [
          "invoiced",
          "uninvoiced",
          "partially_invoiced"
        ],
        "title": "SalesOrderInvoicedStatus",
        "type": "string"
      },
      "PagedPublicSalesOrderSchemaOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicSalesOrderSchemaOut"
            },
            "title": "Items",
            "type": "array"
          },
          "count": {
            "title": "Count",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "count"
        ],
        "title": "PagedPublicSalesOrderSchemaOut",
        "type": "object"
      },
      "PublicSalesOrderItemOut": {
        "properties": {
          "classifications": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/RecordClassificationsSchemaOut"
            },
            "title": "Classifications",
            "type": "array"
          },
          "item_type": {
            "title": "Item Type",
            "type": [
              "string",
              "null"
            ]
          },
          "hsn_sac_code": {
            "title": "Hsn Sac Code",
            "type": [
              "string",
              "null"
            ]
          },
          "tax": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemTaxDataOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "item_id": {
            "title": "Item Id",
            "type": "integer"
          },
          "quantity": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
            "title": "Quantity",
            "type": "string"
          },
          "rate": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
            "title": "Rate",
            "type": "string"
          },
          "position": {
            "title": "Position",
            "type": "integer"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "quantity_invoiced": {
            "description": "Quantity of items that already have corresponding Invoice",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
            "title": "Quantity Invoiced",
            "type": "string"
          },
          "quantity_due": {
            "description": "Quantity of items yet to be invoiced",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
            "title": "Quantity Due",
            "type": "string"
          },
          "net_amount": {
            "description": "Net amount before tax",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "readOnly": true,
            "title": "Net Amount",
            "type": "string"
          },
          "tax_amount": {
            "description": "Calculated tax amount",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "readOnly": true,
            "title": "Tax Amount",
            "type": "string"
          },
          "gross_amount": {
            "description": "Calculated total amount including tax",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "readOnly": true,
            "title": "Gross Amount",
            "type": "string"
          },
          "amount": {
            "description": "Calculated total amount including tax named amount for backward compatibility",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "readOnly": true,
            "title": "Amount",
            "type": "string"
          }
        },
        "required": [
          "id",
          "item_id",
          "quantity",
          "rate",
          "position",
          "memo",
          "quantity_invoiced",
          "quantity_due",
          "net_amount",
          "tax_amount",
          "gross_amount",
          "amount"
        ],
        "title": "PublicSalesOrderItemOut",
        "type": "object"
      },
      "PublicSalesOrderSchemaOut": {
        "properties": {
          "bill_to_address": {
            "deprecated": true,
            "description": "Deprecated: send the structured billing_address / shipping_address instead.",
            "title": "Bill To Address",
            "type": "string"
          },
          "ship_to_address": {
            "deprecated": true,
            "description": "Deprecated: send the structured billing_address / shipping_address instead.",
            "title": "Ship To Address",
            "type": "string"
          },
          "billing_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "shipping_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "custom_fields": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CustomFieldValuePairOutputSchema"
            },
            "title": "Custom Fields",
            "type": "array"
          },
          "invoiced_status": {
            "$ref": "#/components/schemas/SalesOrderInvoicedStatus"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicAttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "term_id": {
            "title": "Term Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "term_name": {
            "title": "Term Name",
            "type": "string"
          },
          "created_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "updated_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "approval_status": {
            "title": "Approval Status",
            "type": [
              "string",
              "null"
            ]
          },
          "next_approvers": {
            "title": "Next Approvers",
            "items": {
              "$ref": "#/components/schemas/ApproverDictSchema"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "rejected_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RejectedBySchema"
              },
              {
                "type": "null"
              }
            ]
          },
          "internal_id": {
            "title": "Internal Id",
            "type": "integer"
          },
          "number": {
            "title": "Number",
            "type": "integer"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicSalesOrderItemOut"
            },
            "title": "Items",
            "type": "array"
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "company_name": {
            "title": "Company Name",
            "type": "string"
          },
          "company_currency": {
            "title": "Company Currency",
            "type": "string"
          },
          "customer_id": {
            "title": "Customer Id",
            "type": "integer"
          },
          "customer_name": {
            "title": "Customer Name",
            "type": "string"
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "exchange_rate": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
            "title": "Exchange Rate",
            "type": "string"
          },
          "amount": {
            "description": "Total amount of ordered items",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Amount",
            "type": "string"
          },
          "invoiced_total": {
            "description": "Total quantity of items that were already invoiced",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Invoiced Total",
            "type": "string"
          },
          "due_total": {
            "description": "Total quantity of items yet to be invoiced",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Due Total",
            "type": "string"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "record_status": {
            "$ref": "#/components/schemas/RecordStatus"
          },
          "recurring_record_number": {
            "title": "Recurring Record Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "reference_number": {
            "title": "Reference Number",
            "type": "string"
          },
          "created_at": {
            "description": "Date and time the record was created",
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "updated_at": {
            "description": "Date and time the record was last updated",
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "bill_to_address",
          "ship_to_address",
          "invoiced_status",
          "term_id",
          "term_name",
          "internal_id",
          "number",
          "items",
          "company_id",
          "company_name",
          "company_currency",
          "customer_id",
          "customer_name",
          "currency_iso_4217_code",
          "exchange_rate",
          "amount",
          "invoiced_total",
          "due_total",
          "memo",
          "date",
          "record_status",
          "reference_number",
          "created_at",
          "updated_at"
        ],
        "title": "PublicSalesOrderSchemaOut",
        "type": "object"
      },
      "PublicSalesOrderItemIn": {
        "properties": {
          "tax": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemTaxData"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "title": "Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "item_id": {
            "title": "Item Id",
            "type": "integer"
          },
          "quantity": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
                "type": "string"
              }
            ],
            "title": "Quantity"
          },
          "rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
                "type": "string"
              }
            ],
            "title": "Rate"
          },
          "position": {
            "title": "Position",
            "type": "integer"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "classifications": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/RecordClassificationsSchemaOut"
            },
            "title": "Classifications",
            "type": "array"
          }
        },
        "required": [
          "item_id",
          "quantity",
          "rate",
          "position",
          "memo"
        ],
        "title": "PublicSalesOrderItemIn",
        "type": "object"
      },
      "PublicSalesOrderSchemaCreateIn": {
        "properties": {
          "bill_to_address": {
            "default": "",
            "deprecated": true,
            "description": "Deprecated: send the structured billing_address / shipping_address instead.",
            "title": "Bill To Address",
            "type": [
              "string",
              "null"
            ]
          },
          "ship_to_address": {
            "default": "",
            "deprecated": true,
            "description": "Deprecated: send the structured billing_address / shipping_address instead.",
            "title": "Ship To Address",
            "type": [
              "string",
              "null"
            ]
          },
          "billing_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "shipping_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "customer_id": {
            "title": "Customer Id",
            "type": "integer"
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              }
            ],
            "title": "Exchange Rate"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicSalesOrderItemIn"
            },
            "title": "Items",
            "type": "array"
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "term_id": {
            "title": "Term Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "reference_number": {
            "default": "",
            "title": "Reference Number",
            "type": "string"
          }
        },
        "required": [
          "memo",
          "date",
          "company_id",
          "customer_id",
          "currency_iso_4217_code",
          "exchange_rate",
          "items"
        ],
        "title": "PublicSalesOrderSchemaCreateIn",
        "type": "object"
      },
      "PublicSalesOrderSchemaUpdateIn": {
        "properties": {
          "bill_to_address": {
            "default": "",
            "deprecated": true,
            "description": "Deprecated: send the structured billing_address / shipping_address instead.",
            "title": "Bill To Address",
            "type": [
              "string",
              "null"
            ]
          },
          "ship_to_address": {
            "default": "",
            "deprecated": true,
            "description": "Deprecated: send the structured billing_address / shipping_address instead.",
            "title": "Ship To Address",
            "type": [
              "string",
              "null"
            ]
          },
          "billing_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "shipping_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "customer_id": {
            "title": "Customer Id",
            "type": "integer"
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              }
            ],
            "title": "Exchange Rate"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicSalesOrderItemIn"
            },
            "title": "Items",
            "type": "array"
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "term_id": {
            "title": "Term Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "reference_number": {
            "default": "",
            "title": "Reference Number",
            "type": "string"
          }
        },
        "required": [
          "memo",
          "date",
          "company_id",
          "customer_id",
          "currency_iso_4217_code",
          "exchange_rate",
          "items"
        ],
        "title": "PublicSalesOrderSchemaUpdateIn",
        "type": "object"
      },
      "PublicBillListFilterSchema": {
        "properties": {
          "search": {
            "title": "Search",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "vendor_id": {
            "title": "Vendor Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "number": {
            "title": "Number",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "code": {
            "title": "Code",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "start_date": {
            "title": "Start Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "end_date": {
            "title": "End Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "due_date": {
            "title": "Due Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "record_status": {
            "title": "Record Status",
            "items": {
              "$ref": "#/components/schemas/RecordStatus"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "approval_status": {
            "title": "Approval Status",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "approval_status_scope": {
            "title": "Approval Status Scope",
            "items": {
              "$ref": "#/components/schemas/RecordStatus"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "updated_after": {
            "title": "Updated After",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "updated_before": {
            "title": "Updated Before",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "PublicBillListFilterSchema",
        "type": "object"
      },
      "AmortizableAssetRefOut": {
        "properties": {
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "name": {
            "title": "Name",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "title": "AmortizableAssetRefOut",
        "type": "object"
      },
      "FixedAssetRefOut": {
        "properties": {
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "name": {
            "title": "Name",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "title": "FixedAssetRefOut",
        "type": "object"
      },
      "GstSupplyCategory": {
        "description": "India GST: intra-state (CGST+SGST) vs inter-state (IGST).",
        "enum": [
          "INTRA_STATE",
          "INTER_STATE"
        ],
        "title": "GstSupplyCategory",
        "type": "string"
      },
      "PagedPublicBillSchemaOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicBillSchemaOut"
            },
            "title": "Items",
            "type": "array"
          },
          "count": {
            "title": "Count",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "count"
        ],
        "title": "PagedPublicBillSchemaOut",
        "type": "object"
      },
      "PublicBillExpenseOut": {
        "properties": {
          "tax": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemTaxDataOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "position": {
            "title": "Position",
            "type": "integer"
          },
          "rate": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
            "title": "Rate",
            "type": "string"
          },
          "quantity": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
            "title": "Quantity",
            "type": "string"
          },
          "account_number": {
            "title": "Account Number",
            "type": "integer"
          },
          "expense_description": {
            "title": "Expense Description",
            "type": "string"
          },
          "classifications": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/RecordClassificationsSchemaOut"
            },
            "title": "Classifications",
            "type": "array"
          },
          "customer_id": {
            "title": "Customer Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "vendor_id": {
            "title": "Vendor Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "company_id": {
            "description": "Optional company for this line. When set to a different company than the record header company_id, DualEntry treats the line as a cross-company (intercompany) allocation and posts IC Due To/From and elimination entries. Omit or set equal to the header company_id for a normal single-company line.",
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "amortizable_assets": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AmortizableAssetRefOut"
            },
            "title": "Amortizable Assets",
            "type": "array"
          },
          "fixed_assets": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/FixedAssetRefOut"
            },
            "title": "Fixed Assets",
            "type": "array"
          },
          "customer_name": {
            "title": "Customer Name",
            "type": [
              "string",
              "null"
            ]
          },
          "vendor_name": {
            "title": "Vendor Name",
            "type": [
              "string",
              "null"
            ]
          },
          "net_amount": {
            "description": "Net amount before tax",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "readOnly": true,
            "title": "Net Amount",
            "type": "string"
          },
          "tax_amount": {
            "description": "Calculated tax amount",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "readOnly": true,
            "title": "Tax Amount",
            "type": "string"
          },
          "gross_amount": {
            "description": "Calculated total amount including tax",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "readOnly": true,
            "title": "Gross Amount",
            "type": "string"
          },
          "amount": {
            "description": "Calculated total amount including tax named amount for backward compatibility",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "readOnly": true,
            "title": "Amount",
            "type": "string"
          }
        },
        "required": [
          "id",
          "position",
          "rate",
          "quantity",
          "account_number",
          "expense_description",
          "net_amount",
          "tax_amount",
          "gross_amount",
          "amount"
        ],
        "title": "PublicBillExpenseOut",
        "type": "object"
      },
      "PublicBillItemOut": {
        "properties": {
          "tax": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemTaxDataOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "position": {
            "title": "Position",
            "type": "integer"
          },
          "item_id": {
            "title": "Item Id",
            "type": "integer"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "rate": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
            "title": "Rate",
            "type": "string"
          },
          "quantity": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
            "title": "Quantity",
            "type": "string"
          },
          "classifications": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/RecordClassificationsSchemaOut"
            },
            "title": "Classifications",
            "type": "array"
          },
          "company_id": {
            "description": "Optional company for this line. When set to a different company than the record header company_id, DualEntry treats the line as a cross-company (intercompany) allocation and posts IC Due To/From and elimination entries. Omit or set equal to the header company_id for a normal single-company line.",
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "item_type": {
            "title": "Item Type",
            "type": [
              "string",
              "null"
            ]
          },
          "hsn_sac_code": {
            "title": "Hsn Sac Code",
            "type": [
              "string",
              "null"
            ]
          },
          "amortizable_assets": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AmortizableAssetRefOut"
            },
            "title": "Amortizable Assets",
            "type": "array"
          },
          "fixed_assets": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/FixedAssetRefOut"
            },
            "title": "Fixed Assets",
            "type": "array"
          },
          "net_amount": {
            "description": "Net amount before tax",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "readOnly": true,
            "title": "Net Amount",
            "type": "string"
          },
          "tax_amount": {
            "description": "Calculated tax amount",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "readOnly": true,
            "title": "Tax Amount",
            "type": "string"
          },
          "gross_amount": {
            "description": "Calculated total amount including tax",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "readOnly": true,
            "title": "Gross Amount",
            "type": "string"
          },
          "amount": {
            "description": "Calculated total amount including tax named amount for backward compatibility",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "readOnly": true,
            "title": "Amount",
            "type": "string"
          }
        },
        "required": [
          "id",
          "position",
          "item_id",
          "memo",
          "rate",
          "quantity",
          "net_amount",
          "tax_amount",
          "gross_amount",
          "amount"
        ],
        "title": "PublicBillItemOut",
        "type": "object"
      },
      "PublicBillSchemaOut": {
        "properties": {
          "custom_fields": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CustomFieldValuePairOutputSchema"
            },
            "title": "Custom Fields",
            "type": "array"
          },
          "supply_date": {
            "title": "Supply Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "place_of_supply": {
            "title": "Place Of Supply",
            "maxLength": 2,
            "type": [
              "string",
              "null"
            ]
          },
          "tax_registration_numbers": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TaxRegistrationNumbersSnapshot"
              },
              {
                "type": "null"
              }
            ]
          },
          "tax": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RecordTaxContextOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicAttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "transaction_ids": {
            "items": {
              "type": "integer"
            },
            "title": "Transaction Ids",
            "type": "array"
          },
          "term_id": {
            "title": "Term Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "term_name": {
            "title": "Term Name",
            "type": "string"
          },
          "bank_match_status": {
            "title": "Bank Match Status",
            "type": [
              "string",
              "null"
            ]
          },
          "reconciliation_status": {
            "title": "Reconciliation Status",
            "type": [
              "string",
              "null"
            ]
          },
          "created_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "updated_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "approval_status": {
            "title": "Approval Status",
            "type": [
              "string",
              "null"
            ]
          },
          "next_approvers": {
            "title": "Next Approvers",
            "items": {
              "$ref": "#/components/schemas/ApproverDictSchema"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "rejected_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RejectedBySchema"
              },
              {
                "type": "null"
              }
            ]
          },
          "internal_id": {
            "title": "Internal Id",
            "type": "integer"
          },
          "number": {
            "title": "Number",
            "type": "integer"
          },
          "code": {
            "title": "Code",
            "type": [
              "string",
              "null"
            ]
          },
          "date": {
            "description": "Posting date (GL date) - the date when the transaction is recorded in the general ledger",
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "description": "Transaction date (inception date) - the date when the transaction actually occurred",
            "format": "date",
            "title": "Transaction Date",
            "type": "string"
          },
          "due_date": {
            "format": "date",
            "title": "Due Date",
            "type": "string"
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "company_name": {
            "title": "Company Name",
            "type": "string"
          },
          "company_currency": {
            "title": "Company Currency",
            "type": "string"
          },
          "vendor_id": {
            "title": "Vendor Id",
            "type": "integer"
          },
          "vendor_name": {
            "title": "Vendor Name",
            "type": "string"
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "exchange_rate": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
            "title": "Exchange Rate",
            "type": "string"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "amount": {
            "description": "Total amount of transaction",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Amount",
            "type": "string"
          },
          "amount_due": {
            "description": "Amount to be paid",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Amount Due",
            "type": "string"
          },
          "paid_total": {
            "description": "Amount that was already paid by Vendor Prepayment Applications or Vendor Payments",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Paid Total",
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicBillItemOut"
            },
            "title": "Items",
            "type": "array"
          },
          "expenses": {
            "items": {
              "$ref": "#/components/schemas/PublicBillExpenseOut"
            },
            "title": "Expenses",
            "type": "array"
          },
          "record_status": {
            "$ref": "#/components/schemas/RecordStatus"
          },
          "recurring_record_number": {
            "title": "Recurring Record Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "purchase_order_number": {
            "title": "Purchase Order Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "reference_number": {
            "title": "Reference Number",
            "type": "string"
          },
          "created_at": {
            "description": "Date and time the record was created",
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "updated_at": {
            "description": "Date and time the record was last updated",
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "supply_date",
          "tax",
          "transaction_ids",
          "term_id",
          "term_name",
          "internal_id",
          "number",
          "date",
          "transaction_date",
          "due_date",
          "company_id",
          "company_name",
          "company_currency",
          "vendor_id",
          "vendor_name",
          "currency_iso_4217_code",
          "exchange_rate",
          "memo",
          "amount",
          "amount_due",
          "paid_total",
          "items",
          "expenses",
          "record_status",
          "recurring_record_number",
          "purchase_order_number",
          "reference_number",
          "created_at",
          "updated_at"
        ],
        "title": "PublicBillSchemaOut",
        "type": "object"
      },
      "RecordGstDataOut": {
        "properties": {
          "country": {
            "description": "ISO-2 country code of the GST regime (IN, AU, NZ, SG, CA).",
            "title": "Country",
            "type": [
              "string",
              "null"
            ]
          },
          "supply_category": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/GstSupplyCategory"
              },
              {
                "type": "null"
              }
            ],
            "description": "India only (today): INTRA_STATE (CGST+SGST) vs INTER_STATE (IGST). Null for AU/NZ/SG/CA."
          },
          "place_of_supply": {
            "title": "Place Of Supply",
            "maxLength": 2,
            "type": [
              "string",
              "null"
            ]
          },
          "supply_date": {
            "title": "Supply Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "tax_registration_numbers": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TaxRegistrationNumbersSnapshot"
              },
              {
                "type": "null"
              }
            ],
            "description": "Snapshot of all relevant tax registration numbers for both parties."
          }
        },
        "title": "RecordGstDataOut",
        "type": "object"
      },
      "RecordNoneTaxDataOut": {
        "properties": {},
        "title": "RecordNoneTaxDataOut",
        "type": "object"
      },
      "RecordSalesTaxDataOut": {
        "description": "Reserved for future sales tax fields (e.g. nexus origin).",
        "properties": {},
        "title": "RecordSalesTaxDataOut",
        "type": "object"
      },
      "RecordTaxContextOut": {
        "description": "Base for record-level tax context; `regime` discriminates `data`.\n\nMirrors `TaxResultV2Out` (core.taxes.api.taxes)",
        "properties": {
          "regime": {
            "$ref": "#/components/schemas/TaxResultType"
          },
          "data": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RecordSalesTaxDataOut"
              },
              {
                "$ref": "#/components/schemas/RecordVatDataOut"
              },
              {
                "$ref": "#/components/schemas/RecordGstDataOut"
              },
              {
                "$ref": "#/components/schemas/RecordNoneTaxDataOut"
              }
            ],
            "title": "Data"
          }
        },
        "required": [
          "regime",
          "data"
        ],
        "title": "RecordTaxContextOut",
        "type": "object"
      },
      "RecordVatDataOut": {
        "properties": {
          "country": {
            "description": "ISO-2 country code that owns the VAT regime for this record (GB, DE, ...).",
            "title": "Country",
            "type": [
              "string",
              "null"
            ]
          },
          "supply_date": {
            "title": "Supply Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "tax_registration_numbers": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TaxRegistrationNumbersSnapshot"
              },
              {
                "type": "null"
              }
            ],
            "description": "Snapshot of all relevant tax registration numbers for both parties."
          }
        },
        "title": "RecordVatDataOut",
        "type": "object"
      },
      "TaxRegistrationNumberEntry": {
        "properties": {
          "type": {
            "description": "Registration type (e.g. SST_SALES, SST_SERVICE, GST, GSTIN, PST, QST).",
            "title": "Type",
            "type": "string"
          },
          "number": {
            "description": "Frozen-at-snapshot registration number.",
            "title": "Number",
            "type": "string"
          },
          "region": {
            "description": "2-letter region code for region-scoped registrations (e.g. Canadian PST/QST provinces); null for country-wide registrations.",
            "title": "Region",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "type",
          "number"
        ],
        "title": "TaxRegistrationNumberEntry",
        "type": "object"
      },
      "TaxRegistrationNumbersSnapshot": {
        "properties": {
          "company": {
            "items": {
              "$ref": "#/components/schemas/TaxRegistrationNumberEntry"
            },
            "title": "Company",
            "type": "array"
          },
          "counterparty": {
            "items": {
              "$ref": "#/components/schemas/TaxRegistrationNumberEntry"
            },
            "title": "Counterparty",
            "type": "array"
          }
        },
        "title": "TaxRegistrationNumbersSnapshot",
        "type": "object"
      },
      "TaxResultType": {
        "enum": [
          "SALES_TAX",
          "VAT",
          "GST",
          "NONE"
        ],
        "title": "TaxResultType",
        "type": "string"
      },
      "PublicBillExpenseIn": {
        "properties": {
          "tax": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemTaxData"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "title": "Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "position": {
            "title": "Position",
            "type": "integer"
          },
          "rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
                "type": "string"
              }
            ],
            "title": "Rate"
          },
          "quantity": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
                "type": "string"
              }
            ],
            "title": "Quantity"
          },
          "account_number": {
            "title": "Account Number",
            "type": "integer"
          },
          "expense_description": {
            "title": "Expense Description",
            "type": "string"
          },
          "classifications": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/RecordClassificationsSchemaOut"
            },
            "title": "Classifications",
            "type": "array"
          },
          "customer_id": {
            "title": "Customer Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "vendor_id": {
            "title": "Vendor Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "company_id": {
            "description": "Optional company for this line. When set to a different company than the record header company_id, DualEntry treats the line as a cross-company (intercompany) allocation and posts IC Due To/From and elimination entries. Omit or set equal to the header company_id for a normal single-company line.",
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "position",
          "rate",
          "quantity",
          "account_number",
          "expense_description"
        ],
        "title": "PublicBillExpenseIn",
        "type": "object"
      },
      "PublicBillItemIn": {
        "properties": {
          "tax": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemTaxData"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "title": "Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "position": {
            "title": "Position",
            "type": "integer"
          },
          "item_id": {
            "title": "Item Id",
            "type": "integer"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
                "type": "string"
              }
            ],
            "title": "Rate"
          },
          "quantity": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
                "type": "string"
              }
            ],
            "title": "Quantity"
          },
          "classifications": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/RecordClassificationsSchemaOut"
            },
            "title": "Classifications",
            "type": "array"
          },
          "company_id": {
            "description": "Optional company for this line. When set to a different company than the record header company_id, DualEntry treats the line as a cross-company (intercompany) allocation and posts IC Due To/From and elimination entries. Omit or set equal to the header company_id for a normal single-company line.",
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "position",
          "item_id",
          "memo",
          "rate",
          "quantity"
        ],
        "title": "PublicBillItemIn",
        "type": "object"
      },
      "PublicBillSchemaCreateIn": {
        "properties": {
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "title": "Transaction Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "vendor_id": {
            "title": "Vendor Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "currency_iso_4217_code": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "type": "null"
              }
            ]
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Exchange Rate"
          },
          "memo": {
            "title": "Memo",
            "type": [
              "string",
              "null"
            ]
          },
          "items": {
            "title": "Items",
            "items": {
              "$ref": "#/components/schemas/PublicBillItemIn"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "expenses": {
            "title": "Expenses",
            "items": {
              "$ref": "#/components/schemas/PublicBillExpenseIn"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "due_date": {
            "title": "Due Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "term_id": {
            "title": "Term Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "reference_number": {
            "default": "",
            "title": "Reference Number",
            "type": "string"
          },
          "purchase_order_number": {
            "title": "Purchase Order Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          }
        },
        "required": [
          "date"
        ],
        "title": "PublicBillSchemaCreateIn",
        "type": "object"
      },
      "PublicBillSchemaUpdateIn": {
        "properties": {
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "title": "Transaction Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "vendor_id": {
            "title": "Vendor Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "currency_iso_4217_code": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "type": "null"
              }
            ]
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Exchange Rate"
          },
          "memo": {
            "title": "Memo",
            "type": [
              "string",
              "null"
            ]
          },
          "items": {
            "title": "Items",
            "items": {
              "$ref": "#/components/schemas/PublicBillItemIn"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "expenses": {
            "title": "Expenses",
            "items": {
              "$ref": "#/components/schemas/PublicBillExpenseIn"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "due_date": {
            "title": "Due Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "term_id": {
            "title": "Term Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "reference_number": {
            "default": "",
            "title": "Reference Number",
            "type": "string"
          },
          "purchase_order_number": {
            "title": "Purchase Order Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          }
        },
        "required": [
          "date"
        ],
        "title": "PublicBillSchemaUpdateIn",
        "type": "object"
      },
      "PublicBillSchemaPatchIn": {
        "description": "Partial update payload for PATCH /public/bills/{number}/.\n\nEvery field is optional: send only the fields you want to change.\nUnset fields are left untouched on the existing record.\n\nUpdates allowed under the same constraints as PUT: period locks,\npayment-applied restrictions, and approval-workflow rules apply.",
        "properties": {
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "vendor_id": {
            "title": "Vendor Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "currency_iso_4217_code": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "type": "null"
              }
            ]
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Exchange Rate"
          },
          "memo": {
            "title": "Memo",
            "type": [
              "string",
              "null"
            ]
          },
          "items": {
            "title": "Items",
            "items": {
              "$ref": "#/components/schemas/PublicBillItemIn"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "expenses": {
            "title": "Expenses",
            "items": {
              "$ref": "#/components/schemas/PublicBillExpenseIn"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "due_date": {
            "title": "Due Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "term_id": {
            "title": "Term Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "reference_number": {
            "default": "",
            "title": "Reference Number",
            "type": "string"
          },
          "purchase_order_number": {
            "title": "Purchase Order Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "attachments": {
            "title": "Attachments",
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "record_status": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              },
              {
                "type": "null"
              }
            ]
          },
          "date": {
            "title": "Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "transaction_date": {
            "title": "Transaction Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "PublicBillSchemaPatchIn",
        "type": "object"
      },
      "PublicJournalEntryListFilterSchema": {
        "properties": {
          "integration_sources": {
            "title": "Integration Sources",
            "items": {
              "$ref": "#/components/schemas/IntegrationSourceSlug"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "search": {
            "title": "Search",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "account_id": {
            "title": "Account Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "customer_id": {
            "title": "Customer Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "vendor_id": {
            "title": "Vendor Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "number": {
            "title": "Number",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "code": {
            "title": "Code",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "start_date": {
            "title": "Start Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "end_date": {
            "title": "End Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "record_status": {
            "title": "Record Status",
            "items": {
              "$ref": "#/components/schemas/RecordStatus"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "approval_status": {
            "title": "Approval Status",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "approval_status_scope": {
            "title": "Approval Status Scope",
            "items": {
              "$ref": "#/components/schemas/RecordStatus"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "amount_gte": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Amount Gte"
          },
          "amount_lte": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Amount Lte"
          },
          "updated_after": {
            "title": "Updated After",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "updated_before": {
            "title": "Updated Before",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "PublicJournalEntryListFilterSchema",
        "type": "object"
      },
      "JournalEntryItemOut": {
        "properties": {
          "amortizable_assets": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AmortizableAssetRefOut"
            },
            "title": "Amortizable Assets",
            "type": "array"
          },
          "fixed_assets": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/FixedAssetRefOut"
            },
            "title": "Fixed Assets",
            "type": "array"
          },
          "debit": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Debit",
            "type": "string"
          },
          "credit": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Credit",
            "type": "string"
          },
          "classifications": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/RecordClassificationsSchemaOut"
            },
            "title": "Classifications",
            "type": "array"
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "account_id": {
            "title": "Account Id",
            "type": "integer"
          },
          "position": {
            "title": "Position",
            "type": "integer"
          },
          "memo": {
            "default": "",
            "title": "Memo",
            "type": "string"
          },
          "customer_id": {
            "title": "Customer Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "vendor_id": {
            "title": "Vendor Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "currency": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "not_aging_eligible_reason": {
            "default": "",
            "title": "Not Aging Eligible Reason",
            "type": "string"
          },
          "is_billable": {
            "default": false,
            "title": "Is Billable",
            "type": "boolean"
          },
          "billable_customer_id": {
            "title": "Billable Customer Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "billable_project_id": {
            "title": "Billable Project Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "billable_markup_pct": {
            "title": "Billable Markup Pct",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,4}0*$",
            "type": [
              "string",
              "null"
            ]
          },
          "account_number": {
            "title": "Account Number",
            "type": "integer"
          },
          "line_type": {
            "$ref": "#/components/schemas/LineType"
          },
          "original_line_id": {
            "title": "Original Line Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "customer_name": {
            "title": "Customer Name",
            "type": [
              "string",
              "null"
            ]
          },
          "vendor_name": {
            "title": "Vendor Name",
            "type": [
              "string",
              "null"
            ]
          },
          "billable_customer_name": {
            "title": "Billable Customer Name",
            "type": [
              "string",
              "null"
            ]
          },
          "billable_project_name": {
            "title": "Billable Project Name",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "debit",
          "credit",
          "id",
          "account_id",
          "position",
          "currency",
          "line_type"
        ],
        "title": "JournalEntryItemOut",
        "type": "object"
      },
      "LineType": {
        "enum": [
          "NORMAL",
          "REVERSAL"
        ],
        "title": "LineType",
        "type": "string"
      },
      "PagedPublicJournalEntrySchemaOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicJournalEntrySchemaOut"
            },
            "title": "Items",
            "type": "array"
          },
          "count": {
            "title": "Count",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "count"
        ],
        "title": "PagedPublicJournalEntrySchemaOut",
        "type": "object"
      },
      "PublicJournalEntryItemOut": {
        "properties": {
          "amortizable_assets": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AmortizableAssetRefOut"
            },
            "title": "Amortizable Assets",
            "type": "array"
          },
          "fixed_assets": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/FixedAssetRefOut"
            },
            "title": "Fixed Assets",
            "type": "array"
          },
          "debit": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Debit",
            "type": "string"
          },
          "credit": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Credit",
            "type": "string"
          },
          "classifications": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/RecordClassificationsSchemaOut"
            },
            "title": "Classifications",
            "type": "array"
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "entry_id": {
            "title": "Entry Id",
            "type": "integer"
          },
          "account_number": {
            "title": "Account Number",
            "type": "integer"
          },
          "position": {
            "title": "Position",
            "type": "integer"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "customer_id": {
            "title": "Customer Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "customer_name": {
            "title": "Customer Name",
            "type": [
              "string",
              "null"
            ]
          },
          "vendor_id": {
            "title": "Vendor Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "vendor_name": {
            "title": "Vendor Name",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "debit",
          "credit",
          "id",
          "entry_id",
          "account_number",
          "position",
          "memo"
        ],
        "title": "PublicJournalEntryItemOut",
        "type": "object"
      },
      "PublicJournalEntrySchemaOut": {
        "properties": {
          "custom_fields": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CustomFieldValuePairOutputSchema"
            },
            "title": "Custom Fields",
            "type": "array"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicAttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "reversal_items": {
            "items": {
              "$ref": "#/components/schemas/JournalEntryItemOut"
            },
            "title": "Reversal Items",
            "type": "array"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicJournalEntryItemOut"
            },
            "title": "Items",
            "type": "array"
          },
          "bank_match_status": {
            "title": "Bank Match Status",
            "type": [
              "string",
              "null"
            ]
          },
          "reconciliation_status": {
            "title": "Reconciliation Status",
            "type": [
              "string",
              "null"
            ]
          },
          "created_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "updated_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "approval_status": {
            "title": "Approval Status",
            "type": [
              "string",
              "null"
            ]
          },
          "next_approvers": {
            "title": "Next Approvers",
            "items": {
              "$ref": "#/components/schemas/ApproverDictSchema"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "rejected_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RejectedBySchema"
              },
              {
                "type": "null"
              }
            ]
          },
          "internal_id": {
            "title": "Internal Id",
            "type": "integer"
          },
          "number": {
            "title": "Number",
            "type": "integer"
          },
          "code": {
            "title": "Code",
            "type": [
              "string",
              "null"
            ]
          },
          "transaction_id": {
            "title": "Transaction Id",
            "type": "integer"
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "company_name": {
            "title": "Company Name",
            "type": "string"
          },
          "company_currency": {
            "title": "Company Currency",
            "type": "string"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "date": {
            "description": "Posting date (GL date) - the date when the transaction is recorded in the general ledger",
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "description": "Transaction date (inception date) - the date when the transaction actually occurred",
            "format": "date",
            "title": "Transaction Date",
            "type": "string"
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "amount": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Amount",
            "type": "string"
          },
          "exchange_rate": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
            "title": "Exchange Rate",
            "type": "string"
          },
          "record_status": {
            "$ref": "#/components/schemas/RecordStatus"
          },
          "created_at": {
            "description": "Date and time the record was created",
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "updated_at": {
            "description": "Date and time the record was last updated",
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "reversal_items",
          "items",
          "internal_id",
          "number",
          "transaction_id",
          "company_id",
          "company_name",
          "company_currency",
          "memo",
          "date",
          "transaction_date",
          "currency_iso_4217_code",
          "amount",
          "exchange_rate",
          "record_status",
          "created_at",
          "updated_at"
        ],
        "title": "PublicJournalEntrySchemaOut",
        "type": "object"
      },
      "PublicJournalEntryItemIn": {
        "properties": {
          "id": {
            "title": "Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "account_number": {
            "title": "Account Number",
            "type": "integer"
          },
          "debit": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              }
            ],
            "title": "Debit"
          },
          "credit": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              }
            ],
            "title": "Credit"
          },
          "position": {
            "title": "Position",
            "type": "integer"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "classifications": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/RecordClassificationsSchemaOut"
            },
            "title": "Classifications",
            "type": "array"
          },
          "customer_id": {
            "title": "Customer Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "vendor_id": {
            "title": "Vendor Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "currency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "account_number",
          "debit",
          "credit",
          "position",
          "memo"
        ],
        "title": "PublicJournalEntryItemIn",
        "type": "object"
      },
      "PublicJournalEntrySchemaCreateIn": {
        "properties": {
          "items": {
            "title": "Items",
            "items": {
              "$ref": "#/components/schemas/PublicJournalEntryItemIn"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "title": "Transaction Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "memo": {
            "title": "Memo",
            "type": [
              "string",
              "null"
            ]
          },
          "currency_iso_4217_code": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "type": "null"
              }
            ]
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Exchange Rate"
          },
          "reversal_date": {
            "title": "Reversal Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          }
        },
        "required": [
          "date"
        ],
        "title": "PublicJournalEntrySchemaCreateIn",
        "type": "object"
      },
      "PublicJournalEntrySchemaUpdateIn": {
        "properties": {
          "items": {
            "title": "Items",
            "items": {
              "$ref": "#/components/schemas/PublicJournalEntryItemIn"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "title": "Transaction Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "memo": {
            "title": "Memo",
            "type": [
              "string",
              "null"
            ]
          },
          "currency_iso_4217_code": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "type": "null"
              }
            ]
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Exchange Rate"
          },
          "reversal_date": {
            "title": "Reversal Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          }
        },
        "required": [
          "date"
        ],
        "title": "PublicJournalEntrySchemaUpdateIn",
        "type": "object"
      },
      "PublicPurchaseOrderListFilterSchema": {
        "properties": {
          "search": {
            "title": "Search",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "number": {
            "title": "Number",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "vendor_id": {
            "title": "Vendor Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "start_date": {
            "title": "Start Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "end_date": {
            "title": "End Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "record_status": {
            "title": "Record Status",
            "items": {
              "$ref": "#/components/schemas/RecordStatus"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "approval_status": {
            "title": "Approval Status",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "approval_status_scope": {
            "title": "Approval Status Scope",
            "items": {
              "$ref": "#/components/schemas/RecordStatus"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "billed": {
            "title": "Billed",
            "type": [
              "boolean",
              "null"
            ]
          },
          "unbilled": {
            "title": "Unbilled",
            "type": [
              "boolean",
              "null"
            ]
          },
          "partially_billed": {
            "title": "Partially Billed",
            "type": [
              "boolean",
              "null"
            ]
          },
          "billed_status": {
            "default": [],
            "items": {
              "enum": [
                "billed",
                "unbilled",
                "partially_billed"
              ],
              "title": "PurchaseOrderBilledStatus",
              "type": "string"
            },
            "title": "Billed Status",
            "type": "array",
            "uniqueItems": true
          },
          "updated_after": {
            "title": "Updated After",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "updated_before": {
            "title": "Updated Before",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "PublicPurchaseOrderListFilterSchema",
        "type": "object"
      },
      "PurchaseOrderBilledStatus": {
        "enum": [
          "billed",
          "unbilled",
          "partially_billed"
        ],
        "title": "PurchaseOrderBilledStatus",
        "type": "string"
      },
      "PagedPublicPurchaseOrderSchemaOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicPurchaseOrderSchemaOut"
            },
            "title": "Items",
            "type": "array"
          },
          "count": {
            "title": "Count",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "count"
        ],
        "title": "PagedPublicPurchaseOrderSchemaOut",
        "type": "object"
      },
      "PublicPurchaseOrderItemOut": {
        "properties": {
          "classifications": {
            "description": "Classifications of the item",
            "items": {
              "$ref": "#/components/schemas/PublicRecordClassificationsSchemaOut"
            },
            "title": "Classifications",
            "type": "array"
          },
          "item_type": {
            "title": "Item Type",
            "type": [
              "string",
              "null"
            ]
          },
          "hsn_sac_code": {
            "title": "Hsn Sac Code",
            "type": [
              "string",
              "null"
            ]
          },
          "tax": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemTaxDataOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "description": "ID of the item",
            "title": "Id",
            "type": "integer"
          },
          "item_id": {
            "description": "ID of the inventory item",
            "title": "Item Id",
            "type": "integer"
          },
          "position": {
            "description": "Position of the item in the purchase order",
            "title": "Position",
            "type": "integer"
          },
          "memo": {
            "description": "Memo of the item",
            "title": "Memo",
            "type": "string"
          },
          "quantity": {
            "description": "Quantity ordered",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
            "title": "Quantity",
            "type": "string"
          },
          "rate": {
            "description": "Rate per unit",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
            "title": "Rate",
            "type": "string"
          },
          "quantity_billed": {
            "description": "Quantity of items that already have corresponding Bill",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
            "title": "Quantity Billed",
            "type": "string"
          },
          "quantity_due": {
            "description": "Quantity of items yet to be billed",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
            "title": "Quantity Due",
            "type": "string"
          },
          "net_amount": {
            "description": "Net amount before tax",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "readOnly": true,
            "title": "Net Amount",
            "type": "string"
          },
          "tax_amount": {
            "description": "Calculated tax amount",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "readOnly": true,
            "title": "Tax Amount",
            "type": "string"
          },
          "gross_amount": {
            "description": "Calculated total amount including tax",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "readOnly": true,
            "title": "Gross Amount",
            "type": "string"
          },
          "amount": {
            "description": "Calculated total amount including tax named amount for backward compatibility",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "readOnly": true,
            "title": "Amount",
            "type": "string"
          }
        },
        "required": [
          "classifications",
          "id",
          "item_id",
          "position",
          "memo",
          "quantity",
          "rate",
          "quantity_billed",
          "quantity_due",
          "net_amount",
          "tax_amount",
          "gross_amount",
          "amount"
        ],
        "title": "PublicPurchaseOrderItemOut",
        "type": "object"
      },
      "PublicPurchaseOrderSchemaOut": {
        "properties": {
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicAttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "term_id": {
            "title": "Term Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "term_name": {
            "title": "Term Name",
            "type": "string"
          },
          "created_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "updated_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "approval_status": {
            "title": "Approval Status",
            "type": [
              "string",
              "null"
            ]
          },
          "next_approvers": {
            "title": "Next Approvers",
            "items": {
              "$ref": "#/components/schemas/ApproverDictSchema"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "rejected_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RejectedBySchema"
              },
              {
                "type": "null"
              }
            ]
          },
          "internal_id": {
            "title": "Internal Id",
            "type": "integer"
          },
          "number": {
            "title": "Number",
            "type": "integer"
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "company_name": {
            "description": "Name of the company",
            "title": "Company Name",
            "type": "string"
          },
          "company_currency": {
            "title": "Company Currency",
            "type": "string"
          },
          "vendor_id": {
            "title": "Vendor Id",
            "type": "integer"
          },
          "vendor_name": {
            "title": "Vendor Name",
            "type": "string"
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "exchange_rate": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
            "title": "Exchange Rate",
            "type": "string"
          },
          "billed_total": {
            "description": "Total quantity of items that were already billed",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Billed Total",
            "type": "string"
          },
          "due_total": {
            "description": "Total quantity of items yet to be billed",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Due Total",
            "type": "string"
          },
          "amount": {
            "description": "Total amount of ordered items",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Amount",
            "type": "string"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicPurchaseOrderItemOut"
            },
            "title": "Items",
            "type": "array"
          },
          "record_status": {
            "$ref": "#/components/schemas/RecordStatus"
          },
          "billed_status": {
            "$ref": "#/components/schemas/PurchaseOrderBilledStatus"
          },
          "reference_number": {
            "default": "",
            "title": "Reference Number",
            "type": "string"
          },
          "created_at": {
            "description": "Date and time the record was created",
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "updated_at": {
            "description": "Date and time the record was last updated",
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "term_id",
          "term_name",
          "internal_id",
          "number",
          "date",
          "company_id",
          "company_name",
          "company_currency",
          "vendor_id",
          "vendor_name",
          "currency_iso_4217_code",
          "exchange_rate",
          "billed_total",
          "due_total",
          "amount",
          "memo",
          "items",
          "record_status",
          "billed_status",
          "created_at",
          "updated_at"
        ],
        "title": "PublicPurchaseOrderSchemaOut",
        "type": "object"
      },
      "PublicRecordClassificationsSchemaOut": {
        "properties": {
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "line_id": {
            "title": "Line Id",
            "type": "integer"
          },
          "line_name": {
            "title": "Line Name",
            "type": "string"
          },
          "parent_classification_id": {
            "title": "Parent Classification Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "parent_classification_line_id": {
            "title": "Parent Classification Line Id",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "name",
          "line_id",
          "line_name"
        ],
        "title": "PublicRecordClassificationsSchemaOut",
        "type": "object"
      },
      "PublicPurchaseOrderItemIn": {
        "properties": {
          "tax": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemTaxData"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "title": "Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "position": {
            "description": "Position of the item in the purchase order",
            "title": "Position",
            "type": "integer"
          },
          "item_id": {
            "description": "ID of the item",
            "title": "Item Id",
            "type": "integer"
          },
          "memo": {
            "description": "Memo of the item",
            "title": "Memo",
            "type": "string"
          },
          "quantity": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
                "type": "string"
              }
            ],
            "description": "Quantity of the item",
            "title": "Quantity"
          },
          "rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
                "type": "string"
              }
            ],
            "description": "Rate of the item",
            "title": "Rate"
          },
          "classifications": {
            "description": "Classifications of the item",
            "items": {
              "$ref": "#/components/schemas/PublicRecordClassificationsSchemaOut"
            },
            "title": "Classifications",
            "type": "array"
          }
        },
        "required": [
          "position",
          "item_id",
          "memo",
          "quantity",
          "rate",
          "classifications"
        ],
        "title": "PublicPurchaseOrderItemIn",
        "type": "object"
      },
      "PublicPurchaseOrderSchemaCreateIn": {
        "properties": {
          "supply_date": {
            "title": "Supply Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "place_of_supply": {
            "title": "Place Of Supply",
            "maxLength": 2,
            "type": [
              "string",
              "null"
            ]
          },
          "tax_registration_numbers": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TaxRegistrationNumbersSnapshot"
              },
              {
                "type": "null"
              }
            ]
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "vendor_id": {
            "title": "Vendor Id",
            "type": "integer"
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              }
            ],
            "title": "Exchange Rate"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicPurchaseOrderItemIn"
            },
            "title": "Items",
            "type": "array"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          },
          "term_id": {
            "title": "Term Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "reference_number": {
            "default": "",
            "title": "Reference Number",
            "type": "string"
          }
        },
        "required": [
          "date",
          "company_id",
          "vendor_id",
          "currency_iso_4217_code",
          "exchange_rate",
          "memo",
          "items"
        ],
        "title": "PublicPurchaseOrderSchemaCreateIn",
        "type": "object"
      },
      "PublicPurchaseOrderSchemaUpdateIn": {
        "properties": {
          "supply_date": {
            "title": "Supply Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "place_of_supply": {
            "title": "Place Of Supply",
            "maxLength": 2,
            "type": [
              "string",
              "null"
            ]
          },
          "tax_registration_numbers": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TaxRegistrationNumbersSnapshot"
              },
              {
                "type": "null"
              }
            ]
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "vendor_id": {
            "title": "Vendor Id",
            "type": "integer"
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              }
            ],
            "title": "Exchange Rate"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicPurchaseOrderItemIn"
            },
            "title": "Items",
            "type": "array"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          },
          "term_id": {
            "title": "Term Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "reference_number": {
            "default": "",
            "title": "Reference Number",
            "type": "string"
          }
        },
        "required": [
          "date",
          "company_id",
          "vendor_id",
          "currency_iso_4217_code",
          "exchange_rate",
          "memo",
          "items"
        ],
        "title": "PublicPurchaseOrderSchemaUpdateIn",
        "type": "object"
      },
      "PublicCustomerPrepaymentListFilterSchema": {
        "properties": {
          "search": {
            "title": "Search",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "title": "Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "number": {
            "title": "Number",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "customer_id": {
            "title": "Customer Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "start_date": {
            "title": "Start Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "end_date": {
            "title": "End Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "transaction_currency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "type": "null"
              }
            ]
          },
          "record_status": {
            "title": "Record Status",
            "items": {
              "$ref": "#/components/schemas/RecordStatus"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "updated_after": {
            "title": "Updated After",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "updated_before": {
            "title": "Updated Before",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "PublicCustomerPrepaymentListFilterSchema",
        "type": "object"
      },
      "CustomerDepositDataPublicSchema": {
        "properties": {
          "number": {
            "title": "Number",
            "type": "integer"
          },
          "date": {
            "title": "Date",
            "type": "string"
          },
          "amount": {
            "title": "Amount",
            "type": "number"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "record_status": {
            "$ref": "#/components/schemas/core__models__base__RecordStatus"
          }
        },
        "required": [
          "number",
          "date",
          "amount",
          "memo",
          "record_status"
        ],
        "title": "CustomerDepositDataPublicSchema",
        "type": "object"
      },
      "PagedPublicCustomerPrepaymentSchemaOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicCustomerPrepaymentSchemaOut"
            },
            "title": "Items",
            "type": "array"
          },
          "count": {
            "title": "Count",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "count"
        ],
        "title": "PagedPublicCustomerPrepaymentSchemaOut",
        "type": "object"
      },
      "PublicCustomerPrepaymentSchemaOut": {
        "properties": {
          "transaction_ids": {
            "items": {
              "type": "integer"
            },
            "title": "Transaction Ids",
            "type": "array"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicAttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "created_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "updated_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "custom_fields": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CustomFieldValuePairOutputSchema"
            },
            "title": "Custom Fields",
            "type": "array"
          },
          "internal_id": {
            "title": "Internal Id",
            "type": "integer"
          },
          "number": {
            "title": "Number",
            "type": "integer"
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "company_name": {
            "title": "Company Name",
            "type": "string"
          },
          "company_currency": {
            "title": "Company Currency",
            "type": "string"
          },
          "customer_id": {
            "title": "Customer Id",
            "type": "integer"
          },
          "customer_name": {
            "title": "Customer Name",
            "type": "string"
          },
          "account_number": {
            "title": "Account Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "check_number": {
            "title": "Check Number",
            "type": "string"
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "date": {
            "description": "Posting date (GL date) - the date when the transaction is recorded in the general ledger",
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "description": "Transaction date (inception date) - the date when the transaction actually occurred",
            "format": "date",
            "title": "Transaction Date",
            "type": "string"
          },
          "exchange_rate": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
            "title": "Exchange Rate",
            "type": "string"
          },
          "undeposited_funds_currency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "type": "null"
              }
            ]
          },
          "bank_or_undeposited_funds_amount": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Bank Or Undeposited Funds Amount",
            "type": "string"
          },
          "amount": {
            "description": "Total transaction amount",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Amount",
            "type": "string"
          },
          "used_amount": {
            "description": "Amount that was already applied to Invoices",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Used Amount",
            "type": "string"
          },
          "remaining_amount": {
            "description": "Amount that can be applied to Invoices",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Remaining Amount",
            "type": "string"
          },
          "payment_method_id": {
            "title": "Payment Method Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "record_status": {
            "$ref": "#/components/schemas/RecordStatus"
          },
          "customer_deposits": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CustomerDepositDataPublicSchema"
            },
            "title": "Customer Deposits",
            "type": "array"
          },
          "recurring_record_number": {
            "title": "Recurring Record Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "created_at": {
            "description": "Date and time the record was created",
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "updated_at": {
            "description": "Date and time the record was last updated",
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "transaction_ids",
          "internal_id",
          "number",
          "company_id",
          "company_name",
          "company_currency",
          "customer_id",
          "customer_name",
          "account_number",
          "memo",
          "check_number",
          "currency_iso_4217_code",
          "date",
          "transaction_date",
          "exchange_rate",
          "undeposited_funds_currency",
          "bank_or_undeposited_funds_amount",
          "amount",
          "used_amount",
          "remaining_amount",
          "record_status",
          "recurring_record_number",
          "created_at",
          "updated_at"
        ],
        "title": "PublicCustomerPrepaymentSchemaOut",
        "type": "object"
      },
      "PublicCustomerPrepaymentSchemaCreateIn": {
        "properties": {
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "title": "Transaction Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "customer_id": {
            "title": "Customer Id",
            "type": "integer"
          },
          "account_number": {
            "title": "Account Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "memo": {
            "default": "",
            "title": "Memo",
            "type": "string"
          },
          "check_number": {
            "default": "",
            "title": "Check Number",
            "type": "string"
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              }
            ],
            "title": "Exchange Rate"
          },
          "undeposited_funds_currency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "type": "null"
              }
            ]
          },
          "amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              }
            ],
            "description": "Total transaction amount",
            "title": "Amount"
          },
          "bank_or_undeposited_funds_amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              }
            ],
            "title": "Bank Or Undeposited Funds Amount"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "payment_method_id": {
            "title": "Payment Method Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          }
        },
        "required": [
          "date",
          "company_id",
          "customer_id",
          "currency_iso_4217_code",
          "exchange_rate",
          "amount",
          "bank_or_undeposited_funds_amount"
        ],
        "title": "PublicCustomerPrepaymentSchemaCreateIn",
        "type": "object"
      },
      "PublicCustomerPrepaymentSchemaUpdateIn": {
        "properties": {
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "title": "Transaction Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "customer_id": {
            "title": "Customer Id",
            "type": "integer"
          },
          "account_number": {
            "title": "Account Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "memo": {
            "default": "",
            "title": "Memo",
            "type": "string"
          },
          "check_number": {
            "default": "",
            "title": "Check Number",
            "type": "string"
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              }
            ],
            "title": "Exchange Rate"
          },
          "undeposited_funds_currency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "type": "null"
              }
            ]
          },
          "amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              }
            ],
            "description": "Total transaction amount",
            "title": "Amount"
          },
          "bank_or_undeposited_funds_amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              }
            ],
            "title": "Bank Or Undeposited Funds Amount"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "payment_method_id": {
            "title": "Payment Method Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          }
        },
        "required": [
          "date",
          "company_id",
          "customer_id",
          "currency_iso_4217_code",
          "exchange_rate",
          "amount",
          "bank_or_undeposited_funds_amount"
        ],
        "title": "PublicCustomerPrepaymentSchemaUpdateIn",
        "type": "object"
      },
      "PublicCustomerPrepaymentSchemaPatchIn": {
        "properties": {
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "customer_id": {
            "title": "Customer Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "account_number": {
            "title": "Account Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "memo": {
            "title": "Memo",
            "type": [
              "string",
              "null"
            ]
          },
          "check_number": {
            "title": "Check Number",
            "type": [
              "string",
              "null"
            ]
          },
          "currency_iso_4217_code": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "type": "null"
              }
            ]
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Exchange Rate"
          },
          "undeposited_funds_currency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "type": "null"
              }
            ]
          },
          "amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Amount"
          },
          "bank_or_undeposited_funds_amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bank Or Undeposited Funds Amount"
          },
          "attachments": {
            "title": "Attachments",
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "payment_method_id": {
            "title": "Payment Method Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "record_status": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              },
              {
                "type": "null"
              }
            ]
          },
          "date": {
            "title": "Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "transaction_date": {
            "title": "Transaction Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "PublicCustomerPrepaymentSchemaPatchIn",
        "type": "object"
      },
      "PublicCustomerPrepaymentApplicationListFilterSchema": {
        "properties": {
          "search": {
            "title": "Search",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "number": {
            "title": "Number",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "customer_id": {
            "title": "Customer Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "start_date": {
            "title": "Start Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "end_date": {
            "title": "End Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "transaction_currency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "type": "null"
              }
            ]
          },
          "record_status": {
            "title": "Record Status",
            "items": {
              "$ref": "#/components/schemas/RecordStatus"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "updated_after": {
            "title": "Updated After",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "updated_before": {
            "title": "Updated Before",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "PublicCustomerPrepaymentApplicationListFilterSchema",
        "type": "object"
      },
      "PagedPublicCustomerPrepaymentApplicationSchemaOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicCustomerPrepaymentApplicationSchemaOut"
            },
            "title": "Items",
            "type": "array"
          },
          "count": {
            "title": "Count",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "count"
        ],
        "title": "PagedPublicCustomerPrepaymentApplicationSchemaOut",
        "type": "object"
      },
      "PublicCustomerPrepaymentApplicationItemOut": {
        "properties": {
          "invoice_number": {
            "title": "Invoice Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "amount": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Amount",
            "type": "string"
          },
          "amount_due": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Amount Due",
            "type": "string"
          },
          "position": {
            "title": "Position",
            "type": "integer"
          }
        },
        "required": [
          "amount",
          "amount_due",
          "position"
        ],
        "title": "PublicCustomerPrepaymentApplicationItemOut",
        "type": "object"
      },
      "PublicCustomerPrepaymentApplicationSchemaOut": {
        "properties": {
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicAttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "classifications": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicRecordClassificationsSchemaOut"
            },
            "title": "Classifications",
            "type": "array"
          },
          "transaction_ids": {
            "items": {
              "type": "integer"
            },
            "title": "Transaction Ids",
            "type": "array"
          },
          "created_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "updated_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "internal_id": {
            "title": "Internal Id",
            "type": "integer"
          },
          "number": {
            "title": "Number",
            "type": "integer"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicCustomerPrepaymentApplicationItemOut"
            },
            "title": "Items",
            "type": "array"
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "company_name": {
            "title": "Company Name",
            "type": "string"
          },
          "company_currency": {
            "title": "Company Currency",
            "type": "string"
          },
          "customer_id": {
            "title": "Customer Id",
            "type": "integer"
          },
          "customer_name": {
            "title": "Customer Name",
            "type": "string"
          },
          "customer_prepayment_number": {
            "title": "Customer Prepayment Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "customer_credit_number": {
            "title": "Customer Credit Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "exchange_rate": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
            "title": "Exchange Rate",
            "type": "string"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "date": {
            "description": "Posting date (GL date) - the date when the transaction is recorded in the general ledger",
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "description": "Transaction date (inception date) - the date when the transaction actually occurred",
            "format": "date",
            "title": "Transaction Date",
            "type": "string"
          },
          "amount": {
            "description": "Total transaction amount",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Amount",
            "type": "string"
          },
          "record_status": {
            "$ref": "#/components/schemas/RecordStatus"
          },
          "created_at": {
            "description": "Date and time the record was created",
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "updated_at": {
            "description": "Date and time the record was last updated",
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "transaction_ids",
          "internal_id",
          "number",
          "items",
          "company_id",
          "company_name",
          "company_currency",
          "customer_id",
          "customer_name",
          "customer_prepayment_number",
          "customer_credit_number",
          "currency_iso_4217_code",
          "exchange_rate",
          "memo",
          "date",
          "transaction_date",
          "amount",
          "record_status",
          "created_at",
          "updated_at"
        ],
        "title": "PublicCustomerPrepaymentApplicationSchemaOut",
        "type": "object"
      },
      "PublicCustomerPrepaymentApplicationItemIn": {
        "properties": {
          "id": {
            "title": "Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "invoice_number": {
            "title": "Invoice Number",
            "type": "integer"
          },
          "amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              }
            ],
            "title": "Amount"
          },
          "position": {
            "title": "Position",
            "type": "integer"
          }
        },
        "required": [
          "invoice_number",
          "amount",
          "position"
        ],
        "title": "PublicCustomerPrepaymentApplicationItemIn",
        "type": "object"
      },
      "PublicCustomerPrepaymentApplicationSchemaCreateIn": {
        "properties": {
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "title": "Transaction Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "customer_prepayment_number": {
            "title": "Customer Prepayment Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "customer_credit_number": {
            "title": "Customer Credit Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              }
            ],
            "title": "Exchange Rate"
          },
          "memo": {
            "default": "",
            "title": "Memo",
            "type": "string"
          },
          "items": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicCustomerPrepaymentApplicationItemIn"
            },
            "title": "Items",
            "type": "array"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          }
        },
        "required": [
          "date",
          "company_id",
          "currency_iso_4217_code",
          "exchange_rate"
        ],
        "title": "PublicCustomerPrepaymentApplicationSchemaCreateIn",
        "type": "object"
      },
      "PublicCustomerPrepaymentApplicationSchemaUpdateIn": {
        "properties": {
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "title": "Transaction Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "customer_prepayment_number": {
            "title": "Customer Prepayment Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "customer_credit_number": {
            "title": "Customer Credit Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              }
            ],
            "title": "Exchange Rate"
          },
          "memo": {
            "default": "",
            "title": "Memo",
            "type": "string"
          },
          "items": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicCustomerPrepaymentApplicationItemIn"
            },
            "title": "Items",
            "type": "array"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          }
        },
        "required": [
          "date",
          "company_id",
          "currency_iso_4217_code",
          "exchange_rate"
        ],
        "title": "PublicCustomerPrepaymentApplicationSchemaUpdateIn",
        "type": "object"
      },
      "PublicCustomerPrepaymentApplicationSchemaPatchIn": {
        "properties": {
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "customer_prepayment_number": {
            "title": "Customer Prepayment Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "customer_credit_number": {
            "title": "Customer Credit Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "currency_iso_4217_code": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "type": "null"
              }
            ]
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Exchange Rate"
          },
          "memo": {
            "title": "Memo",
            "type": [
              "string",
              "null"
            ]
          },
          "items": {
            "title": "Items",
            "items": {
              "$ref": "#/components/schemas/PublicCustomerPrepaymentApplicationItemIn"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "attachments": {
            "title": "Attachments",
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "record_status": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              },
              {
                "type": "null"
              }
            ]
          },
          "date": {
            "title": "Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "transaction_date": {
            "title": "Transaction Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "PublicCustomerPrepaymentApplicationSchemaPatchIn",
        "type": "object"
      },
      "PublicCustomerDepositListFilterSchema": {
        "properties": {
          "search": {
            "title": "Search",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "number": {
            "title": "Number",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "customer_id": {
            "title": "Customer Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "start_date": {
            "title": "Start Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "end_date": {
            "title": "End Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "transaction_currency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "type": "null"
              }
            ]
          },
          "record_status": {
            "title": "Record Status",
            "items": {
              "$ref": "#/components/schemas/RecordStatus"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "updated_after": {
            "title": "Updated After",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "updated_before": {
            "title": "Updated Before",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "PublicCustomerDepositListFilterSchema",
        "type": "object"
      },
      "PagedPublicCustomerDepositSchemaOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicCustomerDepositSchemaOut"
            },
            "title": "Items",
            "type": "array"
          },
          "count": {
            "title": "Count",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "count"
        ],
        "title": "PagedPublicCustomerDepositSchemaOut",
        "type": "object"
      },
      "PublicCustomerDepositItemOut": {
        "properties": {
          "classifications": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicRecordClassificationsSchemaOut"
            },
            "title": "Classifications",
            "type": "array"
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "customer_prepayment_number": {
            "title": "Customer Prepayment Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "customer_payment_number": {
            "title": "Customer Payment Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "cash_sale_number": {
            "title": "Cash Sale Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "vendor_refund_number": {
            "title": "Vendor Refund Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "account_id": {
            "title": "Account Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "description": {
            "title": "Description",
            "type": [
              "string",
              "null"
            ]
          },
          "customer_id": {
            "title": "Customer Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "vendor_id": {
            "title": "Vendor Id",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "customer_prepayment_number",
          "customer_payment_number",
          "cash_sale_number",
          "vendor_refund_number",
          "account_id",
          "description",
          "customer_id",
          "vendor_id"
        ],
        "title": "PublicCustomerDepositItemOut",
        "type": "object"
      },
      "PublicCustomerDepositSchemaOut": {
        "properties": {
          "custom_fields": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CustomFieldValuePairOutputSchema"
            },
            "title": "Custom Fields",
            "type": "array"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicAttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "created_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "updated_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "internal_id": {
            "title": "Internal Id",
            "type": "integer"
          },
          "number": {
            "title": "Number",
            "type": "integer"
          },
          "transaction_id": {
            "title": "Transaction Id",
            "type": "integer"
          },
          "date": {
            "description": "Posting date (GL date) - the date when the transaction is recorded in the general ledger",
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "description": "Transaction date (inception date) - the date when the transaction actually occurred",
            "format": "date",
            "title": "Transaction Date",
            "type": "string"
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "company_name": {
            "title": "Company Name",
            "type": "string"
          },
          "company_currency": {
            "title": "Company Currency",
            "type": "string"
          },
          "account_id": {
            "title": "Account Id",
            "type": "integer"
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "exchange_rate": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
            "title": "Exchange Rate",
            "type": "string"
          },
          "amount": {
            "description": "Total transaction amount",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Amount",
            "type": "string"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicCustomerDepositItemOut"
            },
            "title": "Items",
            "type": "array"
          },
          "record_status": {
            "$ref": "#/components/schemas/RecordStatus"
          },
          "created_at": {
            "description": "Date and time the record was created",
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "updated_at": {
            "description": "Date and time the record was last updated",
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "internal_id",
          "number",
          "transaction_id",
          "date",
          "transaction_date",
          "company_id",
          "company_name",
          "company_currency",
          "account_id",
          "currency_iso_4217_code",
          "exchange_rate",
          "amount",
          "memo",
          "items",
          "record_status",
          "created_at",
          "updated_at"
        ],
        "title": "PublicCustomerDepositSchemaOut",
        "type": "object"
      },
      "PublicCustomerDepositItemIn": {
        "description": "Input schema for Customer Deposit line items in Public API.\n\nItems can reference:\n- A deposit source (cash_sale_number, customer_payment_number, customer_prepayment_number, vendor_refund_number)\n- OR account-based entry with account_number, customer_id, vendor_id, description",
        "properties": {
          "id": {
            "title": "Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "position": {
            "title": "Position",
            "type": "integer"
          },
          "cash_sale_number": {
            "title": "Cash Sale Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "customer_payment_number": {
            "title": "Customer Payment Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "customer_prepayment_number": {
            "title": "Customer Prepayment Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "vendor_refund_number": {
            "title": "Vendor Refund Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "account_number": {
            "title": "Account Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "customer_id": {
            "title": "Customer Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "vendor_id": {
            "title": "Vendor Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "description": {
            "default": "",
            "title": "Description",
            "type": [
              "string",
              "null"
            ]
          },
          "amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              }
            ],
            "title": "Amount"
          }
        },
        "required": [
          "position",
          "amount"
        ],
        "title": "PublicCustomerDepositItemIn",
        "type": "object"
      },
      "PublicCustomerDepositSchemaCreateIn": {
        "description": "Input schema for creating Customer Deposits via Public API.",
        "properties": {
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "title": "Transaction Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "account_number": {
            "title": "Account Number",
            "type": "integer"
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              }
            ],
            "title": "Exchange Rate"
          },
          "memo": {
            "default": "",
            "title": "Memo",
            "type": "string"
          },
          "check_number": {
            "default": "",
            "title": "Check Number",
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicCustomerDepositItemIn"
            },
            "title": "Items",
            "type": "array"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          }
        },
        "required": [
          "date",
          "company_id",
          "account_number",
          "currency_iso_4217_code",
          "exchange_rate",
          "items"
        ],
        "title": "PublicCustomerDepositSchemaCreateIn",
        "type": "object"
      },
      "PublicCustomerDepositSchemaUpdateIn": {
        "description": "Input schema for updating Customer Deposits via Public API.",
        "properties": {
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "title": "Transaction Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "account_number": {
            "title": "Account Number",
            "type": "integer"
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              }
            ],
            "title": "Exchange Rate"
          },
          "memo": {
            "default": "",
            "title": "Memo",
            "type": "string"
          },
          "check_number": {
            "default": "",
            "title": "Check Number",
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicCustomerDepositItemIn"
            },
            "title": "Items",
            "type": "array"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          }
        },
        "required": [
          "date",
          "company_id",
          "account_number",
          "currency_iso_4217_code",
          "exchange_rate",
          "items"
        ],
        "title": "PublicCustomerDepositSchemaUpdateIn",
        "type": "object"
      },
      "PublicCustomerRefundListFilterSchema": {
        "properties": {
          "search": {
            "title": "Search",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "number": {
            "title": "Number",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "customer_id": {
            "title": "Customer Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "start_date": {
            "title": "Start Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "end_date": {
            "title": "End Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "transaction_currency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "type": "null"
              }
            ]
          },
          "record_status": {
            "title": "Record Status",
            "items": {
              "$ref": "#/components/schemas/RecordStatus"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "updated_after": {
            "title": "Updated After",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "updated_before": {
            "title": "Updated Before",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "PublicCustomerRefundListFilterSchema",
        "type": "object"
      },
      "PagedPublicCustomerRefundSchemaOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicCustomerRefundSchemaOut"
            },
            "title": "Items",
            "type": "array"
          },
          "count": {
            "title": "Count",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "count"
        ],
        "title": "PagedPublicCustomerRefundSchemaOut",
        "type": "object"
      },
      "PublicCustomerRefundItemOut": {
        "properties": {
          "customer_credit_number": {
            "title": "Customer Credit Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "customer_prepayment_number": {
            "title": "Customer Prepayment Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "amount": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Amount",
            "type": "string"
          },
          "position": {
            "title": "Position",
            "type": "integer"
          },
          "bank_or_credit_card_amount": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Bank Or Credit Card Amount",
            "type": "string"
          }
        },
        "required": [
          "amount",
          "position",
          "bank_or_credit_card_amount"
        ],
        "title": "PublicCustomerRefundItemOut",
        "type": "object"
      },
      "PublicCustomerRefundSchemaOut": {
        "properties": {
          "custom_fields": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CustomFieldValuePairOutputSchema"
            },
            "title": "Custom Fields",
            "type": "array"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicAttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "classifications": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicRecordClassificationsSchemaOut"
            },
            "title": "Classifications",
            "type": "array"
          },
          "transaction_ids": {
            "items": {
              "type": "integer"
            },
            "title": "Transaction Ids",
            "type": "array"
          },
          "created_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "updated_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "internal_id": {
            "title": "Internal Id",
            "type": "integer"
          },
          "number": {
            "title": "Number",
            "type": "integer"
          },
          "account_number": {
            "title": "Account Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicCustomerRefundItemOut"
            },
            "title": "Items",
            "type": "array"
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "company_name": {
            "title": "Company Name",
            "type": "string"
          },
          "company_currency": {
            "title": "Company Currency",
            "type": "string"
          },
          "customer_id": {
            "title": "Customer Id",
            "type": "integer"
          },
          "customer_name": {
            "title": "Customer Name",
            "type": "string"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "check_number": {
            "title": "Check Number",
            "type": "string"
          },
          "date": {
            "description": "Posting date (GL date) - the date when the transaction is recorded in the general ledger",
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "description": "Transaction date (inception date) - the date when the transaction actually occurred",
            "format": "date",
            "title": "Transaction Date",
            "type": "string"
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "exchange_rate": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
            "title": "Exchange Rate",
            "type": "string"
          },
          "bank_or_credit_card_amount": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Bank Or Credit Card Amount",
            "type": "string"
          },
          "amount": {
            "description": "Total transaction amount",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Amount",
            "type": "string"
          },
          "record_status": {
            "$ref": "#/components/schemas/core__models__base__RecordStatus"
          },
          "payment_method_id": {
            "title": "Payment Method Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "paper_check_status": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/core__models__paper_check__PaperCheck__RecordStatus"
              },
              {
                "type": "null"
              }
            ]
          },
          "created_at": {
            "description": "Date and time the record was created",
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "updated_at": {
            "description": "Date and time the record was last updated",
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "transaction_ids",
          "internal_id",
          "number",
          "account_number",
          "items",
          "company_id",
          "company_name",
          "company_currency",
          "customer_id",
          "customer_name",
          "memo",
          "check_number",
          "date",
          "transaction_date",
          "currency_iso_4217_code",
          "exchange_rate",
          "bank_or_credit_card_amount",
          "amount",
          "record_status",
          "paper_check_status",
          "created_at",
          "updated_at"
        ],
        "title": "PublicCustomerRefundSchemaOut",
        "type": "object"
      },
      "core__models__base__RecordStatus": {
        "enum": [
          "draft",
          "posted",
          "archived"
        ],
        "title": "RecordStatus",
        "type": "string"
      },
      "core__models__paper_check__PaperCheck__RecordStatus": {
        "enum": [
          "printed",
          "not_printed",
          "archived"
        ],
        "title": "RecordStatus",
        "type": "string"
      },
      "PublicCustomerRefundItemIn": {
        "properties": {
          "id": {
            "title": "Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "customer_credit_number": {
            "title": "Customer Credit Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "customer_prepayment_number": {
            "title": "Customer Prepayment Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              }
            ],
            "title": "Amount"
          },
          "position": {
            "title": "Position",
            "type": "integer"
          }
        },
        "required": [
          "amount",
          "position"
        ],
        "title": "PublicCustomerRefundItemIn",
        "type": "object"
      },
      "PublicCustomerRefundSchemaCreateIn": {
        "properties": {
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "title": "Transaction Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "customer_id": {
            "title": "Customer Id",
            "type": "integer"
          },
          "check_number": {
            "default": "",
            "title": "Check Number",
            "type": "string"
          },
          "account_number": {
            "title": "Account Number",
            "type": "integer"
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              }
            ],
            "title": "Exchange Rate"
          },
          "memo": {
            "default": "",
            "title": "Memo",
            "type": "string"
          },
          "items": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicCustomerRefundItemIn"
            },
            "title": "Items",
            "type": "array"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "bank_or_credit_card_amount": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              }
            ],
            "default": "0.00",
            "description": "Bank or credit card amount",
            "title": "Bank Or Credit Card Amount"
          },
          "payment_method_id": {
            "title": "Payment Method Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          }
        },
        "required": [
          "date",
          "company_id",
          "customer_id",
          "account_number",
          "currency_iso_4217_code",
          "exchange_rate"
        ],
        "title": "PublicCustomerRefundSchemaCreateIn",
        "type": "object"
      },
      "PublicCustomerRefundSchemaUpdateIn": {
        "properties": {
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "title": "Transaction Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "customer_id": {
            "title": "Customer Id",
            "type": "integer"
          },
          "check_number": {
            "default": "",
            "title": "Check Number",
            "type": "string"
          },
          "account_number": {
            "title": "Account Number",
            "type": "integer"
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              }
            ],
            "title": "Exchange Rate"
          },
          "memo": {
            "default": "",
            "title": "Memo",
            "type": "string"
          },
          "items": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicCustomerRefundItemIn"
            },
            "title": "Items",
            "type": "array"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "bank_or_credit_card_amount": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              }
            ],
            "default": "0.00",
            "description": "Bank or credit card amount",
            "title": "Bank Or Credit Card Amount"
          },
          "payment_method_id": {
            "title": "Payment Method Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          }
        },
        "required": [
          "date",
          "company_id",
          "customer_id",
          "account_number",
          "currency_iso_4217_code",
          "exchange_rate"
        ],
        "title": "PublicCustomerRefundSchemaUpdateIn",
        "type": "object"
      },
      "PublicCustomerCreditListFilterSchema": {
        "properties": {
          "search": {
            "title": "Search",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "number": {
            "title": "Number",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "customer_id": {
            "title": "Customer Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "start_date": {
            "title": "Start Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "end_date": {
            "title": "End Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "transaction_currency": {
            "title": "Transaction Currency",
            "items": {
              "$ref": "#/components/schemas/SystemCurrencies"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "record_status": {
            "title": "Record Status",
            "items": {
              "$ref": "#/components/schemas/RecordStatus"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "updated_after": {
            "title": "Updated After",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "updated_before": {
            "title": "Updated Before",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "PublicCustomerCreditListFilterSchema",
        "type": "object"
      },
      "ExternalIntegrationSourceOut": {
        "properties": {
          "integration_type": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/IntegrationProviderType"
              },
              {
                "$ref": "#/components/schemas/MigrationProviderType"
              },
              {
                "type": "string"
              }
            ],
            "title": "Integration Type"
          },
          "external_integration_url": {
            "title": "External Integration Url",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "integration_type",
          "external_integration_url"
        ],
        "title": "ExternalIntegrationSourceOut",
        "type": "object"
      },
      "IntegrationProviderSchemaOut": {
        "properties": {
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "integration_type": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/IntegrationProviderType"
              },
              {
                "type": "string"
              }
            ],
            "title": "Integration Type"
          },
          "logo_url": {
            "title": "Logo Url",
            "type": [
              "string",
              "null"
            ]
          },
          "website": {
            "title": "Website",
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "title": "Description",
            "type": [
              "string",
              "null"
            ]
          },
          "category": {
            "title": "Category",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "name",
          "integration_type"
        ],
        "title": "IntegrationProviderSchemaOut",
        "type": "object"
      },
      "IntegrationProviderType": {
        "enum": [
          "bill_com",
          "ramp",
          "zoho",
          "fivetran",
          "stripe",
          "finch",
          "hubspot",
          "brex",
          "cubby",
          "avalara",
          "deel",
          "tax1099",
          "sitelink",
          "postgresql",
          "qlik",
          "power_bi",
          "snowflake",
          "avidxchange",
          "concur",
          "salesforce",
          "hmrc",
          "rippling",
          "monday"
        ],
        "title": "IntegrationProviderType",
        "type": "string"
      },
      "IntegrationRemoteRecordSchemaOut": {
        "properties": {
          "transactional_date": {
            "title": "Transactional Date",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "external_source": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ExternalIntegrationSourceOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "source_id": {
            "title": "Source Id",
            "type": "string"
          },
          "connection_id": {
            "title": "Connection Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "integration_id": {
            "title": "Integration Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "integration_provider": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/IntegrationProviderSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "url": {
            "title": "Url",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "source_id"
        ],
        "title": "IntegrationRemoteRecordSchemaOut",
        "type": "object"
      },
      "MigrationProviderType": {
        "enum": [
          "quickbooks",
          "xero",
          "stripe",
          "netsuite_rutter"
        ],
        "title": "MigrationProviderType",
        "type": "string"
      },
      "PagedPublicCustomerCreditSchemaOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicCustomerCreditSchemaOut"
            },
            "title": "Items",
            "type": "array"
          },
          "count": {
            "title": "Count",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "count"
        ],
        "title": "PagedPublicCustomerCreditSchemaOut",
        "type": "object"
      },
      "PublicCustomerCreditItemOut": {
        "properties": {
          "classifications": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicRecordClassificationsSchemaOut"
            },
            "title": "Classifications",
            "type": "array"
          },
          "item_type": {
            "title": "Item Type",
            "type": [
              "string",
              "null"
            ]
          },
          "hsn_sac_code": {
            "title": "Hsn Sac Code",
            "type": [
              "string",
              "null"
            ]
          },
          "tax": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemTaxDataOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "item_id": {
            "title": "Item Id",
            "type": "integer"
          },
          "quantity": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
            "title": "Quantity",
            "type": "string"
          },
          "rate": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
            "title": "Rate",
            "type": "string"
          },
          "position": {
            "title": "Position",
            "type": "integer"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "company_id": {
            "description": "Optional company for this line. When set to a different company than the record header company_id, DualEntry treats the line as a cross-company (intercompany) allocation and posts IC Due To/From and elimination entries. Omit or set equal to the header company_id for a normal single-company line.",
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "net_amount": {
            "description": "Net amount before tax",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "readOnly": true,
            "title": "Net Amount",
            "type": "string"
          },
          "tax_amount": {
            "description": "Calculated tax amount",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "readOnly": true,
            "title": "Tax Amount",
            "type": "string"
          },
          "gross_amount": {
            "description": "Calculated total amount including tax",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "readOnly": true,
            "title": "Gross Amount",
            "type": "string"
          },
          "amount": {
            "description": "Calculated total amount including tax named amount for backward compatibility",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "readOnly": true,
            "title": "Amount",
            "type": "string"
          }
        },
        "required": [
          "item_id",
          "quantity",
          "rate",
          "position",
          "memo",
          "net_amount",
          "tax_amount",
          "gross_amount",
          "amount"
        ],
        "title": "PublicCustomerCreditItemOut",
        "type": "object"
      },
      "PublicCustomerCreditSchemaOut": {
        "properties": {
          "bill_to_address": {
            "deprecated": true,
            "description": "Deprecated: send the structured billing_address / shipping_address instead.",
            "title": "Bill To Address",
            "type": "string"
          },
          "ship_to_address": {
            "deprecated": true,
            "description": "Deprecated: send the structured billing_address / shipping_address instead.",
            "title": "Ship To Address",
            "type": "string"
          },
          "billing_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "shipping_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "customer_id": {
            "title": "Customer Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "customer_name": {
            "title": "Customer Name",
            "type": [
              "string",
              "null"
            ]
          },
          "transaction_ids": {
            "items": {
              "type": "integer"
            },
            "title": "Transaction Ids",
            "type": "array"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicAttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "custom_fields": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CustomFieldValuePairOutputSchema"
            },
            "title": "Custom Fields",
            "type": "array"
          },
          "integration_remote_records": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/IntegrationRemoteRecordSchemaOut"
            },
            "title": "Integration Remote Records",
            "type": "array"
          },
          "created_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "updated_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "internal_id": {
            "title": "Internal Id",
            "type": "integer"
          },
          "number": {
            "title": "Number",
            "type": "integer"
          },
          "invoice_number": {
            "title": "Invoice Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "cash_sale_number": {
            "title": "Cash Sale Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "date": {
            "description": "Posting date (GL date) - the date when the transaction is recorded in the general ledger",
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "description": "Transaction date (inception date) - the date when the transaction actually occurred",
            "format": "date",
            "title": "Transaction Date",
            "type": "string"
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "company_name": {
            "title": "Company Name",
            "type": "string"
          },
          "company_currency": {
            "title": "Company Currency",
            "type": "string"
          },
          "currency_iso_4217_code": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "type": "null"
              }
            ]
          },
          "exchange_rate": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
            "title": "Exchange Rate",
            "type": "string"
          },
          "amount": {
            "description": "Total transaction amount",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Amount",
            "type": "string"
          },
          "used_amount": {
            "description": "Amount that was already applied to Invoices through Customer Refunds or Customer Prepayment Applications",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Used Amount",
            "type": "string"
          },
          "remaining_amount": {
            "description": "Amount that can be applied to Invoices through Customer Refunds or Customer Prepayment Applications",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Remaining Amount",
            "type": "string"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicCustomerCreditItemOut"
            },
            "title": "Items",
            "type": "array"
          },
          "record_status": {
            "$ref": "#/components/schemas/RecordStatus"
          },
          "contract_id": {
            "title": "Contract Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "contracted": {
            "default": false,
            "title": "Contracted",
            "type": "boolean"
          },
          "created_at": {
            "description": "Date and time the record was created",
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "updated_at": {
            "description": "Date and time the record was last updated",
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "bill_to_address",
          "ship_to_address",
          "transaction_ids",
          "internal_id",
          "number",
          "invoice_number",
          "cash_sale_number",
          "date",
          "transaction_date",
          "company_id",
          "company_name",
          "company_currency",
          "currency_iso_4217_code",
          "exchange_rate",
          "amount",
          "used_amount",
          "remaining_amount",
          "memo",
          "items",
          "record_status",
          "created_at",
          "updated_at"
        ],
        "title": "PublicCustomerCreditSchemaOut",
        "type": "object"
      },
      "PublicCustomerCreditItemIn": {
        "description": "Input schema for customer credit item lines.",
        "properties": {
          "tax": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemTaxData"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "title": "Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "position": {
            "title": "Position",
            "type": "integer"
          },
          "item_id": {
            "title": "Item Id",
            "type": "integer"
          },
          "rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
                "type": "string"
              }
            ],
            "title": "Rate"
          },
          "quantity": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
                "type": "string"
              }
            ],
            "title": "Quantity"
          },
          "memo": {
            "default": "",
            "title": "Memo",
            "type": "string"
          },
          "classifications": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicRecordClassificationsSchemaOut"
            },
            "title": "Classifications",
            "type": "array"
          },
          "company_id": {
            "description": "Optional company for this line. When set to a different company than the record header company_id, DualEntry treats the line as a cross-company (intercompany) allocation and posts IC Due To/From and elimination entries. Omit or set equal to the header company_id for a normal single-company line.",
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "position",
          "item_id",
          "rate",
          "quantity"
        ],
        "title": "PublicCustomerCreditItemIn",
        "type": "object"
      },
      "PublicCustomerCreditSchemaCreateIn": {
        "description": "Input schema for creating Customer Credit records.",
        "properties": {
          "bill_to_address": {
            "default": "",
            "deprecated": true,
            "description": "Deprecated: send the structured billing_address / shipping_address instead.",
            "title": "Bill To Address",
            "type": [
              "string",
              "null"
            ]
          },
          "ship_to_address": {
            "default": "",
            "deprecated": true,
            "description": "Deprecated: send the structured billing_address / shipping_address instead.",
            "title": "Ship To Address",
            "type": [
              "string",
              "null"
            ]
          },
          "billing_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "shipping_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "title": "Transaction Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "invoice_number": {
            "title": "Invoice Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "cash_sale_number": {
            "title": "Cash Sale Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "customer_id": {
            "title": "Customer Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "memo": {
            "default": "",
            "title": "Memo",
            "type": "string"
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              }
            ],
            "title": "Exchange Rate"
          },
          "items": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicCustomerCreditItemIn"
            },
            "title": "Items",
            "type": "array"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          },
          "contract_id": {
            "title": "Contract Id",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "date",
          "company_id",
          "currency_iso_4217_code",
          "exchange_rate"
        ],
        "title": "PublicCustomerCreditSchemaCreateIn",
        "type": "object"
      },
      "PublicCustomerCreditSchemaUpdateIn": {
        "description": "Input schema for updating Customer Credit records.",
        "properties": {
          "bill_to_address": {
            "default": "",
            "deprecated": true,
            "description": "Deprecated: send the structured billing_address / shipping_address instead.",
            "title": "Bill To Address",
            "type": [
              "string",
              "null"
            ]
          },
          "ship_to_address": {
            "default": "",
            "deprecated": true,
            "description": "Deprecated: send the structured billing_address / shipping_address instead.",
            "title": "Ship To Address",
            "type": [
              "string",
              "null"
            ]
          },
          "billing_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "shipping_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "title": "Transaction Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "invoice_number": {
            "title": "Invoice Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "cash_sale_number": {
            "title": "Cash Sale Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "customer_id": {
            "title": "Customer Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "memo": {
            "default": "",
            "title": "Memo",
            "type": "string"
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              }
            ],
            "title": "Exchange Rate"
          },
          "items": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicCustomerCreditItemIn"
            },
            "title": "Items",
            "type": "array"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          },
          "contract_id": {
            "title": "Contract Id",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "date",
          "company_id",
          "currency_iso_4217_code",
          "exchange_rate"
        ],
        "title": "PublicCustomerCreditSchemaUpdateIn",
        "type": "object"
      },
      "PublicCustomerCreditSchemaPatchIn": {
        "properties": {
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "invoice_number": {
            "title": "Invoice Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "cash_sale_number": {
            "title": "Cash Sale Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "customer_id": {
            "title": "Customer Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "currency_iso_4217_code": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "type": "null"
              }
            ]
          },
          "memo": {
            "title": "Memo",
            "type": [
              "string",
              "null"
            ]
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Exchange Rate"
          },
          "items": {
            "title": "Items",
            "items": {
              "$ref": "#/components/schemas/PublicCustomerCreditItemIn"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "attachments": {
            "title": "Attachments",
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "record_status": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              },
              {
                "type": "null"
              }
            ]
          },
          "contract_id": {
            "title": "Contract Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "bill_to_address": {
            "deprecated": true,
            "description": "Deprecated: send the structured billing_address / shipping_address instead.",
            "title": "Bill To Address",
            "type": [
              "string",
              "null"
            ]
          },
          "billing_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "ship_to_address": {
            "deprecated": true,
            "description": "Deprecated: send the structured billing_address / shipping_address instead.",
            "title": "Ship To Address",
            "type": [
              "string",
              "null"
            ]
          },
          "shipping_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "date": {
            "title": "Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "transaction_date": {
            "title": "Transaction Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "PublicCustomerCreditSchemaPatchIn",
        "type": "object"
      },
      "PublicCashSaleListFilterSchema": {
        "properties": {
          "search": {
            "title": "Search",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "number": {
            "title": "Number",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "customer_id": {
            "title": "Customer Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "start_date": {
            "title": "Start Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "end_date": {
            "title": "End Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "transaction_currency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "type": "null"
              }
            ]
          },
          "record_status": {
            "title": "Record Status",
            "items": {
              "$ref": "#/components/schemas/RecordStatus"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "updated_after": {
            "title": "Updated After",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "updated_before": {
            "title": "Updated Before",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "PublicCashSaleListFilterSchema",
        "type": "object"
      },
      "PagedPublicCashSaleSchemaOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicCashSaleSchemaOut"
            },
            "title": "Items",
            "type": "array"
          },
          "count": {
            "title": "Count",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "count"
        ],
        "title": "PagedPublicCashSaleSchemaOut",
        "type": "object"
      },
      "PublicCashSaleItemOut": {
        "properties": {
          "classifications": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicRecordClassificationsSchemaOut"
            },
            "title": "Classifications",
            "type": "array"
          },
          "item_type": {
            "title": "Item Type",
            "type": [
              "string",
              "null"
            ]
          },
          "hsn_sac_code": {
            "title": "Hsn Sac Code",
            "type": [
              "string",
              "null"
            ]
          },
          "tax": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemTaxDataOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "item_id": {
            "title": "Item Id",
            "type": "integer"
          },
          "quantity": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
            "title": "Quantity",
            "type": "string"
          },
          "rate": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
            "title": "Rate",
            "type": "string"
          },
          "position": {
            "title": "Position",
            "type": "integer"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "bank_or_undeposited_account_amount": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Bank Or Undeposited Account Amount",
            "type": "string"
          },
          "company_id": {
            "description": "Optional company for this line. When set to a different company than the record header company_id, DualEntry treats the line as a cross-company (intercompany) allocation and posts IC Due To/From and elimination entries. Omit or set equal to the header company_id for a normal single-company line.",
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "net_amount": {
            "description": "Net amount before tax",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "readOnly": true,
            "title": "Net Amount",
            "type": "string"
          },
          "tax_amount": {
            "description": "Calculated tax amount",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "readOnly": true,
            "title": "Tax Amount",
            "type": "string"
          },
          "gross_amount": {
            "description": "Calculated total amount including tax",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "readOnly": true,
            "title": "Gross Amount",
            "type": "string"
          },
          "amount": {
            "description": "Calculated total amount including tax named amount for backward compatibility",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "readOnly": true,
            "title": "Amount",
            "type": "string"
          }
        },
        "required": [
          "id",
          "item_id",
          "quantity",
          "rate",
          "position",
          "memo",
          "bank_or_undeposited_account_amount",
          "net_amount",
          "tax_amount",
          "gross_amount",
          "amount"
        ],
        "title": "PublicCashSaleItemOut",
        "type": "object"
      },
      "PublicCashSaleSchemaOut": {
        "properties": {
          "bill_to_address": {
            "deprecated": true,
            "description": "Deprecated: send the structured billing_address / shipping_address instead.",
            "title": "Bill To Address",
            "type": "string"
          },
          "ship_to_address": {
            "deprecated": true,
            "description": "Deprecated: send the structured billing_address / shipping_address instead.",
            "title": "Ship To Address",
            "type": "string"
          },
          "billing_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "shipping_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "custom_fields": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CustomFieldValuePairOutputSchema"
            },
            "title": "Custom Fields",
            "type": "array"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicAttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "classifications": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicRecordClassificationsSchemaOut"
            },
            "title": "Classifications",
            "type": "array"
          },
          "transaction_ids": {
            "items": {
              "type": "integer"
            },
            "title": "Transaction Ids",
            "type": "array"
          },
          "bank_match_status": {
            "title": "Bank Match Status",
            "type": [
              "string",
              "null"
            ]
          },
          "reconciliation_status": {
            "title": "Reconciliation Status",
            "type": [
              "string",
              "null"
            ]
          },
          "created_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "updated_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "internal_id": {
            "title": "Internal Id",
            "type": "integer"
          },
          "number": {
            "title": "Number",
            "type": "integer"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicCashSaleItemOut"
            },
            "title": "Items",
            "type": "array"
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "company_name": {
            "title": "Company Name",
            "type": "string"
          },
          "company_currency": {
            "title": "Company Currency",
            "type": "string"
          },
          "customer_id": {
            "title": "Customer Id",
            "type": "integer"
          },
          "customer_name": {
            "title": "Customer Name",
            "type": "string"
          },
          "account_number": {
            "title": "Account Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "amount": {
            "description": "Total transaction amount",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Amount",
            "type": "string"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "check_number": {
            "title": "Check Number",
            "type": "string"
          },
          "date": {
            "description": "Posting date (GL date) - the date when the transaction is recorded in the general ledger",
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "description": "Transaction date (inception date) - the date when the transaction actually occurred",
            "format": "date",
            "title": "Transaction Date",
            "type": "string"
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "exchange_rate": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
            "title": "Exchange Rate",
            "type": "string"
          },
          "undeposited_funds_currency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "type": "null"
              }
            ]
          },
          "bank_or_undeposited_account_amount": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Bank Or Undeposited Account Amount",
            "type": "string"
          },
          "payment_method_id": {
            "title": "Payment Method Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "record_status": {
            "$ref": "#/components/schemas/RecordStatus"
          },
          "created_at": {
            "description": "Date and time the record was created",
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "updated_at": {
            "description": "Date and time the record was last updated",
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "bill_to_address",
          "ship_to_address",
          "transaction_ids",
          "internal_id",
          "number",
          "items",
          "company_id",
          "company_name",
          "company_currency",
          "customer_id",
          "customer_name",
          "account_number",
          "amount",
          "memo",
          "check_number",
          "date",
          "transaction_date",
          "currency_iso_4217_code",
          "exchange_rate",
          "undeposited_funds_currency",
          "bank_or_undeposited_account_amount",
          "record_status",
          "created_at",
          "updated_at"
        ],
        "title": "PublicCashSaleSchemaOut",
        "type": "object"
      },
      "PublicCashSaleItemIn": {
        "properties": {
          "tax": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemTaxData"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "title": "Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "item_id": {
            "title": "Item Id",
            "type": "integer"
          },
          "quantity": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
                "type": "string"
              }
            ],
            "title": "Quantity"
          },
          "rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
                "type": "string"
              }
            ],
            "title": "Rate"
          },
          "position": {
            "title": "Position",
            "type": "integer"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "classifications": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicRecordClassificationsSchemaOut"
            },
            "title": "Classifications",
            "type": "array"
          },
          "company_id": {
            "description": "Optional company for this line. When set to a different company than the record header company_id, DualEntry treats the line as a cross-company (intercompany) allocation and posts IC Due To/From and elimination entries. Omit or set equal to the header company_id for a normal single-company line.",
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "item_id",
          "quantity",
          "rate",
          "position",
          "memo"
        ],
        "title": "PublicCashSaleItemIn",
        "type": "object"
      },
      "PublicCashSaleSchemaCreateIn": {
        "properties": {
          "bill_to_address": {
            "default": "",
            "deprecated": true,
            "description": "Deprecated: send the structured billing_address / shipping_address instead.",
            "title": "Bill To Address",
            "type": [
              "string",
              "null"
            ]
          },
          "ship_to_address": {
            "default": "",
            "deprecated": true,
            "description": "Deprecated: send the structured billing_address / shipping_address instead.",
            "title": "Ship To Address",
            "type": [
              "string",
              "null"
            ]
          },
          "billing_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "shipping_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "title": "Transaction Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "memo": {
            "default": "",
            "title": "Memo",
            "type": "string"
          },
          "check_number": {
            "default": "",
            "title": "Check Number",
            "type": "string"
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "customer_id": {
            "title": "Customer Id",
            "type": "integer"
          },
          "account_number": {
            "title": "Account Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              }
            ],
            "title": "Exchange Rate"
          },
          "bank_or_undeposited_account_amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              }
            ],
            "title": "Bank Or Undeposited Account Amount"
          },
          "undeposited_funds_currency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "type": "null"
              }
            ]
          },
          "items": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicCashSaleItemIn"
            },
            "title": "Items",
            "type": "array"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "payment_method_id": {
            "title": "Payment Method Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          }
        },
        "required": [
          "date",
          "company_id",
          "customer_id",
          "currency_iso_4217_code",
          "exchange_rate",
          "bank_or_undeposited_account_amount"
        ],
        "title": "PublicCashSaleSchemaCreateIn",
        "type": "object"
      },
      "PublicCashSaleSchemaUpdateIn": {
        "properties": {
          "bill_to_address": {
            "default": "",
            "deprecated": true,
            "description": "Deprecated: send the structured billing_address / shipping_address instead.",
            "title": "Bill To Address",
            "type": [
              "string",
              "null"
            ]
          },
          "ship_to_address": {
            "default": "",
            "deprecated": true,
            "description": "Deprecated: send the structured billing_address / shipping_address instead.",
            "title": "Ship To Address",
            "type": [
              "string",
              "null"
            ]
          },
          "billing_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "shipping_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "title": "Transaction Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "memo": {
            "default": "",
            "title": "Memo",
            "type": "string"
          },
          "check_number": {
            "default": "",
            "title": "Check Number",
            "type": "string"
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "customer_id": {
            "title": "Customer Id",
            "type": "integer"
          },
          "account_number": {
            "title": "Account Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              }
            ],
            "title": "Exchange Rate"
          },
          "bank_or_undeposited_account_amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              }
            ],
            "title": "Bank Or Undeposited Account Amount"
          },
          "undeposited_funds_currency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "type": "null"
              }
            ]
          },
          "items": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicCashSaleItemIn"
            },
            "title": "Items",
            "type": "array"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "payment_method_id": {
            "title": "Payment Method Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          }
        },
        "required": [
          "date",
          "company_id",
          "customer_id",
          "currency_iso_4217_code",
          "exchange_rate",
          "bank_or_undeposited_account_amount"
        ],
        "title": "PublicCashSaleSchemaUpdateIn",
        "type": "object"
      },
      "PublicCustomerPaymentListFilterSchema": {
        "properties": {
          "search": {
            "title": "Search",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "number": {
            "title": "Number",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "customer_id": {
            "title": "Customer Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "start_date": {
            "title": "Start Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "end_date": {
            "title": "End Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "transaction_currency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "type": "null"
              }
            ]
          },
          "record_status": {
            "title": "Record Status",
            "items": {
              "$ref": "#/components/schemas/RecordStatus"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "invoice_number": {
            "title": "Invoice Number",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "customer_credit_number": {
            "title": "Customer Credit Number",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "updated_after": {
            "title": "Updated After",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "updated_before": {
            "title": "Updated Before",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "PublicCustomerPaymentListFilterSchema",
        "type": "object"
      },
      "PagedPublicCustomerPaymentSchemaOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicCustomerPaymentSchemaOut"
            },
            "title": "Items",
            "type": "array"
          },
          "count": {
            "title": "Count",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "count"
        ],
        "title": "PagedPublicCustomerPaymentSchemaOut",
        "type": "object"
      },
      "PublicCustomerPaymentItemOut": {
        "properties": {
          "invoice_number": {
            "title": "Invoice Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "customer_credit_number": {
            "title": "Customer Credit Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "account_id": {
            "title": "Account Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "description": {
            "title": "Description",
            "type": [
              "string",
              "null"
            ]
          },
          "customer_id": {
            "title": "Customer Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "vendor_id": {
            "title": "Vendor Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "amount": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Amount",
            "type": "string"
          },
          "position": {
            "title": "Position",
            "type": "integer"
          },
          "bank_or_undeposited_account_amount": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Bank Or Undeposited Account Amount",
            "type": "string"
          }
        },
        "required": [
          "amount",
          "position",
          "bank_or_undeposited_account_amount"
        ],
        "title": "PublicCustomerPaymentItemOut",
        "type": "object"
      },
      "PublicCustomerPaymentSchemaOut": {
        "properties": {
          "custom_fields": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CustomFieldValuePairOutputSchema"
            },
            "title": "Custom Fields",
            "type": "array"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicAttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "classifications": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicRecordClassificationsSchemaOut"
            },
            "title": "Classifications",
            "type": "array"
          },
          "transaction_ids": {
            "items": {
              "type": "integer"
            },
            "title": "Transaction Ids",
            "type": "array"
          },
          "bank_match_status": {
            "title": "Bank Match Status",
            "type": [
              "string",
              "null"
            ]
          },
          "reconciliation_status": {
            "title": "Reconciliation Status",
            "type": [
              "string",
              "null"
            ]
          },
          "created_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "updated_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "internal_id": {
            "title": "Internal Id",
            "type": "integer"
          },
          "number": {
            "title": "Number",
            "type": "integer"
          },
          "account_number": {
            "title": "Account Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicCustomerPaymentItemOut"
            },
            "title": "Items",
            "type": "array"
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "company_name": {
            "title": "Company Name",
            "type": "string"
          },
          "company_currency": {
            "title": "Company Currency",
            "type": "string"
          },
          "customer_id": {
            "title": "Customer Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "customer_name": {
            "title": "Customer Name",
            "type": [
              "string",
              "null"
            ]
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "check_number": {
            "title": "Check Number",
            "type": "string"
          },
          "date": {
            "description": "Posting date (GL date) - the date when the transaction is recorded in the general ledger",
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "description": "Transaction date (inception date) - the date when the transaction actually occurred",
            "format": "date",
            "title": "Transaction Date",
            "type": "string"
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "exchange_rate": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
            "title": "Exchange Rate",
            "type": "string"
          },
          "undeposited_funds_currency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "type": "null"
              }
            ]
          },
          "bank_or_undeposited_account_amount": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Bank Or Undeposited Account Amount",
            "type": "string"
          },
          "amount": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Amount",
            "type": "string"
          },
          "unassigned_amount": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Unassigned Amount",
            "type": "string"
          },
          "record_status": {
            "$ref": "#/components/schemas/core__models__base__RecordStatus"
          },
          "customer_deposits": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CustomerDepositDataPublicSchema"
            },
            "title": "Customer Deposits",
            "type": "array"
          },
          "payment_method_id": {
            "title": "Payment Method Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "paper_check_status": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/core__models__paper_check__PaperCheck__RecordStatus"
              },
              {
                "type": "null"
              }
            ]
          },
          "created_at": {
            "description": "Date and time the record was created",
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "updated_at": {
            "description": "Date and time the record was last updated",
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "transaction_ids",
          "internal_id",
          "number",
          "account_number",
          "items",
          "company_id",
          "company_name",
          "company_currency",
          "memo",
          "check_number",
          "date",
          "transaction_date",
          "currency_iso_4217_code",
          "exchange_rate",
          "undeposited_funds_currency",
          "bank_or_undeposited_account_amount",
          "amount",
          "unassigned_amount",
          "record_status",
          "paper_check_status",
          "created_at",
          "updated_at"
        ],
        "title": "PublicCustomerPaymentSchemaOut",
        "type": "object"
      },
      "PublicCustomerPaymentItemIn": {
        "properties": {
          "id": {
            "title": "Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "invoice_number": {
            "title": "Invoice Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "customer_credit_number": {
            "title": "Customer Credit Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "account_number": {
            "title": "Account Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "customer_id": {
            "title": "Customer Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "vendor_id": {
            "title": "Vendor Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "description": {
            "default": "",
            "title": "Description",
            "type": [
              "string",
              "null"
            ]
          },
          "amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              }
            ],
            "title": "Amount"
          },
          "position": {
            "title": "Position",
            "type": "integer"
          }
        },
        "required": [
          "amount",
          "position"
        ],
        "title": "PublicCustomerPaymentItemIn",
        "type": "object"
      },
      "PublicCustomerPaymentSchemaCreateIn": {
        "properties": {
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "title": "Transaction Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "customer_id": {
            "title": "Customer Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "check_number": {
            "title": "Check Number",
            "type": "string"
          },
          "account_number": {
            "title": "Account Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              }
            ],
            "title": "Exchange Rate"
          },
          "undeposited_funds_currency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "type": "null"
              }
            ]
          },
          "unassigned_amount": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              }
            ],
            "default": "0.00",
            "description": "Unassigned amount, in bank/undeposited currency",
            "title": "Unassigned Amount"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "items": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicCustomerPaymentItemIn"
            },
            "title": "Items",
            "type": "array"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "payment_method_id": {
            "title": "Payment Method Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          },
          "line_date_validation": {
            "default": true,
            "title": "Line Date Validation",
            "type": "boolean"
          }
        },
        "required": [
          "date",
          "company_id",
          "check_number",
          "currency_iso_4217_code",
          "exchange_rate",
          "memo"
        ],
        "title": "PublicCustomerPaymentSchemaCreateIn",
        "type": "object"
      },
      "PublicCustomerPaymentSchemaUpdateIn": {
        "properties": {
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "title": "Transaction Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "customer_id": {
            "title": "Customer Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "check_number": {
            "title": "Check Number",
            "type": "string"
          },
          "account_number": {
            "title": "Account Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              }
            ],
            "title": "Exchange Rate"
          },
          "undeposited_funds_currency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "type": "null"
              }
            ]
          },
          "unassigned_amount": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              }
            ],
            "default": "0.00",
            "description": "Unassigned amount, in bank/undeposited currency",
            "title": "Unassigned Amount"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "items": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicCustomerPaymentItemIn"
            },
            "title": "Items",
            "type": "array"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "payment_method_id": {
            "title": "Payment Method Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          },
          "line_date_validation": {
            "default": true,
            "title": "Line Date Validation",
            "type": "boolean"
          }
        },
        "required": [
          "date",
          "company_id",
          "check_number",
          "currency_iso_4217_code",
          "exchange_rate",
          "memo"
        ],
        "title": "PublicCustomerPaymentSchemaUpdateIn",
        "type": "object"
      },
      "PublicCustomerPaymentSchemaPatchIn": {
        "description": "Partial update payload for PATCH /public/customer-payments/{number}/.\n\nEvery field is optional: send only the fields you want to change.\nUnset fields are left untouched on the existing record.",
        "properties": {
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "customer_id": {
            "title": "Customer Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "check_number": {
            "title": "Check Number",
            "type": [
              "string",
              "null"
            ]
          },
          "account_number": {
            "title": "Account Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "currency_iso_4217_code": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "type": "null"
              }
            ]
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Exchange Rate"
          },
          "undeposited_funds_currency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "type": "null"
              }
            ]
          },
          "unassigned_amount": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Unassigned Amount"
          },
          "memo": {
            "title": "Memo",
            "type": [
              "string",
              "null"
            ]
          },
          "items": {
            "title": "Items",
            "items": {
              "$ref": "#/components/schemas/PublicCustomerPaymentItemIn"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "attachments": {
            "title": "Attachments",
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "payment_method_id": {
            "title": "Payment Method Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "record_status": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              },
              {
                "type": "null"
              }
            ]
          },
          "line_date_validation": {
            "title": "Line Date Validation",
            "type": [
              "boolean",
              "null"
            ]
          },
          "date": {
            "title": "Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "transaction_date": {
            "title": "Transaction Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "PublicCustomerPaymentSchemaPatchIn",
        "type": "object"
      },
      "PublicVendorPaymentListFilterSchema": {
        "properties": {
          "search": {
            "title": "Search",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "number": {
            "title": "Number",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "vendor_id": {
            "title": "Vendor Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "start_date": {
            "title": "Start Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "end_date": {
            "title": "End Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "transaction_currency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "type": "null"
              }
            ]
          },
          "record_status": {
            "title": "Record Status",
            "items": {
              "$ref": "#/components/schemas/RecordStatus"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "bill_number": {
            "title": "Bill Number",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "vendor_credit_number": {
            "title": "Vendor Credit Number",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "updated_after": {
            "title": "Updated After",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "updated_before": {
            "title": "Updated Before",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "PublicVendorPaymentListFilterSchema",
        "type": "object"
      },
      "PagedPublicVendorPaymentSchemaOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicVendorPaymentSchemaOut"
            },
            "title": "Items",
            "type": "array"
          },
          "count": {
            "title": "Count",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "count"
        ],
        "title": "PagedPublicVendorPaymentSchemaOut",
        "type": "object"
      },
      "PublicVendorPaymentItemOut": {
        "properties": {
          "bill_number": {
            "title": "Bill Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "vendor_credit_number": {
            "title": "Vendor Credit Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "journal_entry_line_id": {
            "title": "Journal Entry Line Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "intercompany_journal_entry_line_id": {
            "title": "Intercompany Journal Entry Line Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "amount": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Amount",
            "type": "string"
          },
          "position": {
            "title": "Position",
            "type": "integer"
          },
          "bank_or_credit_card_amount": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Bank Or Credit Card Amount",
            "type": "string"
          }
        },
        "required": [
          "amount",
          "position",
          "bank_or_credit_card_amount"
        ],
        "title": "PublicVendorPaymentItemOut",
        "type": "object"
      },
      "PublicVendorPaymentSchemaOut": {
        "properties": {
          "custom_fields": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CustomFieldValuePairOutputSchema"
            },
            "title": "Custom Fields",
            "type": "array"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicAttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "classifications": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicRecordClassificationsSchemaOut"
            },
            "title": "Classifications",
            "type": "array"
          },
          "transaction_ids": {
            "items": {
              "type": "integer"
            },
            "title": "Transaction Ids",
            "type": "array"
          },
          "created_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "updated_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "internal_id": {
            "title": "Internal Id",
            "type": "integer"
          },
          "number": {
            "title": "Number",
            "type": "integer"
          },
          "account_number": {
            "title": "Account Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicVendorPaymentItemOut"
            },
            "title": "Items",
            "type": "array"
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "company_name": {
            "title": "Company Name",
            "type": "string"
          },
          "company_currency": {
            "title": "Company Currency",
            "type": "string"
          },
          "vendor_id": {
            "title": "Vendor Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "vendor_name": {
            "title": "Vendor Name",
            "type": [
              "string",
              "null"
            ]
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "check_number": {
            "title": "Check Number",
            "type": "string"
          },
          "date": {
            "description": "Posting date (GL date) - the date when the transaction is recorded in the general ledger",
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "description": "Transaction date (inception date) - the date when the transaction actually occurred",
            "format": "date",
            "title": "Transaction Date",
            "type": "string"
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "exchange_rate": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
            "title": "Exchange Rate",
            "type": "string"
          },
          "bank_or_credit_card_amount": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Bank Or Credit Card Amount",
            "type": "string"
          },
          "amount": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Amount",
            "type": "string"
          },
          "record_status": {
            "$ref": "#/components/schemas/core__models__base__RecordStatus"
          },
          "payment_method_id": {
            "title": "Payment Method Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "paper_check_status": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/core__models__paper_check__PaperCheck__RecordStatus"
              },
              {
                "type": "null"
              }
            ]
          },
          "created_at": {
            "description": "Date and time the record was created",
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "updated_at": {
            "description": "Date and time the record was last updated",
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "transaction_ids",
          "internal_id",
          "number",
          "account_number",
          "items",
          "company_id",
          "company_name",
          "company_currency",
          "memo",
          "check_number",
          "date",
          "transaction_date",
          "currency_iso_4217_code",
          "exchange_rate",
          "bank_or_credit_card_amount",
          "amount",
          "record_status",
          "paper_check_status",
          "created_at",
          "updated_at"
        ],
        "title": "PublicVendorPaymentSchemaOut",
        "type": "object"
      },
      "PublicVendorPaymentItemIn": {
        "properties": {
          "id": {
            "title": "Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "bill_number": {
            "title": "Bill Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "vendor_credit_number": {
            "title": "Vendor Credit Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "journal_entry_line_id": {
            "title": "Journal Entry Line Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "intercompany_journal_entry_line_id": {
            "title": "Intercompany Journal Entry Line Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              }
            ],
            "title": "Amount"
          },
          "position": {
            "title": "Position",
            "type": "integer"
          }
        },
        "required": [
          "amount",
          "position"
        ],
        "title": "PublicVendorPaymentItemIn",
        "type": "object"
      },
      "PublicVendorPaymentSchemaCreateIn": {
        "properties": {
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "title": "Transaction Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "check_number": {
            "title": "Check Number",
            "type": "string"
          },
          "account_number": {
            "title": "Account Number",
            "type": "integer"
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              }
            ],
            "title": "Exchange Rate"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "items": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicVendorPaymentItemIn"
            },
            "title": "Items",
            "type": "array"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "bank_or_credit_card_amount": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              }
            ],
            "default": "0.00",
            "description": "Bank or credit card amount",
            "title": "Bank Or Credit Card Amount"
          },
          "payment_method_id": {
            "title": "Payment Method Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          },
          "line_date_validation": {
            "default": true,
            "title": "Line Date Validation",
            "type": "boolean"
          }
        },
        "required": [
          "date",
          "company_id",
          "check_number",
          "account_number",
          "currency_iso_4217_code",
          "exchange_rate",
          "memo"
        ],
        "title": "PublicVendorPaymentSchemaCreateIn",
        "type": "object"
      },
      "PublicVendorPaymentSchemaUpdateIn": {
        "properties": {
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "title": "Transaction Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "check_number": {
            "title": "Check Number",
            "type": "string"
          },
          "account_number": {
            "title": "Account Number",
            "type": "integer"
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              }
            ],
            "title": "Exchange Rate"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "items": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicVendorPaymentItemIn"
            },
            "title": "Items",
            "type": "array"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "bank_or_credit_card_amount": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              }
            ],
            "default": "0.00",
            "description": "Bank or credit card amount",
            "title": "Bank Or Credit Card Amount"
          },
          "payment_method_id": {
            "title": "Payment Method Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          },
          "line_date_validation": {
            "default": true,
            "title": "Line Date Validation",
            "type": "boolean"
          }
        },
        "required": [
          "date",
          "company_id",
          "check_number",
          "account_number",
          "currency_iso_4217_code",
          "exchange_rate",
          "memo"
        ],
        "title": "PublicVendorPaymentSchemaUpdateIn",
        "type": "object"
      },
      "PublicVendorPrepaymentListFilterSchema": {
        "properties": {
          "search": {
            "title": "Search",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "number": {
            "title": "Number",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "vendor_id": {
            "title": "Vendor Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "start_date": {
            "title": "Start Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "end_date": {
            "title": "End Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "transaction_currency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "type": "null"
              }
            ]
          },
          "record_status": {
            "title": "Record Status",
            "items": {
              "$ref": "#/components/schemas/RecordStatus"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "recurring_record_id": {
            "title": "Recurring Record Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "updated_after": {
            "title": "Updated After",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "updated_before": {
            "title": "Updated Before",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "PublicVendorPrepaymentListFilterSchema",
        "type": "object"
      },
      "PagedPublicVendorPrepaymentSchemaOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicVendorPrepaymentSchemaOut"
            },
            "title": "Items",
            "type": "array"
          },
          "count": {
            "title": "Count",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "count"
        ],
        "title": "PagedPublicVendorPrepaymentSchemaOut",
        "type": "object"
      },
      "PublicVendorPrepaymentSchemaOut": {
        "properties": {
          "custom_fields": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CustomFieldValuePairOutputSchema"
            },
            "title": "Custom Fields",
            "type": "array"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicAttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "bank_match_status": {
            "title": "Bank Match Status",
            "type": [
              "string",
              "null"
            ]
          },
          "reconciliation_status": {
            "title": "Reconciliation Status",
            "type": [
              "string",
              "null"
            ]
          },
          "internal_id": {
            "title": "Internal Id",
            "type": "integer"
          },
          "transaction_ids": {
            "items": {
              "type": "integer"
            },
            "title": "Transaction Ids",
            "type": "array"
          },
          "number": {
            "title": "Number",
            "type": "integer"
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "company_name": {
            "title": "Company Name",
            "type": "string"
          },
          "company_currency": {
            "title": "Company Currency",
            "type": "string"
          },
          "vendor_id": {
            "title": "Vendor Id",
            "type": "integer"
          },
          "vendor_name": {
            "title": "Vendor Name",
            "type": "string"
          },
          "account_number": {
            "title": "Account Number",
            "type": "integer"
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "format": "date",
            "title": "Transaction Date",
            "type": "string"
          },
          "check_number": {
            "title": "Check Number",
            "type": "string"
          },
          "amount": {
            "description": "Total transaction amount",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Amount",
            "type": "string"
          },
          "used_amount": {
            "description": "Amount that was already applied to Bills",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Used Amount",
            "type": "string"
          },
          "remaining_amount": {
            "description": "Amount that can be applied to Bills",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Remaining Amount",
            "type": "string"
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "exchange_rate": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
            "title": "Exchange Rate",
            "type": "string"
          },
          "bank_or_undeposited_funds_amount": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Bank Or Undeposited Funds Amount",
            "type": "string"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "record_status": {
            "$ref": "#/components/schemas/core__models__base__RecordStatus"
          },
          "payment_method_id": {
            "title": "Payment Method Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "paper_check_status": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/core__models__paper_check__PaperCheck__RecordStatus"
              },
              {
                "type": "null"
              }
            ]
          },
          "recurring_record_id": {
            "title": "Recurring Record Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "created_at": {
            "description": "Date and time the record was created",
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "updated_at": {
            "description": "Date and time the record was last updated",
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "internal_id",
          "transaction_ids",
          "number",
          "company_id",
          "company_name",
          "company_currency",
          "vendor_id",
          "vendor_name",
          "account_number",
          "date",
          "transaction_date",
          "check_number",
          "amount",
          "used_amount",
          "remaining_amount",
          "currency_iso_4217_code",
          "exchange_rate",
          "bank_or_undeposited_funds_amount",
          "memo",
          "record_status",
          "paper_check_status",
          "created_at",
          "updated_at"
        ],
        "title": "PublicVendorPrepaymentSchemaOut",
        "type": "object"
      },
      "PublicVendorPrepaymentSchemaCreateIn": {
        "properties": {
          "financial_transaction_to_validate_match": {
            "title": "Financial Transaction To Validate Match",
            "type": [
              "integer",
              "null"
            ]
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "title": "Transaction Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "vendor_id": {
            "title": "Vendor Id",
            "type": "integer"
          },
          "account_number": {
            "title": "Account Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "check_number": {
            "title": "Check Number",
            "type": "string"
          },
          "amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              }
            ],
            "title": "Amount"
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              }
            ],
            "title": "Exchange Rate"
          },
          "bank_or_undeposited_funds_amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              }
            ],
            "title": "Bank Or Undeposited Funds Amount"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "payment_method_id": {
            "title": "Payment Method Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          }
        },
        "required": [
          "date",
          "company_id",
          "vendor_id",
          "check_number",
          "amount",
          "currency_iso_4217_code",
          "exchange_rate",
          "bank_or_undeposited_funds_amount",
          "memo"
        ],
        "title": "PublicVendorPrepaymentSchemaCreateIn",
        "type": "object"
      },
      "PublicVendorPrepaymentSchemaUpdateIn": {
        "properties": {
          "financial_transaction_to_validate_match": {
            "title": "Financial Transaction To Validate Match",
            "type": [
              "integer",
              "null"
            ]
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "title": "Transaction Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "vendor_id": {
            "title": "Vendor Id",
            "type": "integer"
          },
          "account_number": {
            "title": "Account Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "check_number": {
            "title": "Check Number",
            "type": "string"
          },
          "amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              }
            ],
            "title": "Amount"
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              }
            ],
            "title": "Exchange Rate"
          },
          "bank_or_undeposited_funds_amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              }
            ],
            "title": "Bank Or Undeposited Funds Amount"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "payment_method_id": {
            "title": "Payment Method Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          }
        },
        "required": [
          "date",
          "company_id",
          "vendor_id",
          "check_number",
          "amount",
          "currency_iso_4217_code",
          "exchange_rate",
          "bank_or_undeposited_funds_amount",
          "memo"
        ],
        "title": "PublicVendorPrepaymentSchemaUpdateIn",
        "type": "object"
      },
      "PublicVendorPrepaymentApplicationListFilterSchema": {
        "properties": {
          "search": {
            "title": "Search",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "number": {
            "title": "Number",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "vendor_id": {
            "title": "Vendor Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "start_date": {
            "title": "Start Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "end_date": {
            "title": "End Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "transaction_currency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "type": "null"
              }
            ]
          },
          "record_status": {
            "title": "Record Status",
            "items": {
              "$ref": "#/components/schemas/RecordStatus"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "bill_id": {
            "title": "Bill Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "updated_after": {
            "title": "Updated After",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "updated_before": {
            "title": "Updated Before",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "PublicVendorPrepaymentApplicationListFilterSchema",
        "type": "object"
      },
      "PagedPublicVendorPrepaymentApplicationSchemaOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicVendorPrepaymentApplicationSchemaOut"
            },
            "title": "Items",
            "type": "array"
          },
          "count": {
            "title": "Count",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "count"
        ],
        "title": "PagedPublicVendorPrepaymentApplicationSchemaOut",
        "type": "object"
      },
      "PublicVendorPrepaymentApplicationItemOut": {
        "properties": {
          "bill_number": {
            "title": "Bill Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "amount": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Amount",
            "type": "string"
          },
          "amount_due": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Amount Due",
            "type": "string"
          },
          "position": {
            "title": "Position",
            "type": "integer"
          }
        },
        "required": [
          "amount",
          "amount_due",
          "position"
        ],
        "title": "PublicVendorPrepaymentApplicationItemOut",
        "type": "object"
      },
      "PublicVendorPrepaymentApplicationSchemaOut": {
        "properties": {
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicAttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "internal_id": {
            "title": "Internal Id",
            "type": "integer"
          },
          "transaction_ids": {
            "items": {
              "type": "integer"
            },
            "title": "Transaction Ids",
            "type": "array"
          },
          "number": {
            "title": "Number",
            "type": "integer"
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "company_name": {
            "title": "Company Name",
            "type": "string"
          },
          "company_currency": {
            "title": "Company Currency",
            "type": "string"
          },
          "vendor_id": {
            "title": "Vendor Id",
            "type": "integer"
          },
          "vendor_name": {
            "title": "Vendor Name",
            "type": "string"
          },
          "vendor_prepayment_number": {
            "title": "Vendor Prepayment Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "vendor_credit_number": {
            "title": "Vendor Credit Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "exchange_rate": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
            "title": "Exchange Rate",
            "type": "string"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "format": "date",
            "title": "Transaction Date",
            "type": "string"
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "amount": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Amount",
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicVendorPrepaymentApplicationItemOut"
            },
            "title": "Items",
            "type": "array"
          },
          "record_status": {
            "$ref": "#/components/schemas/RecordStatus"
          },
          "created_at": {
            "description": "Date and time the record was created",
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "updated_at": {
            "description": "Date and time the record was last updated",
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "internal_id",
          "transaction_ids",
          "number",
          "company_id",
          "company_name",
          "company_currency",
          "vendor_id",
          "vendor_name",
          "vendor_prepayment_number",
          "vendor_credit_number",
          "exchange_rate",
          "memo",
          "date",
          "transaction_date",
          "currency_iso_4217_code",
          "amount",
          "items",
          "record_status",
          "created_at",
          "updated_at"
        ],
        "title": "PublicVendorPrepaymentApplicationSchemaOut",
        "type": "object"
      },
      "PublicVendorPrepaymentApplicationItemIn": {
        "properties": {
          "id": {
            "title": "Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "bill_number": {
            "title": "Bill Number",
            "type": "integer"
          },
          "amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              }
            ],
            "title": "Amount"
          },
          "position": {
            "title": "Position",
            "type": "integer"
          }
        },
        "required": [
          "bill_number",
          "amount",
          "position"
        ],
        "title": "PublicVendorPrepaymentApplicationItemIn",
        "type": "object"
      },
      "PublicVendorPrepaymentApplicationSchemaCreateIn": {
        "properties": {
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "title": "Transaction Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              }
            ],
            "title": "Exchange Rate"
          },
          "vendor_prepayment_number": {
            "title": "Vendor Prepayment Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "vendor_credit_number": {
            "title": "Vendor Credit Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicVendorPrepaymentApplicationItemIn"
            },
            "title": "Items",
            "type": "array"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          }
        },
        "required": [
          "date",
          "company_id",
          "currency_iso_4217_code",
          "exchange_rate",
          "memo",
          "items"
        ],
        "title": "PublicVendorPrepaymentApplicationSchemaCreateIn",
        "type": "object"
      },
      "PublicVendorPrepaymentApplicationSchemaUpdateIn": {
        "properties": {
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "title": "Transaction Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              }
            ],
            "title": "Exchange Rate"
          },
          "vendor_prepayment_number": {
            "title": "Vendor Prepayment Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "vendor_credit_number": {
            "title": "Vendor Credit Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicVendorPrepaymentApplicationItemIn"
            },
            "title": "Items",
            "type": "array"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          }
        },
        "required": [
          "date",
          "company_id",
          "currency_iso_4217_code",
          "exchange_rate",
          "memo",
          "items"
        ],
        "title": "PublicVendorPrepaymentApplicationSchemaUpdateIn",
        "type": "object"
      },
      "PublicVendorCreditListFilterSchema": {
        "properties": {
          "search": {
            "title": "Search",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "number": {
            "title": "Number",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "vendor_id": {
            "title": "Vendor Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "start_date": {
            "title": "Start Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "end_date": {
            "title": "End Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "transaction_currency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "type": "null"
              }
            ]
          },
          "record_status": {
            "title": "Record Status",
            "items": {
              "$ref": "#/components/schemas/RecordStatus"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "bill_number": {
            "title": "Bill Number",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "updated_after": {
            "title": "Updated After",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "updated_before": {
            "title": "Updated Before",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "PublicVendorCreditListFilterSchema",
        "type": "object"
      },
      "PagedPublicVendorCreditSchemaOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicVendorCreditSchemaOut"
            },
            "title": "Items",
            "type": "array"
          },
          "count": {
            "title": "Count",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "count"
        ],
        "title": "PagedPublicVendorCreditSchemaOut",
        "type": "object"
      },
      "PublicVendorCreditExpenseOut": {
        "description": "Output schema for vendor credit expense lines.",
        "properties": {
          "tax": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemTaxDataOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "account_number": {
            "title": "Account Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "quantity": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
            "title": "Quantity",
            "type": "string"
          },
          "rate": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
            "title": "Rate",
            "type": "string"
          },
          "position": {
            "title": "Position",
            "type": "integer"
          },
          "expense_description": {
            "title": "Expense Description",
            "type": "string"
          },
          "customer_id": {
            "title": "Customer Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "vendor_id": {
            "title": "Vendor Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "classifications": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicRecordClassificationsSchemaOut"
            },
            "title": "Classifications",
            "type": "array"
          },
          "company_id": {
            "description": "Optional company for this line. When set to a different company than the record header company_id, DualEntry treats the line as a cross-company (intercompany) allocation and posts IC Due To/From and elimination entries. Omit or set equal to the header company_id for a normal single-company line.",
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "account_name": {
            "title": "Account Name",
            "type": [
              "string",
              "null"
            ]
          },
          "customer_name": {
            "title": "Customer Name",
            "type": [
              "string",
              "null"
            ]
          },
          "vendor_name": {
            "title": "Vendor Name",
            "type": [
              "string",
              "null"
            ]
          },
          "net_amount": {
            "description": "Net amount before tax",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "readOnly": true,
            "title": "Net Amount",
            "type": "string"
          },
          "tax_amount": {
            "description": "Calculated tax amount",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "readOnly": true,
            "title": "Tax Amount",
            "type": "string"
          },
          "gross_amount": {
            "description": "Calculated total amount including tax",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "readOnly": true,
            "title": "Gross Amount",
            "type": "string"
          },
          "amount": {
            "description": "Calculated total amount including tax named amount for backward compatibility",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "readOnly": true,
            "title": "Amount",
            "type": "string"
          }
        },
        "required": [
          "id",
          "quantity",
          "rate",
          "position",
          "expense_description",
          "net_amount",
          "tax_amount",
          "gross_amount",
          "amount"
        ],
        "title": "PublicVendorCreditExpenseOut",
        "type": "object"
      },
      "PublicVendorCreditItemOut": {
        "description": "Output schema for vendor credit item lines.",
        "properties": {
          "tax": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemTaxDataOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "position": {
            "title": "Position",
            "type": "integer"
          },
          "item_id": {
            "title": "Item Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "rate": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
            "title": "Rate",
            "type": "string"
          },
          "quantity": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
            "title": "Quantity",
            "type": "string"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "classifications": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicRecordClassificationsSchemaOut"
            },
            "title": "Classifications",
            "type": "array"
          },
          "company_id": {
            "description": "Optional company for this line. When set to a different company than the record header company_id, DualEntry treats the line as a cross-company (intercompany) allocation and posts IC Due To/From and elimination entries. Omit or set equal to the header company_id for a normal single-company line.",
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "item_type": {
            "title": "Item Type",
            "type": [
              "string",
              "null"
            ]
          },
          "hsn_sac_code": {
            "title": "Hsn Sac Code",
            "type": [
              "string",
              "null"
            ]
          },
          "item_name": {
            "title": "Item Name",
            "type": [
              "string",
              "null"
            ]
          },
          "net_amount": {
            "description": "Net amount before tax",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "readOnly": true,
            "title": "Net Amount",
            "type": "string"
          },
          "tax_amount": {
            "description": "Calculated tax amount",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "readOnly": true,
            "title": "Tax Amount",
            "type": "string"
          },
          "gross_amount": {
            "description": "Calculated total amount including tax",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "readOnly": true,
            "title": "Gross Amount",
            "type": "string"
          },
          "amount": {
            "description": "Calculated total amount including tax named amount for backward compatibility",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "readOnly": true,
            "title": "Amount",
            "type": "string"
          }
        },
        "required": [
          "id",
          "position",
          "rate",
          "quantity",
          "memo",
          "net_amount",
          "tax_amount",
          "gross_amount",
          "amount"
        ],
        "title": "PublicVendorCreditItemOut",
        "type": "object"
      },
      "PublicVendorCreditSchemaOut": {
        "properties": {
          "custom_fields": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CustomFieldValuePairOutputSchema"
            },
            "title": "Custom Fields",
            "type": "array"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicAttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "supply_date": {
            "title": "Supply Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "place_of_supply": {
            "title": "Place Of Supply",
            "maxLength": 2,
            "type": [
              "string",
              "null"
            ]
          },
          "tax_registration_numbers": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TaxRegistrationNumbersSnapshot"
              },
              {
                "type": "null"
              }
            ]
          },
          "tax": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RecordTaxContextOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "classifications": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicRecordClassificationsSchemaOut"
            },
            "title": "Classifications",
            "type": "array"
          },
          "transaction_ids": {
            "items": {
              "type": "integer"
            },
            "title": "Transaction Ids",
            "type": "array"
          },
          "created_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "updated_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "internal_id": {
            "title": "Internal Id",
            "type": "integer"
          },
          "number": {
            "title": "Number",
            "type": "integer"
          },
          "bill_number": {
            "title": "Bill Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "direct_expense_number": {
            "title": "Direct Expense Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "date": {
            "description": "Posting date (GL date) - the date when the transaction is recorded in the general ledger",
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "description": "Transaction date (inception date) - the date when the transaction actually occurred",
            "format": "date",
            "title": "Transaction Date",
            "type": "string"
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "company_name": {
            "title": "Company Name",
            "type": "string"
          },
          "company_currency": {
            "title": "Company Currency",
            "type": "string"
          },
          "vendor_id": {
            "title": "Vendor Id",
            "type": "integer"
          },
          "vendor_name": {
            "title": "Vendor Name",
            "type": "string"
          },
          "currency_iso_4217_code": {
            "title": "Currency Iso 4217 Code",
            "type": [
              "string",
              "null"
            ]
          },
          "exchange_rate": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
            "title": "Exchange Rate",
            "type": "string"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicVendorCreditItemOut"
            },
            "title": "Items",
            "type": "array"
          },
          "expenses": {
            "items": {
              "$ref": "#/components/schemas/PublicVendorCreditExpenseOut"
            },
            "title": "Expenses",
            "type": "array"
          },
          "amount": {
            "description": "Total transaction amount",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Amount",
            "type": "string"
          },
          "used_amount": {
            "description": "Amount that was already applied to Bills through Vendor Refunds or Vendor Prepayment Applications",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Used Amount",
            "type": "string"
          },
          "remaining_amount": {
            "description": "Amount that can be applied to Bills through Vendor Refunds or Vendor Prepayment Applications",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Remaining Amount",
            "type": "string"
          },
          "record_status": {
            "$ref": "#/components/schemas/RecordStatus"
          },
          "created_at": {
            "description": "Date and time the record was created",
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "updated_at": {
            "description": "Date and time the record was last updated",
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "supply_date",
          "tax",
          "transaction_ids",
          "internal_id",
          "number",
          "date",
          "transaction_date",
          "company_id",
          "company_name",
          "company_currency",
          "vendor_id",
          "vendor_name",
          "currency_iso_4217_code",
          "exchange_rate",
          "memo",
          "items",
          "expenses",
          "amount",
          "used_amount",
          "remaining_amount",
          "record_status",
          "created_at",
          "updated_at"
        ],
        "title": "PublicVendorCreditSchemaOut",
        "type": "object"
      },
      "PublicVendorCreditExpenseIn": {
        "description": "Input schema for vendor credit expense lines (for direct expenses).",
        "properties": {
          "tax": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemTaxData"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "title": "Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "account_number": {
            "title": "Account Number",
            "type": "integer"
          },
          "quantity": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
                "type": "string"
              }
            ],
            "title": "Quantity"
          },
          "rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
                "type": "string"
              }
            ],
            "title": "Rate"
          },
          "position": {
            "title": "Position",
            "type": "integer"
          },
          "expense_description": {
            "default": "",
            "title": "Expense Description",
            "type": "string"
          },
          "customer_id": {
            "title": "Customer Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "vendor_id": {
            "title": "Vendor Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "classifications": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicRecordClassificationsSchemaOut"
            },
            "title": "Classifications",
            "type": "array"
          },
          "company_id": {
            "description": "Optional company for this line. When set to a different company than the record header company_id, DualEntry treats the line as a cross-company (intercompany) allocation and posts IC Due To/From and elimination entries. Omit or set equal to the header company_id for a normal single-company line.",
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "account_number",
          "quantity",
          "rate",
          "position"
        ],
        "title": "PublicVendorCreditExpenseIn",
        "type": "object"
      },
      "PublicVendorCreditItemIn": {
        "description": "Input schema for vendor credit item lines (for products/services).",
        "properties": {
          "tax": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemTaxData"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "title": "Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "position": {
            "title": "Position",
            "type": "integer"
          },
          "item_id": {
            "title": "Item Id",
            "type": "integer"
          },
          "rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
                "type": "string"
              }
            ],
            "title": "Rate"
          },
          "quantity": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
                "type": "string"
              }
            ],
            "title": "Quantity"
          },
          "memo": {
            "default": "",
            "title": "Memo",
            "type": "string"
          },
          "classifications": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicRecordClassificationsSchemaOut"
            },
            "title": "Classifications",
            "type": "array"
          },
          "company_id": {
            "description": "Optional company for this line. When set to a different company than the record header company_id, DualEntry treats the line as a cross-company (intercompany) allocation and posts IC Due To/From and elimination entries. Omit or set equal to the header company_id for a normal single-company line.",
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "position",
          "item_id",
          "rate",
          "quantity"
        ],
        "title": "PublicVendorCreditItemIn",
        "type": "object"
      },
      "PublicVendorCreditSchemaCreateIn": {
        "description": "Input schema for creating Vendor Credit records.",
        "properties": {
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "title": "Transaction Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "bill_number": {
            "title": "Bill Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "direct_expense_number": {
            "title": "Direct Expense Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "vendor_id": {
            "title": "Vendor Id",
            "type": "integer"
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "memo": {
            "default": "",
            "title": "Memo",
            "type": "string"
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              }
            ],
            "title": "Exchange Rate"
          },
          "items": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicVendorCreditItemIn"
            },
            "title": "Items",
            "type": "array"
          },
          "expenses": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicVendorCreditExpenseIn"
            },
            "title": "Expenses",
            "type": "array"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          }
        },
        "required": [
          "date",
          "vendor_id",
          "company_id",
          "currency_iso_4217_code",
          "exchange_rate"
        ],
        "title": "PublicVendorCreditSchemaCreateIn",
        "type": "object"
      },
      "PublicVendorCreditSchemaUpdateIn": {
        "description": "Input schema for updating Vendor Credit records.",
        "properties": {
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "title": "Transaction Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "bill_number": {
            "title": "Bill Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "direct_expense_number": {
            "title": "Direct Expense Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "vendor_id": {
            "title": "Vendor Id",
            "type": "integer"
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "memo": {
            "default": "",
            "title": "Memo",
            "type": "string"
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              }
            ],
            "title": "Exchange Rate"
          },
          "items": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicVendorCreditItemIn"
            },
            "title": "Items",
            "type": "array"
          },
          "expenses": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicVendorCreditExpenseIn"
            },
            "title": "Expenses",
            "type": "array"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          }
        },
        "required": [
          "date",
          "vendor_id",
          "company_id",
          "currency_iso_4217_code",
          "exchange_rate"
        ],
        "title": "PublicVendorCreditSchemaUpdateIn",
        "type": "object"
      },
      "PublicVendorRefundListFilterSchema": {
        "properties": {
          "search": {
            "title": "Search",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "number": {
            "title": "Number",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "vendor_id": {
            "title": "Vendor Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "vendor_credit_id": {
            "title": "Vendor Credit Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "start_date": {
            "title": "Start Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "end_date": {
            "title": "End Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "transaction_currency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "type": "null"
              }
            ]
          },
          "record_status": {
            "title": "Record Status",
            "items": {
              "$ref": "#/components/schemas/RecordStatus"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "updated_after": {
            "title": "Updated After",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "updated_before": {
            "title": "Updated Before",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "PublicVendorRefundListFilterSchema",
        "type": "object"
      },
      "PagedPublicVendorRefundSchemaOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicVendorRefundSchemaOut"
            },
            "title": "Items",
            "type": "array"
          },
          "count": {
            "title": "Count",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "count"
        ],
        "title": "PagedPublicVendorRefundSchemaOut",
        "type": "object"
      },
      "PublicVendorRefundItemOut": {
        "properties": {
          "vendor_credit_number": {
            "title": "Vendor Credit Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "vendor_prepayment_number": {
            "title": "Vendor Prepayment Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "amount": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Amount",
            "type": "string"
          },
          "position": {
            "title": "Position",
            "type": "integer"
          },
          "bank_or_credit_card_amount": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Bank Or Credit Card Amount",
            "type": "string"
          }
        },
        "required": [
          "amount",
          "position",
          "bank_or_credit_card_amount"
        ],
        "title": "PublicVendorRefundItemOut",
        "type": "object"
      },
      "PublicVendorRefundSchemaOut": {
        "properties": {
          "custom_fields": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CustomFieldValuePairOutputSchema"
            },
            "title": "Custom Fields",
            "type": "array"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicAttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "classifications": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicRecordClassificationsSchemaOut"
            },
            "title": "Classifications",
            "type": "array"
          },
          "transaction_ids": {
            "items": {
              "type": "integer"
            },
            "title": "Transaction Ids",
            "type": "array"
          },
          "created_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "updated_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "internal_id": {
            "title": "Internal Id",
            "type": "integer"
          },
          "number": {
            "title": "Number",
            "type": "integer"
          },
          "account_number": {
            "title": "Account Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicVendorRefundItemOut"
            },
            "title": "Items",
            "type": "array"
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "company_name": {
            "title": "Company Name",
            "type": "string"
          },
          "company_currency": {
            "title": "Company Currency",
            "type": "string"
          },
          "vendor_id": {
            "title": "Vendor Id",
            "type": "integer"
          },
          "vendor_name": {
            "title": "Vendor Name",
            "type": "string"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "check_number": {
            "title": "Check Number",
            "type": "string"
          },
          "date": {
            "description": "Posting date (GL date) - the date when the transaction is recorded in the general ledger",
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "description": "Transaction date (inception date) - the date when the transaction actually occurred",
            "format": "date",
            "title": "Transaction Date",
            "type": "string"
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "exchange_rate": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
            "title": "Exchange Rate",
            "type": "string"
          },
          "bank_or_credit_card_amount": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Bank Or Credit Card Amount",
            "type": "string"
          },
          "amount": {
            "description": "Total transaction amount",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Amount",
            "type": "string"
          },
          "record_status": {
            "$ref": "#/components/schemas/core__models__base__RecordStatus"
          },
          "payment_method_id": {
            "title": "Payment Method Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "paper_check_status": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/core__models__paper_check__PaperCheck__RecordStatus"
              },
              {
                "type": "null"
              }
            ]
          },
          "created_at": {
            "description": "Date and time the record was created",
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "updated_at": {
            "description": "Date and time the record was last updated",
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "transaction_ids",
          "internal_id",
          "number",
          "account_number",
          "items",
          "company_id",
          "company_name",
          "company_currency",
          "vendor_id",
          "vendor_name",
          "memo",
          "check_number",
          "date",
          "transaction_date",
          "currency_iso_4217_code",
          "exchange_rate",
          "bank_or_credit_card_amount",
          "amount",
          "record_status",
          "paper_check_status",
          "created_at",
          "updated_at"
        ],
        "title": "PublicVendorRefundSchemaOut",
        "type": "object"
      },
      "PublicVendorRefundItemIn": {
        "properties": {
          "id": {
            "title": "Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "vendor_credit_number": {
            "title": "Vendor Credit Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "vendor_prepayment_number": {
            "title": "Vendor Prepayment Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              }
            ],
            "title": "Amount"
          },
          "position": {
            "title": "Position",
            "type": "integer"
          }
        },
        "required": [
          "amount",
          "position"
        ],
        "title": "PublicVendorRefundItemIn",
        "type": "object"
      },
      "PublicVendorRefundSchemaCreateIn": {
        "properties": {
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "title": "Transaction Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "vendor_id": {
            "title": "Vendor Id",
            "type": "integer"
          },
          "check_number": {
            "default": "",
            "title": "Check Number",
            "type": "string"
          },
          "account_number": {
            "title": "Account Number",
            "type": "integer"
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              }
            ],
            "title": "Exchange Rate"
          },
          "memo": {
            "default": "",
            "title": "Memo",
            "type": "string"
          },
          "items": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicVendorRefundItemIn"
            },
            "title": "Items",
            "type": "array"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "bank_or_credit_card_amount": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              }
            ],
            "default": "0.00",
            "description": "Bank or credit card amount",
            "title": "Bank Or Credit Card Amount"
          },
          "payment_method_id": {
            "title": "Payment Method Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          }
        },
        "required": [
          "date",
          "company_id",
          "vendor_id",
          "account_number",
          "currency_iso_4217_code",
          "exchange_rate"
        ],
        "title": "PublicVendorRefundSchemaCreateIn",
        "type": "object"
      },
      "PublicVendorRefundSchemaUpdateIn": {
        "properties": {
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "title": "Transaction Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "vendor_id": {
            "title": "Vendor Id",
            "type": "integer"
          },
          "check_number": {
            "default": "",
            "title": "Check Number",
            "type": "string"
          },
          "account_number": {
            "title": "Account Number",
            "type": "integer"
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              }
            ],
            "title": "Exchange Rate"
          },
          "memo": {
            "default": "",
            "title": "Memo",
            "type": "string"
          },
          "items": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicVendorRefundItemIn"
            },
            "title": "Items",
            "type": "array"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "bank_or_credit_card_amount": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              }
            ],
            "default": "0.00",
            "description": "Bank or credit card amount",
            "title": "Bank Or Credit Card Amount"
          },
          "payment_method_id": {
            "title": "Payment Method Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          }
        },
        "required": [
          "date",
          "company_id",
          "vendor_id",
          "account_number",
          "currency_iso_4217_code",
          "exchange_rate"
        ],
        "title": "PublicVendorRefundSchemaUpdateIn",
        "type": "object"
      },
      "PublicDirectExpenseListFilterSchema": {
        "properties": {
          "search": {
            "title": "Search",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "number": {
            "title": "Number",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "vendor_id": {
            "title": "Vendor Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "start_date": {
            "title": "Start Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "end_date": {
            "title": "End Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "transaction_currency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "type": "null"
              }
            ]
          },
          "record_status": {
            "title": "Record Status",
            "items": {
              "$ref": "#/components/schemas/RecordStatus"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "updated_after": {
            "title": "Updated After",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "updated_before": {
            "title": "Updated Before",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "PublicDirectExpenseListFilterSchema",
        "type": "object"
      },
      "PagedPublicDirectExpenseSchemaOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicDirectExpenseSchemaOut"
            },
            "title": "Items",
            "type": "array"
          },
          "count": {
            "title": "Count",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "count"
        ],
        "title": "PagedPublicDirectExpenseSchemaOut",
        "type": "object"
      },
      "PublicDirectExpenseSchemaOut": {
        "properties": {
          "custom_fields": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CustomFieldValuePairOutputSchema"
            },
            "title": "Custom Fields",
            "type": "array"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicAttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "supply_date": {
            "title": "Supply Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "place_of_supply": {
            "title": "Place Of Supply",
            "maxLength": 2,
            "type": [
              "string",
              "null"
            ]
          },
          "tax_registration_numbers": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TaxRegistrationNumbersSnapshot"
              },
              {
                "type": "null"
              }
            ]
          },
          "tax": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RecordTaxContextOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "classifications": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicRecordClassificationsSchemaOut"
            },
            "title": "Classifications",
            "type": "array"
          },
          "transaction_ids": {
            "items": {
              "type": "integer"
            },
            "title": "Transaction Ids",
            "type": "array"
          },
          "bank_match_status": {
            "title": "Bank Match Status",
            "type": [
              "string",
              "null"
            ]
          },
          "reconciliation_status": {
            "title": "Reconciliation Status",
            "type": [
              "string",
              "null"
            ]
          },
          "created_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "updated_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "internal_id": {
            "title": "Internal Id",
            "type": "integer"
          },
          "number": {
            "title": "Number",
            "type": "integer"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicExpenseItemOut"
            },
            "title": "Items",
            "type": "array"
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "company_name": {
            "title": "Company Name",
            "type": "string"
          },
          "company_currency": {
            "title": "Company Currency",
            "type": "string"
          },
          "vendor_id": {
            "title": "Vendor Id",
            "type": "integer"
          },
          "vendor_name": {
            "title": "Vendor Name",
            "type": "string"
          },
          "account_number": {
            "title": "Account Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "amount": {
            "description": "Total transaction amount",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Amount",
            "type": "string"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "check_number": {
            "title": "Check Number",
            "type": "string"
          },
          "date": {
            "description": "Posting date (GL date) - the date when the transaction is recorded in the general ledger",
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "description": "Transaction date (inception date) - the date when the transaction actually occurred",
            "format": "date",
            "title": "Transaction Date",
            "type": "string"
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "exchange_rate": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
            "title": "Exchange Rate",
            "type": "string"
          },
          "bank_or_credit_card_amount": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Bank Or Credit Card Amount",
            "type": "string"
          },
          "payment_method_id": {
            "title": "Payment Method Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "record_status": {
            "$ref": "#/components/schemas/RecordStatus"
          },
          "created_at": {
            "description": "Date and time the record was created",
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "updated_at": {
            "description": "Date and time the record was last updated",
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "supply_date",
          "tax",
          "transaction_ids",
          "internal_id",
          "number",
          "items",
          "company_id",
          "company_name",
          "company_currency",
          "vendor_id",
          "vendor_name",
          "account_number",
          "amount",
          "memo",
          "check_number",
          "date",
          "transaction_date",
          "currency_iso_4217_code",
          "exchange_rate",
          "bank_or_credit_card_amount",
          "record_status",
          "created_at",
          "updated_at"
        ],
        "title": "PublicDirectExpenseSchemaOut",
        "type": "object"
      },
      "PublicExpenseItemOut": {
        "description": "Output schema for expense line items.",
        "properties": {
          "tax": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemTaxDataOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "position": {
            "title": "Position",
            "type": "integer"
          },
          "account_number": {
            "title": "Account Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "expense_description": {
            "title": "Expense Description",
            "type": "string"
          },
          "rate": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
            "title": "Rate",
            "type": "string"
          },
          "quantity": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
            "title": "Quantity",
            "type": "string"
          },
          "classifications": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicRecordClassificationsSchemaOut"
            },
            "title": "Classifications",
            "type": "array"
          },
          "customer_id": {
            "title": "Customer Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "vendor_id": {
            "title": "Vendor Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "company_id": {
            "description": "Optional company for this line. When set to a different company than the record header company_id, DualEntry treats the line as a cross-company (intercompany) allocation and posts IC Due To/From and elimination entries. Omit or set equal to the header company_id for a normal single-company line.",
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "amortizable_assets": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AmortizableAssetRefOut"
            },
            "title": "Amortizable Assets",
            "type": "array"
          },
          "fixed_assets": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/FixedAssetRefOut"
            },
            "title": "Fixed Assets",
            "type": "array"
          },
          "bank_or_credit_card_amount": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Bank Or Credit Card Amount",
            "type": "string"
          },
          "customer_name": {
            "title": "Customer Name",
            "type": [
              "string",
              "null"
            ]
          },
          "vendor_name": {
            "title": "Vendor Name",
            "type": [
              "string",
              "null"
            ]
          },
          "net_amount": {
            "description": "Net amount before tax",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "readOnly": true,
            "title": "Net Amount",
            "type": "string"
          },
          "tax_amount": {
            "description": "Calculated tax amount",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "readOnly": true,
            "title": "Tax Amount",
            "type": "string"
          },
          "gross_amount": {
            "description": "Calculated total amount including tax",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "readOnly": true,
            "title": "Gross Amount",
            "type": "string"
          },
          "amount": {
            "description": "Calculated total amount including tax named amount for backward compatibility",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "readOnly": true,
            "title": "Amount",
            "type": "string"
          }
        },
        "required": [
          "id",
          "position",
          "account_number",
          "expense_description",
          "rate",
          "quantity",
          "bank_or_credit_card_amount",
          "net_amount",
          "tax_amount",
          "gross_amount",
          "amount"
        ],
        "title": "PublicExpenseItemOut",
        "type": "object"
      },
      "PublicDirectExpenseSchemaCreateIn": {
        "description": "Input schema for creating DirectExpense records.",
        "properties": {
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "title": "Transaction Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "memo": {
            "default": "",
            "title": "Memo",
            "type": "string"
          },
          "check_number": {
            "default": "",
            "title": "Check Number",
            "type": "string"
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "vendor_id": {
            "title": "Vendor Id",
            "type": "integer"
          },
          "account_number": {
            "title": "Account Number",
            "type": "integer"
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              }
            ],
            "default": "1.00",
            "title": "Exchange Rate"
          },
          "bank_or_credit_card_amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              }
            ],
            "title": "Bank Or Credit Card Amount"
          },
          "items": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicExpenseItemIn"
            },
            "title": "Items",
            "type": "array"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "payment_method_id": {
            "title": "Payment Method Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          }
        },
        "required": [
          "date",
          "company_id",
          "vendor_id",
          "account_number",
          "currency_iso_4217_code",
          "bank_or_credit_card_amount"
        ],
        "title": "PublicDirectExpenseSchemaCreateIn",
        "type": "object"
      },
      "PublicExpenseItemIn": {
        "description": "Input schema for expense line items.",
        "properties": {
          "tax": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemTaxData"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "title": "Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "position": {
            "title": "Position",
            "type": "integer"
          },
          "account_number": {
            "title": "Account Number",
            "type": "integer"
          },
          "expense_description": {
            "default": "",
            "title": "Expense Description",
            "type": "string"
          },
          "rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
                "type": "string"
              }
            ],
            "title": "Rate"
          },
          "quantity": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
                "type": "string"
              }
            ],
            "title": "Quantity"
          },
          "classifications": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicRecordClassificationsSchemaOut"
            },
            "title": "Classifications",
            "type": "array"
          },
          "customer_id": {
            "title": "Customer Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "vendor_id": {
            "title": "Vendor Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "company_id": {
            "description": "Optional company for this line. When set to a different company than the record header company_id, DualEntry treats the line as a cross-company (intercompany) allocation and posts IC Due To/From and elimination entries. Omit or set equal to the header company_id for a normal single-company line.",
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "position",
          "account_number",
          "rate",
          "quantity"
        ],
        "title": "PublicExpenseItemIn",
        "type": "object"
      },
      "PublicDirectExpenseSchemaUpdateIn": {
        "description": "Input schema for updating DirectExpense records.",
        "properties": {
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "title": "Transaction Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "memo": {
            "default": "",
            "title": "Memo",
            "type": "string"
          },
          "check_number": {
            "default": "",
            "title": "Check Number",
            "type": "string"
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "vendor_id": {
            "title": "Vendor Id",
            "type": "integer"
          },
          "account_number": {
            "title": "Account Number",
            "type": "integer"
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              }
            ],
            "default": "1.00",
            "title": "Exchange Rate"
          },
          "bank_or_credit_card_amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              }
            ],
            "title": "Bank Or Credit Card Amount"
          },
          "items": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicExpenseItemIn"
            },
            "title": "Items",
            "type": "array"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "payment_method_id": {
            "title": "Payment Method Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          }
        },
        "required": [
          "date",
          "company_id",
          "vendor_id",
          "account_number",
          "currency_iso_4217_code",
          "bank_or_credit_card_amount"
        ],
        "title": "PublicDirectExpenseSchemaUpdateIn",
        "type": "object"
      },
      "PublicBankTransferListFilterSchema": {
        "properties": {
          "search": {
            "title": "Search",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "number": {
            "title": "Number",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "start_date": {
            "title": "Start Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "end_date": {
            "title": "End Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "debit_bank_account_number": {
            "title": "Debit Bank Account Number",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "credit_bank_account_number": {
            "title": "Credit Bank Account Number",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "record_status": {
            "title": "Record Status",
            "items": {
              "$ref": "#/components/schemas/RecordStatus"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "approval_status": {
            "title": "Approval Status",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "approval_status_scope": {
            "title": "Approval Status Scope",
            "items": {
              "$ref": "#/components/schemas/RecordStatus"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "updated_after": {
            "title": "Updated After",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "updated_before": {
            "title": "Updated Before",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "PublicBankTransferListFilterSchema",
        "type": "object"
      },
      "PagedPublicBankTransferSchemaOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicBankTransferSchemaOut"
            },
            "title": "Items",
            "type": "array"
          },
          "count": {
            "title": "Count",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "count"
        ],
        "title": "PagedPublicBankTransferSchemaOut",
        "type": "object"
      },
      "PublicBankTransferSchemaOut": {
        "properties": {
          "bank_match_status": {
            "title": "Bank Match Status",
            "type": [
              "string",
              "null"
            ]
          },
          "reconciliation_status": {
            "title": "Reconciliation Status",
            "type": [
              "string",
              "null"
            ]
          },
          "created_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "updated_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "internal_id": {
            "title": "Internal Id",
            "type": "integer"
          },
          "number": {
            "title": "Number",
            "type": "integer"
          },
          "transaction_id": {
            "title": "Transaction Id",
            "type": "integer"
          },
          "debit_entry_id": {
            "title": "Debit Entry Id",
            "type": "integer"
          },
          "credit_entry_id": {
            "title": "Credit Entry Id",
            "type": "integer"
          },
          "date": {
            "description": "Posting date (GL date) - the date when the transaction is recorded in the general ledger",
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "description": "Transaction date (inception date) - the date when the transaction actually occurred",
            "format": "date",
            "title": "Transaction Date",
            "type": "string"
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "company_name": {
            "title": "Company Name",
            "type": "string"
          },
          "company_currency": {
            "title": "Company Currency",
            "type": "string"
          },
          "debit_bank_account_number": {
            "title": "Debit Bank Account Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "credit_bank_account_number": {
            "title": "Credit Bank Account Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "amount": {
            "description": "Transfer amount",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Amount",
            "type": "string"
          },
          "exchange_rate": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
            "title": "Exchange Rate",
            "type": "string"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "record_status": {
            "$ref": "#/components/schemas/RecordStatus"
          },
          "currency_iso_4217_code": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Currency Iso 4217 Code",
            "type": "array"
          },
          "created_at": {
            "description": "Date and time the record was created",
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "updated_at": {
            "description": "Date and time the record was last updated",
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "internal_id",
          "number",
          "transaction_id",
          "debit_entry_id",
          "credit_entry_id",
          "date",
          "transaction_date",
          "company_id",
          "company_name",
          "company_currency",
          "debit_bank_account_number",
          "credit_bank_account_number",
          "amount",
          "exchange_rate",
          "memo",
          "record_status",
          "created_at",
          "updated_at"
        ],
        "title": "PublicBankTransferSchemaOut",
        "type": "object"
      },
      "PublicBankTransferSchemaCreateIn": {
        "description": "Input schema for creating BankTransfer records.",
        "properties": {
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "title": "Transaction Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "debit_bank_account_number": {
            "title": "Debit Bank Account Number",
            "type": "integer"
          },
          "credit_bank_account_number": {
            "title": "Credit Bank Account Number",
            "type": "integer"
          },
          "amount": {
            "anyOf": [
              {
                "exclusiveMinimum": 0.0,
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              }
            ],
            "title": "Amount"
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              }
            ],
            "default": "1.00",
            "title": "Exchange Rate"
          },
          "memo": {
            "default": "",
            "title": "Memo",
            "type": "string"
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          }
        },
        "required": [
          "date",
          "company_id",
          "debit_bank_account_number",
          "credit_bank_account_number",
          "amount"
        ],
        "title": "PublicBankTransferSchemaCreateIn",
        "type": "object"
      },
      "PublicBankTransferSchemaUpdateIn": {
        "description": "Input schema for updating BankTransfer records.",
        "properties": {
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "title": "Transaction Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "debit_bank_account_number": {
            "title": "Debit Bank Account Number",
            "type": "integer"
          },
          "credit_bank_account_number": {
            "title": "Credit Bank Account Number",
            "type": "integer"
          },
          "amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              }
            ],
            "title": "Amount"
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              }
            ],
            "default": "1.00",
            "title": "Exchange Rate"
          },
          "memo": {
            "default": "",
            "title": "Memo",
            "type": "string"
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          }
        },
        "required": [
          "date",
          "company_id",
          "debit_bank_account_number",
          "credit_bank_account_number",
          "amount"
        ],
        "title": "PublicBankTransferSchemaUpdateIn",
        "type": "object"
      },
      "PublicStatisticalJournalListFilterSchema": {
        "properties": {
          "search": {
            "title": "Search",
            "type": [
              "string",
              "null"
            ]
          },
          "number": {
            "title": "Number",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "account_id": {
            "title": "Account Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "account_number": {
            "title": "Account Number",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "line_account_id": {
            "title": "Line Account Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "line_account_number": {
            "title": "Line Account Number",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "period_start": {
            "title": "Period Start",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "period_end": {
            "title": "Period End",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "date_start": {
            "title": "Date Start",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "date_end": {
            "title": "Date End",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "record_status": {
            "title": "Record Status",
            "items": {
              "$ref": "#/components/schemas/RecordStatus"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "updated_after": {
            "title": "Updated After",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "updated_before": {
            "title": "Updated Before",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "PublicStatisticalJournalListFilterSchema",
        "type": "object"
      },
      "PagedPublicStatisticalJournalListSchemaOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicStatisticalJournalListSchemaOut"
            },
            "title": "Items",
            "type": "array"
          },
          "count": {
            "title": "Count",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "count"
        ],
        "title": "PagedPublicStatisticalJournalListSchemaOut",
        "type": "object"
      },
      "PublicStatisticalJournalListSchemaOut": {
        "properties": {
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "number": {
            "title": "Number",
            "type": "integer"
          },
          "account_id": {
            "title": "Account Id",
            "type": "integer"
          },
          "account_name": {
            "title": "Account Name",
            "type": "string"
          },
          "account_number": {
            "title": "Account Number",
            "type": "integer"
          },
          "period": {
            "format": "date",
            "title": "Period",
            "type": "string"
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "record_status": {
            "$ref": "#/components/schemas/RecordStatus"
          },
          "total_quantity": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
            "title": "Total Quantity",
            "type": "string"
          },
          "unique_account_count": {
            "title": "Unique Account Count",
            "type": "integer"
          },
          "unique_company_count": {
            "title": "Unique Company Count",
            "type": "integer"
          },
          "created_at": {
            "description": "Date and time the record was created",
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "updated_at": {
            "description": "Date and time the record was last updated",
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "id",
          "number",
          "account_id",
          "account_name",
          "account_number",
          "period",
          "date",
          "memo",
          "record_status",
          "total_quantity",
          "unique_account_count",
          "unique_company_count",
          "created_at",
          "updated_at"
        ],
        "title": "PublicStatisticalJournalListSchemaOut",
        "type": "object"
      },
      "PublicStatisticalJournalLineClassificationSchemaOut": {
        "properties": {
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "line_id": {
            "title": "Line Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "line_name": {
            "title": "Line Name",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "name"
        ],
        "title": "PublicStatisticalJournalLineClassificationSchemaOut",
        "type": "object"
      },
      "PublicStatisticalJournalLineSchemaOut": {
        "properties": {
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "company_id": {
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "company_name": {
            "title": "Company Name",
            "type": [
              "string",
              "null"
            ]
          },
          "account_id": {
            "title": "Account Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "account_name": {
            "title": "Account Name",
            "type": [
              "string",
              "null"
            ]
          },
          "account_number": {
            "title": "Account Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "value": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
            "title": "Value",
            "type": "string"
          },
          "position": {
            "title": "Position",
            "type": "integer"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "classifications": {
            "items": {
              "$ref": "#/components/schemas/PublicStatisticalJournalLineClassificationSchemaOut"
            },
            "title": "Classifications",
            "type": "array"
          }
        },
        "required": [
          "id",
          "value",
          "position",
          "memo",
          "classifications"
        ],
        "title": "PublicStatisticalJournalLineSchemaOut",
        "type": "object"
      },
      "PublicStatisticalJournalSchemaOut": {
        "properties": {
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "number": {
            "title": "Number",
            "type": "integer"
          },
          "account_id": {
            "title": "Account Id",
            "type": "integer"
          },
          "account_name": {
            "title": "Account Name",
            "type": "string"
          },
          "account_number": {
            "title": "Account Number",
            "type": "integer"
          },
          "period": {
            "format": "date",
            "title": "Period",
            "type": "string"
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "record_status": {
            "$ref": "#/components/schemas/RecordStatus"
          },
          "total_quantity": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
            "title": "Total Quantity",
            "type": "string"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicAttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicStatisticalJournalLineSchemaOut"
            },
            "title": "Items",
            "type": "array"
          },
          "created_at": {
            "description": "Date and time the record was created",
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "updated_at": {
            "description": "Date and time the record was last updated",
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "id",
          "number",
          "account_id",
          "account_name",
          "account_number",
          "period",
          "date",
          "memo",
          "record_status",
          "total_quantity",
          "items",
          "created_at",
          "updated_at"
        ],
        "title": "PublicStatisticalJournalSchemaOut",
        "type": "object"
      },
      "PublicStatisticalJournalClassificationSchemaIn": {
        "properties": {
          "id": {
            "title": "Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "line_id": {
            "title": "Line Id",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "title": "PublicStatisticalJournalClassificationSchemaIn",
        "type": "object"
      },
      "PublicStatisticalJournalLineSchemaIn": {
        "properties": {
          "id": {
            "title": "Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "account_id": {
            "title": "Account Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
                "type": "string"
              }
            ],
            "title": "Value"
          },
          "position": {
            "default": 1,
            "title": "Position",
            "type": "integer"
          },
          "memo": {
            "default": "",
            "title": "Memo",
            "type": "string"
          },
          "classifications": {
            "items": {
              "$ref": "#/components/schemas/PublicStatisticalJournalClassificationSchemaIn"
            },
            "title": "Classifications",
            "type": "array"
          }
        },
        "required": [
          "value"
        ],
        "title": "PublicStatisticalJournalLineSchemaIn",
        "type": "object"
      },
      "PublicStatisticalJournalSchemaCreateIn": {
        "properties": {
          "account_id": {
            "title": "Account Id",
            "type": "integer"
          },
          "date": {
            "title": "Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "memo": {
            "default": "",
            "title": "Memo",
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicStatisticalJournalLineSchemaIn"
            },
            "title": "Items",
            "type": "array"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          }
        },
        "required": [
          "account_id"
        ],
        "title": "PublicStatisticalJournalSchemaCreateIn",
        "type": "object"
      },
      "PublicStatisticalJournalSchemaUpdateIn": {
        "properties": {
          "account_id": {
            "title": "Account Id",
            "type": "integer"
          },
          "date": {
            "title": "Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "memo": {
            "default": "",
            "title": "Memo",
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicStatisticalJournalLineSchemaIn"
            },
            "title": "Items",
            "type": "array"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          }
        },
        "required": [
          "account_id"
        ],
        "title": "PublicStatisticalJournalSchemaUpdateIn",
        "type": "object"
      },
      "PublicRecurringInvoiceListFilterSchema": {
        "properties": {
          "search": {
            "title": "Search",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "number": {
            "title": "Number",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "recurring_type": {
            "title": "Recurring Type",
            "items": {
              "$ref": "#/components/schemas/RecurringType"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "updated_after": {
            "title": "Updated After",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "updated_before": {
            "title": "Updated Before",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "PublicRecurringInvoiceListFilterSchema",
        "type": "object"
      },
      "RecurringType": {
        "enum": [
          "automatic",
          "reminder"
        ],
        "title": "RecurringType",
        "type": "string"
      },
      "PagedPublicRecurringInvoiceSchemaOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicRecurringInvoiceSchemaOut"
            },
            "title": "Items",
            "type": "array"
          },
          "count": {
            "title": "Count",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "count"
        ],
        "title": "PagedPublicRecurringInvoiceSchemaOut",
        "type": "object"
      },
      "PublicRecurringInvoiceSchemaOut": {
        "properties": {
          "created_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "updated_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "internal_id": {
            "title": "Internal Id",
            "type": "integer"
          },
          "number": {
            "title": "Number",
            "type": "integer"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "company_name": {
            "title": "Company Name",
            "type": "string"
          },
          "company_currency": {
            "title": "Company Currency",
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/RecurringStatus"
          },
          "record_payload": {
            "title": "Record Payload"
          },
          "rrule": {
            "title": "Rrule",
            "type": "string"
          },
          "next_occurrence": {
            "title": "Next Occurrence",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "last_generated": {
            "title": "Last Generated",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "recurring_type": {
            "$ref": "#/components/schemas/RecurringType"
          },
          "records": {
            "items": {
              "$ref": "#/components/schemas/PublicRecurringRecordSchemaOut"
            },
            "title": "Records",
            "type": "array"
          },
          "created_at": {
            "description": "Date and time the record was created",
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "updated_at": {
            "description": "Date and time the record was last updated",
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "internal_id",
          "number",
          "name",
          "memo",
          "date",
          "company_id",
          "company_name",
          "company_currency",
          "status",
          "record_payload",
          "rrule",
          "next_occurrence",
          "last_generated",
          "recurring_type",
          "records",
          "created_at",
          "updated_at"
        ],
        "title": "PublicRecurringInvoiceSchemaOut",
        "type": "object"
      },
      "PublicRecurringRecordSchemaOut": {
        "properties": {
          "internal_id": {
            "title": "Internal Id",
            "type": "integer"
          },
          "number": {
            "title": "Number",
            "type": "integer"
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "amount": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Amount",
            "type": "string"
          },
          "record_status": {
            "$ref": "#/components/schemas/RecordStatus"
          }
        },
        "required": [
          "internal_id",
          "number",
          "date",
          "amount",
          "record_status"
        ],
        "title": "PublicRecurringRecordSchemaOut",
        "type": "object"
      },
      "RecurringStatus": {
        "enum": [
          "active",
          "inactive"
        ],
        "title": "RecurringStatus",
        "type": "string"
      },
      "PublicRecurringInvoiceSchemaCreateIn": {
        "properties": {
          "rrule": {
            "description": "Recurrence rule in iCalendar RRULE format (RFC 5545)",
            "examples": [
              "FREQ=DAILY",
              "FREQ=WEEKLY;BYDAY=MO,WE,FR",
              "FREQ=MONTHLY;BYMONTHDAY=15",
              "FREQ=YEARLY;BYMONTH=12;BYMONTHDAY=25",
              "FREQ=MONTHLY;BYDAY=1MO",
              "FREQ=WEEKLY;INTERVAL=2;BYDAY=TU,TH",
              "FREQ=MONTHLY;BYMONTHDAY=1;COUNT=12",
              "FREQ=DAILY;UNTIL=20241231T235959Z",
              "FREQ=WEEKLY;WKST=SU;BYDAY=MO,TU,WE,TH,FR"
            ],
            "format": "rrule",
            "maxLength": 500,
            "minLength": 8,
            "pattern": "^FREQ=(DAILY|WEEKLY|MONTHLY|YEARLY)(?:;.*)?$",
            "title": "Rrule",
            "type": "string"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "status": {
            "$ref": "#/components/schemas/RecurringStatus"
          },
          "recurring_type": {
            "$ref": "#/components/schemas/RecurringType"
          },
          "record_payload": {
            "$ref": "#/components/schemas/PublicInvoiceSchemaCreateIn"
          }
        },
        "required": [
          "rrule",
          "memo",
          "name",
          "date",
          "company_id",
          "status",
          "recurring_type",
          "record_payload"
        ],
        "title": "PublicRecurringInvoiceSchemaCreateIn",
        "type": "object"
      },
      "PublicRecurringInvoiceSchemaUpdateIn": {
        "properties": {
          "rrule": {
            "description": "Recurrence rule in iCalendar RRULE format (RFC 5545)",
            "examples": [
              "FREQ=DAILY",
              "FREQ=WEEKLY;BYDAY=MO,WE,FR",
              "FREQ=MONTHLY;BYMONTHDAY=15",
              "FREQ=YEARLY;BYMONTH=12;BYMONTHDAY=25",
              "FREQ=MONTHLY;BYDAY=1MO",
              "FREQ=WEEKLY;INTERVAL=2;BYDAY=TU,TH",
              "FREQ=MONTHLY;BYMONTHDAY=1;COUNT=12",
              "FREQ=DAILY;UNTIL=20241231T235959Z",
              "FREQ=WEEKLY;WKST=SU;BYDAY=MO,TU,WE,TH,FR"
            ],
            "format": "rrule",
            "maxLength": 500,
            "minLength": 8,
            "pattern": "^FREQ=(DAILY|WEEKLY|MONTHLY|YEARLY)(?:;.*)?$",
            "title": "Rrule",
            "type": "string"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "status": {
            "$ref": "#/components/schemas/RecurringStatus"
          },
          "recurring_type": {
            "$ref": "#/components/schemas/RecurringType"
          },
          "record_payload": {
            "$ref": "#/components/schemas/PublicInvoiceSchemaCreateIn"
          }
        },
        "required": [
          "rrule",
          "memo",
          "name",
          "date",
          "company_id",
          "status",
          "recurring_type",
          "record_payload"
        ],
        "title": "PublicRecurringInvoiceSchemaUpdateIn",
        "type": "object"
      },
      "SuccessSchema": {
        "properties": {
          "success": {
            "const": true,
            "default": true,
            "title": "Success",
            "type": "boolean"
          },
          "errors": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "title": "Errors",
            "type": "object"
          }
        },
        "title": "SuccessSchema",
        "type": "object"
      },
      "PublicRecurringBillListFilterSchema": {
        "properties": {
          "search": {
            "title": "Search",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "number": {
            "title": "Number",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "recurring_type": {
            "title": "Recurring Type",
            "items": {
              "$ref": "#/components/schemas/RecurringType"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "updated_after": {
            "title": "Updated After",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "updated_before": {
            "title": "Updated Before",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "PublicRecurringBillListFilterSchema",
        "type": "object"
      },
      "PagedPublicRecurringBillSchemaOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicRecurringBillSchemaOut"
            },
            "title": "Items",
            "type": "array"
          },
          "count": {
            "title": "Count",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "count"
        ],
        "title": "PagedPublicRecurringBillSchemaOut",
        "type": "object"
      },
      "PublicRecurringBillSchemaOut": {
        "properties": {
          "created_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "updated_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "internal_id": {
            "title": "Internal Id",
            "type": "integer"
          },
          "number": {
            "title": "Number",
            "type": "integer"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "company_name": {
            "title": "Company Name",
            "type": "string"
          },
          "company_currency": {
            "title": "Company Currency",
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/RecurringStatus"
          },
          "record_payload": {
            "title": "Record Payload"
          },
          "rrule": {
            "title": "Rrule",
            "type": "string"
          },
          "next_occurrence": {
            "title": "Next Occurrence",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "last_generated": {
            "title": "Last Generated",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "recurring_type": {
            "$ref": "#/components/schemas/RecurringType"
          },
          "records": {
            "items": {
              "$ref": "#/components/schemas/PublicRecurringRecordSchemaOut"
            },
            "title": "Records",
            "type": "array"
          },
          "created_at": {
            "description": "Date and time the record was created",
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "updated_at": {
            "description": "Date and time the record was last updated",
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "internal_id",
          "number",
          "name",
          "memo",
          "date",
          "company_id",
          "company_name",
          "company_currency",
          "status",
          "record_payload",
          "rrule",
          "next_occurrence",
          "last_generated",
          "recurring_type",
          "records",
          "created_at",
          "updated_at"
        ],
        "title": "PublicRecurringBillSchemaOut",
        "type": "object"
      },
      "PublicRecurringBillSchemaCreateIn": {
        "properties": {
          "rrule": {
            "description": "Recurrence rule in iCalendar RRULE format (RFC 5545)",
            "examples": [
              "FREQ=DAILY",
              "FREQ=WEEKLY;BYDAY=MO,WE,FR",
              "FREQ=MONTHLY;BYMONTHDAY=15",
              "FREQ=YEARLY;BYMONTH=12;BYMONTHDAY=25",
              "FREQ=MONTHLY;BYDAY=1MO",
              "FREQ=WEEKLY;INTERVAL=2;BYDAY=TU,TH",
              "FREQ=MONTHLY;BYMONTHDAY=1;COUNT=12",
              "FREQ=DAILY;UNTIL=20241231T235959Z",
              "FREQ=WEEKLY;WKST=SU;BYDAY=MO,TU,WE,TH,FR"
            ],
            "format": "rrule",
            "maxLength": 500,
            "minLength": 8,
            "pattern": "^FREQ=(DAILY|WEEKLY|MONTHLY|YEARLY)(?:;.*)?$",
            "title": "Rrule",
            "type": "string"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "status": {
            "$ref": "#/components/schemas/RecurringStatus"
          },
          "recurring_type": {
            "$ref": "#/components/schemas/RecurringType"
          },
          "record_payload": {
            "$ref": "#/components/schemas/PublicBillSchemaCreateIn"
          }
        },
        "required": [
          "rrule",
          "memo",
          "name",
          "date",
          "company_id",
          "status",
          "recurring_type",
          "record_payload"
        ],
        "title": "PublicRecurringBillSchemaCreateIn",
        "type": "object"
      },
      "PublicRecurringBillSchemaUpdateIn": {
        "properties": {
          "rrule": {
            "description": "Recurrence rule in iCalendar RRULE format (RFC 5545)",
            "examples": [
              "FREQ=DAILY",
              "FREQ=WEEKLY;BYDAY=MO,WE,FR",
              "FREQ=MONTHLY;BYMONTHDAY=15",
              "FREQ=YEARLY;BYMONTH=12;BYMONTHDAY=25",
              "FREQ=MONTHLY;BYDAY=1MO",
              "FREQ=WEEKLY;INTERVAL=2;BYDAY=TU,TH",
              "FREQ=MONTHLY;BYMONTHDAY=1;COUNT=12",
              "FREQ=DAILY;UNTIL=20241231T235959Z",
              "FREQ=WEEKLY;WKST=SU;BYDAY=MO,TU,WE,TH,FR"
            ],
            "format": "rrule",
            "maxLength": 500,
            "minLength": 8,
            "pattern": "^FREQ=(DAILY|WEEKLY|MONTHLY|YEARLY)(?:;.*)?$",
            "title": "Rrule",
            "type": "string"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "status": {
            "$ref": "#/components/schemas/RecurringStatus"
          },
          "recurring_type": {
            "$ref": "#/components/schemas/RecurringType"
          },
          "record_payload": {
            "$ref": "#/components/schemas/PublicBillSchemaCreateIn"
          }
        },
        "required": [
          "rrule",
          "memo",
          "name",
          "date",
          "company_id",
          "status",
          "recurring_type",
          "record_payload"
        ],
        "title": "PublicRecurringBillSchemaUpdateIn",
        "type": "object"
      },
      "PublicRecurringJournalEntryListFilterSchema": {
        "properties": {
          "search": {
            "title": "Search",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "number": {
            "title": "Number",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "recurring_type": {
            "title": "Recurring Type",
            "items": {
              "$ref": "#/components/schemas/RecurringType"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "updated_after": {
            "title": "Updated After",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "updated_before": {
            "title": "Updated Before",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "PublicRecurringJournalEntryListFilterSchema",
        "type": "object"
      },
      "PagedPublicRecurringJournalEntrySchemaOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicRecurringJournalEntrySchemaOut"
            },
            "title": "Items",
            "type": "array"
          },
          "count": {
            "title": "Count",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "count"
        ],
        "title": "PagedPublicRecurringJournalEntrySchemaOut",
        "type": "object"
      },
      "PublicRecurringJournalEntrySchemaOut": {
        "properties": {
          "created_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "updated_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "internal_id": {
            "title": "Internal Id",
            "type": "integer"
          },
          "number": {
            "title": "Number",
            "type": "integer"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "company_name": {
            "title": "Company Name",
            "type": "string"
          },
          "company_currency": {
            "title": "Company Currency",
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/RecurringStatus"
          },
          "record_payload": {
            "title": "Record Payload"
          },
          "rrule": {
            "title": "Rrule",
            "type": "string"
          },
          "next_occurrence": {
            "title": "Next Occurrence",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "last_generated": {
            "title": "Last Generated",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "recurring_type": {
            "$ref": "#/components/schemas/RecurringType"
          },
          "records": {
            "items": {
              "$ref": "#/components/schemas/PublicRecurringRecordSchemaOut"
            },
            "title": "Records",
            "type": "array"
          },
          "created_at": {
            "description": "Date and time the record was created",
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "updated_at": {
            "description": "Date and time the record was last updated",
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "internal_id",
          "number",
          "name",
          "memo",
          "date",
          "company_id",
          "company_name",
          "company_currency",
          "status",
          "record_payload",
          "rrule",
          "next_occurrence",
          "last_generated",
          "recurring_type",
          "records",
          "created_at",
          "updated_at"
        ],
        "title": "PublicRecurringJournalEntrySchemaOut",
        "type": "object"
      },
      "PublicRecurringJournalEntrySchemaCreateIn": {
        "properties": {
          "rrule": {
            "description": "Recurrence rule in iCalendar RRULE format (RFC 5545)",
            "examples": [
              "FREQ=DAILY",
              "FREQ=WEEKLY;BYDAY=MO,WE,FR",
              "FREQ=MONTHLY;BYMONTHDAY=15",
              "FREQ=YEARLY;BYMONTH=12;BYMONTHDAY=25",
              "FREQ=MONTHLY;BYDAY=1MO",
              "FREQ=WEEKLY;INTERVAL=2;BYDAY=TU,TH",
              "FREQ=MONTHLY;BYMONTHDAY=1;COUNT=12",
              "FREQ=DAILY;UNTIL=20241231T235959Z",
              "FREQ=WEEKLY;WKST=SU;BYDAY=MO,TU,WE,TH,FR"
            ],
            "format": "rrule",
            "maxLength": 500,
            "minLength": 8,
            "pattern": "^FREQ=(DAILY|WEEKLY|MONTHLY|YEARLY)(?:;.*)?$",
            "title": "Rrule",
            "type": "string"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "status": {
            "$ref": "#/components/schemas/RecurringStatus"
          },
          "recurring_type": {
            "$ref": "#/components/schemas/RecurringType"
          },
          "record_payload": {
            "$ref": "#/components/schemas/PublicJournalEntrySchemaCreateIn"
          }
        },
        "required": [
          "rrule",
          "memo",
          "name",
          "date",
          "company_id",
          "status",
          "recurring_type",
          "record_payload"
        ],
        "title": "PublicRecurringJournalEntrySchemaCreateIn",
        "type": "object"
      },
      "PublicRecurringJournalEntrySchemaUpdateIn": {
        "properties": {
          "rrule": {
            "description": "Recurrence rule in iCalendar RRULE format (RFC 5545)",
            "examples": [
              "FREQ=DAILY",
              "FREQ=WEEKLY;BYDAY=MO,WE,FR",
              "FREQ=MONTHLY;BYMONTHDAY=15",
              "FREQ=YEARLY;BYMONTH=12;BYMONTHDAY=25",
              "FREQ=MONTHLY;BYDAY=1MO",
              "FREQ=WEEKLY;INTERVAL=2;BYDAY=TU,TH",
              "FREQ=MONTHLY;BYMONTHDAY=1;COUNT=12",
              "FREQ=DAILY;UNTIL=20241231T235959Z",
              "FREQ=WEEKLY;WKST=SU;BYDAY=MO,TU,WE,TH,FR"
            ],
            "format": "rrule",
            "maxLength": 500,
            "minLength": 8,
            "pattern": "^FREQ=(DAILY|WEEKLY|MONTHLY|YEARLY)(?:;.*)?$",
            "title": "Rrule",
            "type": "string"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "status": {
            "$ref": "#/components/schemas/RecurringStatus"
          },
          "recurring_type": {
            "$ref": "#/components/schemas/RecurringType"
          },
          "record_payload": {
            "$ref": "#/components/schemas/PublicJournalEntrySchemaCreateIn"
          }
        },
        "required": [
          "rrule",
          "memo",
          "name",
          "date",
          "company_id",
          "status",
          "recurring_type",
          "record_payload"
        ],
        "title": "PublicRecurringJournalEntrySchemaUpdateIn",
        "type": "object"
      },
      "PublicCompanyListFilterSchema": {
        "properties": {
          "search": {
            "title": "Search",
            "type": [
              "string",
              "null"
            ]
          },
          "updated_after": {
            "title": "Updated After",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "updated_before": {
            "title": "Updated Before",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "title": "Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "name": {
            "title": "Name",
            "type": [
              "string",
              "null"
            ]
          },
          "parent_company_id": {
            "title": "Parent Company Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "currency_iso_4217_code": {
            "title": "Currency Iso 4217 Code",
            "items": {
              "$ref": "#/components/schemas/SystemCurrencies"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "is_active": {
            "title": "Is Active",
            "type": [
              "boolean",
              "null"
            ]
          },
          "is_elimination": {
            "title": "Is Elimination",
            "type": [
              "boolean",
              "null"
            ]
          }
        },
        "title": "PublicCompanyListFilterSchema",
        "type": "object"
      },
      "CompanySchemaOut": {
        "properties": {
          "created_at": {
            "description": "Date and time the record was created",
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "updated_at": {
            "description": "Date and time the record was last updated",
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          },
          "vat_registration_numbers": {
            "items": {
              "$ref": "#/components/schemas/VatRegistrationItemSchemaOut"
            },
            "title": "Vat Registration Numbers",
            "type": "array"
          },
          "created_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "updated_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "parent_company_id": {
            "title": "Parent Company Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies",
            "description": "The ISO 4217 code of the currency of the company."
          },
          "address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaOut"
              },
              {
                "type": "null"
              }
            ],
            "description": "Company address. Null when no address is on file."
          },
          "tin": {
            "default": "",
            "description": "Tax Identification Number. Empty string when unset.",
            "title": "Tin",
            "type": "string"
          },
          "tin_type": {
            "default": "",
            "description": "Type of TIN (ein, ssn, utr). Empty string when unset.",
            "title": "Tin Type",
            "type": "string"
          },
          "is_active": {
            "description": "Whether the company is active.",
            "title": "Is Active",
            "type": "boolean"
          },
          "is_elimination": {
            "description": "Whether the company is an elimination company.",
            "title": "Is Elimination",
            "type": "boolean"
          },
          "fiscal_year_end_month": {
            "description": "Fiscal year end month (1=January, 12=December).",
            "title": "Fiscal Year End Month",
            "type": "integer"
          }
        },
        "required": [
          "created_at",
          "updated_at",
          "id",
          "name",
          "parent_company_id",
          "currency_iso_4217_code",
          "is_active",
          "is_elimination",
          "fiscal_year_end_month"
        ],
        "title": "CompanySchemaOut",
        "type": "object"
      },
      "PagedCompanySchemaOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/CompanySchemaOut"
            },
            "title": "Items",
            "type": "array"
          },
          "count": {
            "title": "Count",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "count"
        ],
        "title": "PagedCompanySchemaOut",
        "type": "object"
      },
      "VatRegistrationItemSchemaOut": {
        "properties": {
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "country": {
            "title": "Country",
            "type": "string"
          },
          "registration_number": {
            "title": "Registration Number",
            "type": "string"
          }
        },
        "required": [
          "id",
          "country",
          "registration_number"
        ],
        "title": "VatRegistrationItemSchemaOut",
        "type": "object"
      },
      "PublicAccountListFilterSchema": {
        "description": "Public API filter schema for the Chart of Accounts list endpoint; reuses internal filter surface.",
        "properties": {
          "integration_sources": {
            "title": "Integration Sources",
            "items": {
              "$ref": "#/components/schemas/IntegrationSourceSlug"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "search": {
            "title": "Search",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "title": "Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "excluded_id": {
            "description": "Account IDs to exclude from the response. Combines with id (include set minus excluded set).",
            "title": "Excluded Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "name": {
            "title": "Name",
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "title": "Description",
            "type": [
              "string",
              "null"
            ]
          },
          "number": {
            "title": "Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "account_types": {
            "title": "Account Types",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "excluded_account_types": {
            "description": "Account types to exclude from the response. Combines with account_types (include set minus excluded set).",
            "title": "Excluded Account Types",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "is_active": {
            "title": "Is Active",
            "type": [
              "boolean",
              "null"
            ]
          },
          "is_system": {
            "title": "Is System",
            "type": [
              "boolean",
              "null"
            ]
          },
          "is_monetary": {
            "title": "Is Monetary",
            "type": [
              "boolean",
              "null"
            ]
          },
          "company_id": {
            "description": "Only filters by company_id field used in Bank and Credit Card accounts.",
            "title": "Company Id",
            "items": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "const": "null",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "uniqueItems": true,
            "type": [
              "array",
              "null"
            ]
          },
          "parent_account_id": {
            "title": "Parent Account Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "financial_account_id": {
            "description": "Only filters by financial_account_id field used in Bank and Credit Card accounts.",
            "title": "Financial Account Id",
            "items": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "const": "null",
                  "type": "string"
                }
              ]
            },
            "uniqueItems": true,
            "type": [
              "array",
              "null"
            ]
          },
          "no_financial_account": {
            "title": "No Financial Account",
            "type": [
              "boolean",
              "null"
            ]
          },
          "currency_iso_4217_code": {
            "title": "Currency Iso 4217 Code",
            "items": {
              "$ref": "#/components/schemas/SystemCurrencies"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "category_1099": {
            "title": "Category 1099",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "should_sync_pending": {
            "title": "Should Sync Pending",
            "type": [
              "boolean",
              "null"
            ]
          },
          "company_id_access": {
            "description": "A combined filter by company_id_access, and the company_id field used in Bank and Credit Card accounts.",
            "title": "Company Id Access",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "numbers": {
            "title": "Numbers",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "names": {
            "title": "Names",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "system_ref": {
            "title": "System Ref",
            "items": {
              "$ref": "#/components/schemas/SystemAccountNames"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "exclude_mapped_to_other_companies": {
            "description": "When set to a company_id, only returns accounts that are completely unmapped (no company_id and no AccountCompanyAccess). Used during migration to avoid selecting accounts already mapped to any company.",
            "title": "Exclude Mapped To Other Companies",
            "type": [
              "integer",
              "null"
            ]
          },
          "start_date": {
            "title": "Start Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "end_date": {
            "title": "End Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "updated_after": {
            "title": "Updated After",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "updated_before": {
            "title": "Updated Before",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "PublicAccountListFilterSchema",
        "type": "object"
      },
      "SystemAccountNames": {
        "enum": [
          "Accounts Receivable",
          "IC Accounts Receivable",
          "IC Due From",
          "Vendor Deposits",
          "Undeposited Funds",
          "Accumulated Depreciation",
          "Accounts Payable",
          "IC Accounts Payable",
          "IC Due To",
          "Customer Deposits",
          "Tax Payable",
          "Accrued Purchases",
          "Deferred Revenue",
          "Cumulative Translation Adjustment - Elimination",
          "Cumulative Translation Adjustment",
          "Retained Earnings",
          "Net Income",
          "Realized Gain/Loss",
          "Unrealized Gain/Loss",
          "Matching Gain/Loss",
          "Rounding Gain/Loss",
          "Inventory Shrinkage"
        ],
        "title": "SystemAccountNames",
        "type": "string"
      },
      "AccountType": {
        "enum": [
          "bank",
          "accounts_receivable",
          "other_current_asset",
          "fixed_asset",
          "unbilled_receivable",
          "deferred_expense",
          "other_asset",
          "investment",
          "accounts_payable",
          "credit_card",
          "deferred_revenue",
          "long_term_liability",
          "other_current_liability",
          "equity",
          "income",
          "cost_of_goods_sold",
          "expense",
          "other_income",
          "other_expense",
          "statistical"
        ],
        "title": "AccountType",
        "type": "string"
      },
      "Category1099": {
        "enum": [
          "NEC-Box 1",
          "MISC-Box 1",
          "MISC-Box 2",
          "MISC-Box 3",
          "MISC-Box 4",
          "MISC-Box 5",
          "MISC-Box 6",
          "MISC-Box 8",
          "MISC-Box 9",
          "MISC-Box 10",
          "MISC-Box 11",
          "MISC-Box 12",
          "MISC-Box 14",
          "MISC-Box 15",
          "INT-Box 1",
          "INT-Box 2",
          "INT-Box 3",
          "DIV-Box 1a",
          "DIV-Box 1b",
          "DIV-Box 2a",
          "DIV-Box 2b",
          "DIV-Box 2c",
          "DIV-Box 2d",
          "DIV-Box 2e",
          "DIV-Box 2f",
          "DIV-Box 3",
          "DIV-Box 4",
          "DIV-Box 5",
          "DIV-Box 6",
          "DIV-Box 7",
          "DIV-Box 8",
          "DIV-Box 9",
          "DIV-Box 10",
          "DIV-Box 12",
          "DIV-Box 13"
        ],
        "title": "Category1099",
        "type": "string"
      },
      "PagedPublicAccountSchemaOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicAccountSchemaOut"
            },
            "title": "Items",
            "type": "array"
          },
          "count": {
            "title": "Count",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "count"
        ],
        "title": "PagedPublicAccountSchemaOut",
        "type": "object"
      },
      "PublicAccountSchemaOut": {
        "properties": {
          "created_at": {
            "description": "Date and time the record was created",
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "updated_at": {
            "description": "Date and time the record was last updated",
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          },
          "created_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "updated_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "number": {
            "title": "Number",
            "type": "integer"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "is_active": {
            "title": "Is Active",
            "type": "boolean"
          },
          "is_system": {
            "title": "Is System",
            "type": "boolean"
          },
          "company_id": {
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "parent_account_id": {
            "title": "Parent Account Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "account_type": {
            "$ref": "#/components/schemas/AccountType"
          },
          "currency_iso_4217_code": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "type": "null"
              }
            ],
            "description": "The ISO 4217 code of the currency of the account. Only available for bank type accounts."
          },
          "category_1099": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Category1099"
              },
              {
                "const": "",
                "type": "string"
              }
            ],
            "title": "Category 1099"
          },
          "system_ref": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemAccountNames"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "created_at",
          "updated_at",
          "id",
          "name",
          "number",
          "description",
          "is_active",
          "is_system",
          "company_id",
          "parent_account_id",
          "account_type",
          "currency_iso_4217_code",
          "category_1099",
          "system_ref"
        ],
        "title": "PublicAccountSchemaOut",
        "type": "object"
      },
      "PublicAccountSchemaCreateIn": {
        "properties": {
          "name": {
            "maxLength": 256,
            "minLength": 2,
            "title": "Name",
            "type": "string"
          },
          "description": {
            "default": "",
            "maxLength": 512,
            "title": "Description",
            "type": "string"
          },
          "number": {
            "maximum": 9999999999,
            "minimum": 100,
            "title": "Number",
            "type": "integer"
          },
          "account_type": {
            "$ref": "#/components/schemas/AccountType"
          },
          "currency_iso_4217_code": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "type": "null"
              }
            ]
          },
          "is_active": {
            "title": "Is Active",
            "type": "boolean"
          },
          "company_id": {
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "parent_account_id": {
            "title": "Parent Account Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "category_1099": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Category1099"
              },
              {
                "const": "",
                "type": "string"
              }
            ],
            "default": "",
            "title": "Category 1099"
          },
          "allowed_company_ids": {
            "description": "Company IDs allowed to use this account in transactions. Restricts a shared chart-of-accounts entry to specific entities within your organization. Omit for no company restrictions (bank and credit card accounts use company_id instead).",
            "example": [
              101,
              102
            ],
            "title": "Allowed Company Ids",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "is_monetary": {
            "description": "Whether this account holds monetary items. If not provided, defaults based on account type.",
            "title": "Is Monetary",
            "type": [
              "boolean",
              "null"
            ]
          },
          "bank_alias": {
            "title": "Bank Alias",
            "maxLength": 256,
            "type": [
              "string",
              "null"
            ]
          },
          "bank_routing": {
            "title": "Bank Routing",
            "maxLength": 9,
            "minLength": 9,
            "pattern": "^\\d{9}$",
            "type": [
              "string",
              "null"
            ]
          },
          "bank_account_number": {
            "title": "Bank Account Number",
            "maxLength": 20,
            "minLength": 1,
            "type": [
              "string",
              "null"
            ]
          },
          "iban": {
            "title": "Iban",
            "maxLength": 34,
            "minLength": 15,
            "pattern": "^[A-Z]{2}\\d{2}[A-Z0-9]{1,30}$",
            "type": [
              "string",
              "null"
            ]
          },
          "start_bank_match_date": {
            "title": "Start Bank Match Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "name",
          "number",
          "account_type",
          "currency_iso_4217_code",
          "is_active",
          "parent_account_id"
        ],
        "title": "PublicAccountSchemaCreateIn",
        "type": "object"
      },
      "BudgetTypes": {
        "enum": [
          "income_statement",
          "balance_sheet"
        ],
        "title": "BudgetTypes",
        "type": "string"
      },
      "PublicBudgetListFilterSchema": {
        "properties": {
          "search": {
            "title": "Search",
            "type": [
              "string",
              "null"
            ]
          },
          "budget_type": {
            "title": "Budget Type",
            "items": {
              "$ref": "#/components/schemas/BudgetTypes"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "calendar_year": {
            "title": "Calendar Year",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "record_status": {
            "title": "Record Status",
            "items": {
              "$ref": "#/components/schemas/RecordStatus"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "PublicBudgetListFilterSchema",
        "type": "object"
      },
      "PagedPublicBudgetSchemaOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicBudgetSchemaOut"
            },
            "title": "Items",
            "type": "array"
          },
          "count": {
            "title": "Count",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "count"
        ],
        "title": "PagedPublicBudgetSchemaOut",
        "type": "object"
      },
      "PublicBudgetClassificationSchemaOut": {
        "properties": {
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "line_id": {
            "title": "Line Id",
            "type": "integer"
          },
          "line_name": {
            "title": "Line Name",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "line_id",
          "line_name"
        ],
        "title": "PublicBudgetClassificationSchemaOut",
        "type": "object"
      },
      "PublicBudgetSchemaOut": {
        "properties": {
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "company_id": {
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "company_name": {
            "title": "Company Name",
            "type": "string"
          },
          "budget_type": {
            "$ref": "#/components/schemas/BudgetTypes"
          },
          "calendar_year": {
            "title": "Calendar Year",
            "type": "integer"
          },
          "start_date": {
            "format": "date",
            "title": "Start Date",
            "type": "string"
          },
          "end_date": {
            "format": "date",
            "title": "End Date",
            "type": "string"
          },
          "record_status": {
            "$ref": "#/components/schemas/RecordStatus"
          },
          "actuals_offset_in_months": {
            "title": "Actuals Offset In Months",
            "type": [
              "integer",
              "null"
            ]
          },
          "classifications": {
            "items": {
              "$ref": "#/components/schemas/PublicBudgetClassificationSchemaOut"
            },
            "title": "Classifications",
            "type": "array"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "company_id",
          "company_name",
          "budget_type",
          "calendar_year",
          "start_date",
          "end_date",
          "record_status",
          "updated_at"
        ],
        "title": "PublicBudgetSchemaOut",
        "type": "object"
      },
      "ContractStatusFilter": {
        "description": "Filter-only enum that extends ContractStatus with virtual statuses.",
        "enum": [
          "draft",
          "review",
          "active",
          "completed",
          "terminated",
          "archived"
        ],
        "title": "ContractStatusFilter",
        "type": "string"
      },
      "PublicContractListFilterSchema": {
        "properties": {
          "integration_sources": {
            "title": "Integration Sources",
            "items": {
              "$ref": "#/components/schemas/IntegrationSourceSlug"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "search": {
            "title": "Search",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "title": "Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "number": {
            "title": "Number",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "customer_id": {
            "title": "Customer Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "status": {
            "title": "Status",
            "items": {
              "$ref": "#/components/schemas/ContractStatusFilter"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "start_date": {
            "title": "Start Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "end_date": {
            "title": "End Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "contract_start_date": {
            "title": "Contract Start Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "contract_end_date": {
            "title": "Contract End Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "approval_status": {
            "title": "Approval Status",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "recognition_mode": {
            "title": "Recognition Mode",
            "items": {
              "$ref": "#/components/schemas/RecognitionMode"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "recognition_strategy": {
            "title": "Recognition Strategy",
            "items": {
              "$ref": "#/components/schemas/RecognitionStrategy"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "has_auto_renewal": {
            "title": "Has Auto Renewal",
            "type": [
              "boolean",
              "null"
            ]
          },
          "has_scheduled_termination": {
            "title": "Has Scheduled Termination",
            "type": [
              "boolean",
              "null"
            ]
          },
          "days_till_expiry": {
            "title": "Days Till Expiry",
            "type": [
              "integer",
              "null"
            ]
          },
          "updated_after": {
            "title": "Updated After",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "updated_before": {
            "title": "Updated Before",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "PublicContractListFilterSchema",
        "type": "object"
      },
      "RecognitionMode": {
        "enum": [
          "individual",
          "subledger"
        ],
        "title": "RecognitionMode",
        "type": "string"
      },
      "RecognitionStrategy": {
        "enum": [
          "straight_line",
          "straight_line_start_end_even",
          "daily_prorata",
          "milestone",
          "usage_tiered",
          "usage",
          "immediate",
          "deposit_release"
        ],
        "title": "RecognitionStrategy",
        "type": "string"
      },
      "ContractCachedMetricsSchemaOut": {
        "description": "Precomputed contract metrics from the cache table.",
        "properties": {
          "tcv": {
            "title": "Tcv",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "type": [
              "string",
              "null"
            ]
          },
          "mrr": {
            "default": "0",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Mrr",
            "type": "string"
          },
          "arr": {
            "default": "0",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Arr",
            "type": "string"
          },
          "amount_invoiced_percentage": {
            "title": "Amount Invoiced Percentage",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "type": [
              "string",
              "null"
            ]
          },
          "revenue_recognized": {
            "default": "0",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Revenue Recognized",
            "type": "string"
          },
          "revenue_recognized_percentage": {
            "title": "Revenue Recognized Percentage",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "type": [
              "string",
              "null"
            ]
          },
          "next_invoice_date": {
            "title": "Next Invoice Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "ContractCachedMetricsSchemaOut",
        "type": "object"
      },
      "ContractInvoiceSchemaOut": {
        "properties": {
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "number": {
            "title": "Number",
            "type": "integer"
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "due_date": {
            "format": "date",
            "title": "Due Date",
            "type": "string"
          },
          "amount": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Amount",
            "type": "string"
          },
          "tax_amount": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Tax Amount",
            "type": "string"
          },
          "paid_total": {
            "description": "Amount that was already paid by Customer Repayment Applications or Customer Payments",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Paid Total",
            "type": "string"
          },
          "record_status": {
            "$ref": "#/components/schemas/RecordStatus"
          },
          "term_id": {
            "title": "Term Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "source": {
            "title": "Source",
            "type": "string"
          }
        },
        "required": [
          "id",
          "number",
          "date",
          "due_date",
          "amount",
          "tax_amount",
          "paid_total",
          "record_status",
          "source"
        ],
        "title": "ContractInvoiceSchemaOut",
        "type": "object"
      },
      "ContractListSchemaOut": {
        "description": "Schema for list endpoints \u2014 excludes detail-only fields (attachments, obligation_usage).",
        "properties": {
          "custom_fields": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CustomFieldValuePairOutputSchema"
            },
            "title": "Custom Fields",
            "type": "array"
          },
          "completed_approvals_count": {
            "default": 0,
            "title": "Completed Approvals Count",
            "type": "integer"
          },
          "total_approvals_count": {
            "default": 0,
            "title": "Total Approvals Count",
            "type": "integer"
          },
          "integration_remote_records": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/IntegrationRemoteRecordSchemaOut"
            },
            "title": "Integration Remote Records",
            "type": "array"
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "number": {
            "title": "Number",
            "type": "integer"
          },
          "company_id": {
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "company_name": {
            "title": "Company Name",
            "type": [
              "string",
              "null"
            ]
          },
          "company_currency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "type": "null"
              }
            ]
          },
          "customer_id": {
            "title": "Customer Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "customer_name": {
            "title": "Customer Name",
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "term_id": {
            "title": "Term Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "default_ar_account_id": {
            "title": "Default Ar Account Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "contract_template_id": {
            "title": "Contract Template Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "start_date": {
            "format": "date",
            "title": "Start Date",
            "type": "string"
          },
          "end_date": {
            "title": "End Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "bill_to_address": {
            "title": "Bill To Address",
            "type": "string"
          },
          "ship_to_address": {
            "title": "Ship To Address",
            "type": "string"
          },
          "billing_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "shipping_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "billing_anchor_weekday": {
            "title": "Billing Anchor Weekday",
            "type": [
              "integer",
              "null"
            ]
          },
          "recognition_anchor_weekday": {
            "title": "Recognition Anchor Weekday",
            "type": [
              "integer",
              "null"
            ]
          },
          "is_incomplete": {
            "title": "Is Incomplete",
            "type": "boolean"
          },
          "cutover_date": {
            "title": "Cutover Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "prior_recognized_amount": {
            "title": "Prior Recognized Amount",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "type": [
              "string",
              "null"
            ]
          },
          "default_early_termination_fee": {
            "title": "Default Early Termination Fee",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "type": [
              "string",
              "null"
            ]
          },
          "status": {
            "$ref": "#/components/schemas/ContractStatus"
          },
          "recognition_mode": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecognitionMode"
              }
            ],
            "default": "individual"
          },
          "record_status": {
            "$ref": "#/components/schemas/RecordStatus"
          },
          "is_locked": {
            "title": "Is Locked",
            "type": "boolean"
          },
          "workflow_status": {
            "title": "Workflow Status",
            "type": [
              "string",
              "null"
            ]
          },
          "pending_approvers_count": {
            "default": 0,
            "title": "Pending Approvers Count",
            "type": "integer"
          },
          "payment": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PaymentSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "revenue_recognitions": {
            "items": {
              "$ref": "#/components/schemas/RevenueRecognitionSchemaOut"
            },
            "title": "Revenue Recognitions",
            "type": "array"
          },
          "invoices": {
            "items": {
              "$ref": "#/components/schemas/ContractInvoiceSchemaOut"
            },
            "title": "Invoices",
            "type": "array"
          },
          "amount": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Amount",
            "type": "string"
          },
          "renewed_end_date": {
            "title": "Renewed End Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "next_renewal_date": {
            "title": "Next Renewal Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "days_till_expiry": {
            "title": "Days Till Expiry",
            "type": [
              "integer",
              "null"
            ]
          },
          "termination": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/EmbeddedTerminationSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "change_orders": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/EmbeddedChangeOrderSchemaOut"
            },
            "title": "Change Orders",
            "type": "array"
          },
          "cached_metrics": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ContractCachedMetricsSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "has_usage_obligations": {
            "default": false,
            "title": "Has Usage Obligations",
            "type": "boolean"
          },
          "has_usages": {
            "default": false,
            "title": "Has Usages",
            "type": "boolean"
          },
          "metrics": {
            "$ref": "#/components/schemas/ContractMetricsSchemaOut",
            "description": "Derived contract metrics (MRR, ARR, TCV, invoiced, recognized, etc.).",
            "readOnly": true
          }
        },
        "required": [
          "id",
          "number",
          "name",
          "currency_iso_4217_code",
          "memo",
          "date",
          "start_date",
          "bill_to_address",
          "ship_to_address",
          "is_incomplete",
          "status",
          "record_status",
          "is_locked",
          "revenue_recognitions",
          "invoices",
          "amount",
          "metrics"
        ],
        "title": "ContractListSchemaOut",
        "type": "object"
      },
      "ContractMetricsSchemaOut": {
        "properties": {
          "total_contract_value": {
            "title": "Total Contract Value",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "type": [
              "string",
              "null"
            ]
          },
          "mrr": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Mrr",
            "type": "string"
          },
          "arr": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Arr",
            "type": "string"
          },
          "amount_invoiced": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Amount Invoiced",
            "type": "string"
          },
          "amount_invoiced_percentage": {
            "title": "Amount Invoiced Percentage",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "type": [
              "string",
              "null"
            ]
          },
          "invoices_paid": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Invoices Paid",
            "type": "string"
          },
          "invoices_paid_percentage": {
            "title": "Invoices Paid Percentage",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "type": [
              "string",
              "null"
            ]
          },
          "revenue_recognized": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Revenue Recognized",
            "type": "string"
          },
          "revenue_recognized_percentage": {
            "title": "Revenue Recognized Percentage",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "type": [
              "string",
              "null"
            ]
          },
          "unbilled_revenue": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Unbilled Revenue",
            "type": "string"
          },
          "unrecognized_revenue": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Unrecognized Revenue",
            "type": "string"
          },
          "deferred_revenue": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Deferred Revenue",
            "type": "string"
          },
          "next_invoice_date": {
            "title": "Next Invoice Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "total_discount_amount": {
            "default": "0",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Total Discount Amount",
            "type": "string"
          },
          "total_tax_amount": {
            "default": "0",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Total Tax Amount",
            "type": "string"
          }
        },
        "required": [
          "mrr",
          "arr",
          "amount_invoiced",
          "invoices_paid",
          "revenue_recognized",
          "unbilled_revenue",
          "unrecognized_revenue",
          "deferred_revenue"
        ],
        "title": "ContractMetricsSchemaOut",
        "type": "object"
      },
      "ContractStatus": {
        "enum": [
          "draft",
          "active",
          "completed",
          "terminated",
          "archived"
        ],
        "title": "ContractStatus",
        "type": "string"
      },
      "EmbeddedChangeOrderSchemaOut": {
        "properties": {
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "number": {
            "title": "Number",
            "type": "integer"
          },
          "contract_id": {
            "title": "Contract Id",
            "type": "integer"
          },
          "effective_date": {
            "title": "Effective Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "apply_cumulative_catchup": {
            "title": "Apply Cumulative Catchup",
            "type": "boolean"
          },
          "catchup_amount": {
            "title": "Catchup Amount",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
            "type": [
              "string",
              "null"
            ]
          },
          "transaction_id": {
            "title": "Transaction Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "memo": {
            "title": "Memo",
            "type": [
              "string",
              "null"
            ]
          },
          "record_status": {
            "$ref": "#/components/schemas/RecordStatus"
          },
          "is_incomplete": {
            "title": "Is Incomplete",
            "type": "boolean"
          },
          "obligation_modifications": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/EmbeddedObligationModificationOut"
            },
            "title": "Obligation Modifications",
            "type": "array"
          },
          "obligation_additions": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/EmbeddedObligationAdditionOut"
            },
            "title": "Obligation Additions",
            "type": "array"
          }
        },
        "required": [
          "id",
          "number",
          "contract_id",
          "effective_date",
          "apply_cumulative_catchup",
          "transaction_id",
          "memo",
          "record_status",
          "is_incomplete"
        ],
        "title": "EmbeddedChangeOrderSchemaOut",
        "type": "object"
      },
      "EmbeddedObligationAdditionOut": {
        "description": "Lightweight read-only schema for obligation additions embedded in contract detail.",
        "properties": {
          "item_id": {
            "title": "Item Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "quantity": {
            "title": "Quantity",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
            "type": [
              "string",
              "null"
            ]
          },
          "rate": {
            "title": "Rate",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
            "type": [
              "string",
              "null"
            ]
          },
          "position": {
            "default": 0,
            "title": "Position",
            "type": "integer"
          },
          "memo": {
            "default": "",
            "title": "Memo",
            "type": "string"
          },
          "standalone_selling_price": {
            "title": "Standalone Selling Price",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
            "type": [
              "string",
              "null"
            ]
          },
          "recognition_strategy": {
            "title": "Recognition Strategy",
            "type": [
              "string",
              "null"
            ]
          },
          "billing_start_date": {
            "title": "Billing Start Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "billing_end_date": {
            "title": "Billing End Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "billing_frequency": {
            "title": "Billing Frequency",
            "type": [
              "string",
              "null"
            ]
          },
          "billing_interval": {
            "title": "Billing Interval",
            "type": [
              "integer",
              "null"
            ]
          },
          "recognition_start_date": {
            "title": "Recognition Start Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "recognition_end_date": {
            "title": "Recognition End Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "recognition_frequency": {
            "title": "Recognition Frequency",
            "type": [
              "string",
              "null"
            ]
          },
          "recognition_interval": {
            "title": "Recognition Interval",
            "type": [
              "integer",
              "null"
            ]
          },
          "discount_type": {
            "title": "Discount Type",
            "type": [
              "string",
              "null"
            ]
          },
          "discount_value": {
            "title": "Discount Value",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "EmbeddedObligationAdditionOut",
        "type": "object"
      },
      "EmbeddedObligationModificationOut": {
        "description": "Lightweight output schema for obligation modifications embedded in contract detail.",
        "properties": {
          "obligation_id": {
            "title": "Obligation Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "quantity": {
            "title": "Quantity",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
            "type": [
              "string",
              "null"
            ]
          },
          "rate": {
            "title": "Rate",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
            "type": [
              "string",
              "null"
            ]
          },
          "item_id": {
            "title": "Item Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "memo": {
            "title": "Memo",
            "type": [
              "string",
              "null"
            ]
          },
          "discount_type": {
            "title": "Discount Type",
            "type": [
              "string",
              "null"
            ]
          },
          "discount_value": {
            "title": "Discount Value",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
            "type": [
              "string",
              "null"
            ]
          },
          "standalone_selling_price": {
            "title": "Standalone Selling Price",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
            "type": [
              "string",
              "null"
            ]
          },
          "cancel": {
            "default": false,
            "title": "Cancel",
            "type": "boolean"
          }
        },
        "title": "EmbeddedObligationModificationOut",
        "type": "object"
      },
      "EmbeddedTerminationSchemaOut": {
        "properties": {
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "number": {
            "title": "Number",
            "type": "integer"
          },
          "contract_id": {
            "title": "Contract Id",
            "type": "integer"
          },
          "termination_type": {
            "title": "Termination Type",
            "type": "string"
          },
          "termination_date": {
            "format": "date",
            "title": "Termination Date",
            "type": "string"
          },
          "early_termination_fee": {
            "title": "Early Termination Fee",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "type": [
              "string",
              "null"
            ]
          },
          "early_termination_fee_item_id": {
            "title": "Early Termination Fee Item Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "fee_invoice_id": {
            "title": "Fee Invoice Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "refund_amount": {
            "title": "Refund Amount",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "type": [
              "string",
              "null"
            ]
          },
          "refund_credit_account_id": {
            "title": "Refund Credit Account Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "transaction_id": {
            "title": "Transaction Id",
            "type": "integer"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "record_status": {
            "$ref": "#/components/schemas/RecordStatus"
          }
        },
        "required": [
          "id",
          "number",
          "contract_id",
          "termination_type",
          "termination_date",
          "transaction_id",
          "memo",
          "date",
          "record_status"
        ],
        "title": "EmbeddedTerminationSchemaOut",
        "type": "object"
      },
      "PagedContractListSchemaOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/ContractListSchemaOut"
            },
            "title": "Items",
            "type": "array"
          },
          "count": {
            "title": "Count",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "count"
        ],
        "title": "PagedContractListSchemaOut",
        "type": "object"
      },
      "RevenueRecognitionSchemaOut": {
        "properties": {
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "number": {
            "title": "Number",
            "type": "integer"
          },
          "contract_id": {
            "title": "Contract Id",
            "type": "integer"
          },
          "performance_obligation_id": {
            "title": "Performance Obligation Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "format": "date",
            "title": "Transaction Date",
            "type": "string"
          },
          "amount": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Amount",
            "type": "string"
          },
          "transaction_id": {
            "title": "Transaction Id",
            "type": "integer"
          },
          "record_status": {
            "$ref": "#/components/schemas/RecordStatus"
          },
          "is_reversal": {
            "default": false,
            "title": "Is Reversal",
            "type": "boolean"
          },
          "income_account_id": {
            "title": "Income Account Id",
            "type": "integer"
          },
          "deferrered_revenue_account_id": {
            "title": "Deferrered Revenue Account Id",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "number",
          "contract_id",
          "date",
          "transaction_date",
          "amount",
          "transaction_id",
          "record_status",
          "income_account_id",
          "deferrered_revenue_account_id"
        ],
        "title": "RevenueRecognitionSchemaOut",
        "type": "object"
      },
      "ApprovalChainSchema": {
        "description": "Full approval chain.",
        "properties": {
          "workflow_name": {
            "title": "Workflow Name",
            "type": "string"
          },
          "workflow_version": {
            "title": "Workflow Version",
            "type": "integer"
          },
          "steps": {
            "items": {
              "$ref": "#/components/schemas/StepChainSchema"
            },
            "title": "Steps",
            "type": "array"
          }
        },
        "required": [
          "workflow_name",
          "workflow_version",
          "steps"
        ],
        "title": "ApprovalChainSchema",
        "type": "object"
      },
      "ApprovalInfoSchema": {
        "description": "Schema for complete approval workflow information.",
        "properties": {
          "workflow_name": {
            "title": "Workflow Name",
            "type": "string"
          },
          "workflow_version": {
            "title": "Workflow Version",
            "type": "integer"
          },
          "step_name": {
            "title": "Step Name",
            "type": "string"
          },
          "current_substep": {
            "title": "Current Substep",
            "type": "integer"
          },
          "substeps": {
            "items": {
              "$ref": "#/components/schemas/SubstepInfoSchema"
            },
            "title": "Substeps",
            "type": "array"
          }
        },
        "required": [
          "workflow_name",
          "workflow_version",
          "step_name",
          "current_substep",
          "substeps"
        ],
        "title": "ApprovalInfoSchema",
        "type": "object"
      },
      "ApproveCondition": {
        "description": "Condition for approving a substep.",
        "enum": [
          "any",
          "all"
        ],
        "title": "ApproveCondition",
        "type": "string"
      },
      "ApproverSchema": {
        "description": "Schema for approver information.",
        "properties": {
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "first_name": {
            "title": "First Name",
            "type": "string"
          },
          "last_name": {
            "title": "Last Name",
            "type": "string"
          },
          "email": {
            "title": "Email",
            "type": "string"
          },
          "full_name": {
            "title": "Full Name",
            "type": "string"
          },
          "avatar_url": {
            "title": "Avatar Url",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "first_name",
          "last_name",
          "email",
          "full_name"
        ],
        "title": "ApproverSchema",
        "type": "object"
      },
      "BillingCadence": {
        "enum": [
          "one_time",
          "daily",
          "weekly",
          "monthly",
          "quarterly",
          "semi_annually",
          "annually"
        ],
        "title": "BillingCadence",
        "type": "string"
      },
      "ContractCustomerCreditSchemaOut": {
        "properties": {
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "number": {
            "title": "Number",
            "type": "integer"
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "amount": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Amount",
            "type": "string"
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "record_status": {
            "$ref": "#/components/schemas/RecordStatus"
          }
        },
        "required": [
          "id",
          "number",
          "date",
          "amount",
          "currency_iso_4217_code",
          "record_status"
        ],
        "title": "ContractCustomerCreditSchemaOut",
        "type": "object"
      },
      "ContractSchemaOut": {
        "description": "Full detail schema \u2014 extends list schema with attachments and obligation usage.",
        "properties": {
          "custom_fields": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CustomFieldValuePairOutputSchema"
            },
            "title": "Custom Fields",
            "type": "array"
          },
          "completed_approvals_count": {
            "default": 0,
            "title": "Completed Approvals Count",
            "type": "integer"
          },
          "total_approvals_count": {
            "default": 0,
            "title": "Total Approvals Count",
            "type": "integer"
          },
          "integration_remote_records": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/IntegrationRemoteRecordSchemaOut"
            },
            "title": "Integration Remote Records",
            "type": "array"
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "number": {
            "title": "Number",
            "type": "integer"
          },
          "company_id": {
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "company_name": {
            "title": "Company Name",
            "type": [
              "string",
              "null"
            ]
          },
          "company_currency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "type": "null"
              }
            ]
          },
          "customer_id": {
            "title": "Customer Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "customer_name": {
            "title": "Customer Name",
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "term_id": {
            "title": "Term Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "default_ar_account_id": {
            "title": "Default Ar Account Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "contract_template_id": {
            "title": "Contract Template Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "start_date": {
            "format": "date",
            "title": "Start Date",
            "type": "string"
          },
          "end_date": {
            "title": "End Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "bill_to_address": {
            "title": "Bill To Address",
            "type": "string"
          },
          "ship_to_address": {
            "title": "Ship To Address",
            "type": "string"
          },
          "billing_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "shipping_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "billing_anchor_weekday": {
            "title": "Billing Anchor Weekday",
            "type": [
              "integer",
              "null"
            ]
          },
          "recognition_anchor_weekday": {
            "title": "Recognition Anchor Weekday",
            "type": [
              "integer",
              "null"
            ]
          },
          "is_incomplete": {
            "title": "Is Incomplete",
            "type": "boolean"
          },
          "cutover_date": {
            "title": "Cutover Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "prior_recognized_amount": {
            "title": "Prior Recognized Amount",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "type": [
              "string",
              "null"
            ]
          },
          "default_early_termination_fee": {
            "title": "Default Early Termination Fee",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "type": [
              "string",
              "null"
            ]
          },
          "status": {
            "$ref": "#/components/schemas/ContractStatus"
          },
          "recognition_mode": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecognitionMode"
              }
            ],
            "default": "individual"
          },
          "record_status": {
            "$ref": "#/components/schemas/RecordStatus"
          },
          "is_locked": {
            "title": "Is Locked",
            "type": "boolean"
          },
          "workflow_status": {
            "title": "Workflow Status",
            "type": [
              "string",
              "null"
            ]
          },
          "pending_approvers_count": {
            "default": 0,
            "title": "Pending Approvers Count",
            "type": "integer"
          },
          "payment": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PaymentSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "revenue_recognitions": {
            "items": {
              "$ref": "#/components/schemas/RevenueRecognitionSchemaOut"
            },
            "title": "Revenue Recognitions",
            "type": "array"
          },
          "invoices": {
            "items": {
              "$ref": "#/components/schemas/ContractInvoiceSchemaOut"
            },
            "title": "Invoices",
            "type": "array"
          },
          "obligations": {
            "items": {
              "$ref": "#/components/schemas/PerformanceObligationOut"
            },
            "title": "Obligations",
            "type": "array"
          },
          "obligation_usage": {
            "items": {
              "$ref": "#/components/schemas/ObligationUsageSchemaOut"
            },
            "title": "Obligation Usage",
            "type": "array"
          },
          "amount": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Amount",
            "type": "string"
          },
          "renewed_end_date": {
            "title": "Renewed End Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "next_renewal_date": {
            "title": "Next Renewal Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "days_till_expiry": {
            "title": "Days Till Expiry",
            "type": [
              "integer",
              "null"
            ]
          },
          "termination": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/EmbeddedTerminationSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "change_orders": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/EmbeddedChangeOrderSchemaOut"
            },
            "title": "Change Orders",
            "type": "array"
          },
          "customer_credits": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ContractCustomerCreditSchemaOut"
            },
            "title": "Customer Credits",
            "type": "array"
          },
          "cached_metrics": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ContractCachedMetricsSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "has_usage_obligations": {
            "default": false,
            "title": "Has Usage Obligations",
            "type": "boolean"
          },
          "has_usages": {
            "default": false,
            "title": "Has Usages",
            "type": "boolean"
          },
          "approval_info": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ApprovalInfoSchema"
              },
              {
                "type": "null"
              }
            ]
          },
          "approval_chain": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ApprovalChainSchema"
              },
              {
                "type": "null"
              }
            ]
          },
          "bank_match_status": {
            "title": "Bank Match Status",
            "type": [
              "string",
              "null"
            ]
          },
          "contract_attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "title": "Contract Attachments",
            "type": "array"
          },
          "change_orders_attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "title": "Change Orders Attachments",
            "type": "array"
          },
          "metrics": {
            "$ref": "#/components/schemas/ContractMetricsSchemaOut",
            "description": "Derived contract metrics (MRR, ARR, TCV, invoiced, recognized, etc.).",
            "readOnly": true
          }
        },
        "required": [
          "id",
          "number",
          "name",
          "currency_iso_4217_code",
          "memo",
          "date",
          "start_date",
          "bill_to_address",
          "ship_to_address",
          "is_incomplete",
          "status",
          "record_status",
          "is_locked",
          "revenue_recognitions",
          "invoices",
          "obligations",
          "obligation_usage",
          "amount",
          "metrics"
        ],
        "title": "ContractSchemaOut",
        "type": "object"
      },
      "ObligationUsageSchemaOut": {
        "properties": {
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "contract_id": {
            "title": "Contract Id",
            "type": "integer"
          },
          "obligation_id": {
            "title": "Obligation Id",
            "type": "integer"
          },
          "usage_date": {
            "format": "date",
            "title": "Usage Date",
            "type": "string"
          },
          "quantity": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
            "title": "Quantity",
            "type": "string"
          },
          "rate": {
            "title": "Rate",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,10}0*$",
            "type": [
              "string",
              "null"
            ]
          },
          "amount": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Amount",
            "type": "string"
          },
          "effective_rate": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,10}0*$",
            "title": "Effective Rate",
            "type": "string"
          },
          "revenue_recognition_id": {
            "title": "Revenue Recognition Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "status": {
            "$ref": "#/components/schemas/ObligationUsageStatus"
          },
          "invoice_status": {
            "title": "Invoice Status",
            "type": [
              "string",
              "null"
            ]
          },
          "memo": {
            "default": "",
            "title": "Memo",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          },
          "classifications": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/RecordClassificationsSchemaOut"
            },
            "title": "Classifications",
            "type": "array"
          }
        },
        "required": [
          "id",
          "contract_id",
          "obligation_id",
          "usage_date",
          "quantity",
          "amount",
          "effective_rate",
          "status",
          "created_at",
          "updated_at"
        ],
        "title": "ObligationUsageSchemaOut",
        "type": "object"
      },
      "ObligationUsageStatus": {
        "enum": [
          "draft",
          "invoiced",
          "archived"
        ],
        "title": "ObligationUsageStatus",
        "type": "string"
      },
      "PerformanceObligationOut": {
        "description": "Output schema for performance obligation (contract line item).",
        "properties": {
          "id": {
            "title": "Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "item_id": {
            "title": "Item Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "item_type": {
            "title": "Item Type",
            "type": [
              "string",
              "null"
            ]
          },
          "item_name": {
            "title": "Item Name",
            "type": [
              "string",
              "null"
            ]
          },
          "hsn_sac_code": {
            "title": "Hsn Sac Code",
            "type": [
              "string",
              "null"
            ]
          },
          "quantity": {
            "title": "Quantity",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
            "type": [
              "string",
              "null"
            ]
          },
          "rate": {
            "title": "Rate",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,10}0*$",
            "type": [
              "string",
              "null"
            ]
          },
          "position": {
            "title": "Position",
            "type": "integer"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "standalone_selling_price": {
            "title": "Standalone Selling Price",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,10}0*$",
            "type": [
              "string",
              "null"
            ]
          },
          "term_id": {
            "title": "Term Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "billing_group": {
            "default": 1,
            "minimum": 1,
            "title": "Billing Group",
            "type": "integer"
          },
          "recognition_strategy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecognitionStrategy"
              }
            ],
            "default": "straight_line"
          },
          "obligation_conditions": {
            "additionalProperties": true,
            "title": "Obligation Conditions",
            "type": "object"
          },
          "classifications": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/RecordClassificationsSchemaOut"
            },
            "title": "Classifications",
            "type": "array"
          },
          "billing_start_date": {
            "format": "date",
            "title": "Billing Start Date",
            "type": "string"
          },
          "billing_end_date": {
            "title": "Billing End Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "billing_frequency": {
            "$ref": "#/components/schemas/BillingCadence"
          },
          "billing_interval": {
            "title": "Billing Interval",
            "type": "integer"
          },
          "sync_billing_with_recognition": {
            "default": false,
            "title": "Sync Billing With Recognition",
            "type": "boolean"
          },
          "skip_invoice_generation": {
            "default": false,
            "title": "Skip Invoice Generation",
            "type": "boolean"
          },
          "recognition_start_date": {
            "format": "date",
            "title": "Recognition Start Date",
            "type": "string"
          },
          "recognition_end_date": {
            "title": "Recognition End Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "recognition_frequency": {
            "$ref": "#/components/schemas/RecognitionCadence"
          },
          "recognition_interval": {
            "title": "Recognition Interval",
            "type": "integer"
          },
          "discount_type": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DiscountType"
              },
              {
                "type": "null"
              }
            ]
          },
          "discount_value": {
            "title": "Discount Value",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
            "type": [
              "string",
              "null"
            ]
          },
          "allocated_amount": {
            "title": "Allocated Amount",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "type": [
              "string",
              "null"
            ]
          },
          "selected_vat_rate_id": {
            "title": "Selected Vat Rate Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "selected_gst_tax_rate_id": {
            "title": "Selected Gst Tax Rate Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "is_auto_renewable": {
            "default": false,
            "title": "Is Auto Renewable",
            "type": "boolean"
          },
          "auto_renewal_date": {
            "title": "Auto Renewal Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "renewed_from_id": {
            "title": "Renewed From Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "changed_from_id": {
            "title": "Changed From Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "change_lineage_root_id": {
            "title": "Change Lineage Root Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "ramp_group_id": {
            "title": "Ramp Group Id",
            "format": "uuid",
            "type": [
              "string",
              "null"
            ]
          },
          "is_incomplete": {
            "readOnly": true,
            "title": "Is Incomplete",
            "type": "boolean"
          },
          "amount": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
            "readOnly": true,
            "title": "Amount",
            "type": "string"
          },
          "discount_amount": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
            "readOnly": true,
            "title": "Discount Amount",
            "type": "string"
          },
          "net_amount": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
            "readOnly": true,
            "title": "Net Amount",
            "type": "string"
          },
          "qualifies_for_mrr": {
            "description": "Whether this obligation should be included in MRR/ARR calculations.",
            "readOnly": true,
            "title": "Qualifies For Mrr",
            "type": "boolean"
          }
        },
        "required": [
          "position",
          "memo",
          "billing_start_date",
          "billing_frequency",
          "billing_interval",
          "recognition_start_date",
          "recognition_frequency",
          "recognition_interval",
          "is_incomplete",
          "amount",
          "discount_amount",
          "net_amount",
          "qualifies_for_mrr"
        ],
        "title": "PerformanceObligationOut",
        "type": "object"
      },
      "RecognitionCadence": {
        "enum": [
          "daily",
          "weekly",
          "monthly",
          "quarterly",
          "semi_annually",
          "annually"
        ],
        "title": "RecognitionCadence",
        "type": "string"
      },
      "StepChainSchema": {
        "description": "Step in approval chain.",
        "properties": {
          "order": {
            "title": "Order",
            "type": "integer"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/StepStatus"
          },
          "approve_condition": {
            "$ref": "#/components/schemas/ApproveCondition"
          },
          "substeps": {
            "title": "Substeps",
            "items": {
              "$ref": "#/components/schemas/SubstepChainSchema"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "approvers": {
            "title": "Approvers",
            "items": {
              "$ref": "#/components/schemas/ApproverDictSchema"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "approved_by": {
            "title": "Approved By",
            "items": {
              "$ref": "#/components/schemas/ApproverDictSchema"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "rejected_by": {
            "title": "Rejected By",
            "items": {
              "$ref": "#/components/schemas/ApproverDictSchema"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "order",
          "name",
          "status",
          "approve_condition"
        ],
        "title": "StepChainSchema",
        "type": "object"
      },
      "StepStatus": {
        "description": "Status of a step in the approval chain.",
        "enum": [
          "completed",
          "pending",
          "not_started",
          "skipped"
        ],
        "title": "StepStatus",
        "type": "string"
      },
      "SubstepChainSchema": {
        "description": "Substep in approval chain.",
        "properties": {
          "order": {
            "title": "Order",
            "type": "integer"
          },
          "status": {
            "$ref": "#/components/schemas/SubstepStatus"
          },
          "approve_condition": {
            "$ref": "#/components/schemas/ApproveCondition"
          },
          "approvers": {
            "items": {
              "$ref": "#/components/schemas/ApproverDictSchema"
            },
            "title": "Approvers",
            "type": "array"
          },
          "approved_by": {
            "items": {
              "$ref": "#/components/schemas/ApproverDictSchema"
            },
            "title": "Approved By",
            "type": "array"
          },
          "rejected_by": {
            "items": {
              "$ref": "#/components/schemas/ApproverDictSchema"
            },
            "title": "Rejected By",
            "type": "array"
          }
        },
        "required": [
          "order",
          "status",
          "approve_condition",
          "approvers",
          "approved_by",
          "rejected_by"
        ],
        "title": "SubstepChainSchema",
        "type": "object"
      },
      "SubstepInfoSchema": {
        "description": "Schema for individual substep information in approval workflow.",
        "properties": {
          "order": {
            "title": "Order",
            "type": "integer"
          },
          "status": {
            "$ref": "#/components/schemas/SubstepStatus"
          },
          "approve_condition": {
            "$ref": "#/components/schemas/ApproveCondition"
          },
          "approvers": {
            "items": {
              "$ref": "#/components/schemas/ApproverSchema"
            },
            "title": "Approvers",
            "type": "array"
          },
          "approved_by": {
            "items": {
              "$ref": "#/components/schemas/ApproverSchema"
            },
            "title": "Approved By",
            "type": "array"
          },
          "rejected_by": {
            "items": {
              "$ref": "#/components/schemas/ApproverSchema"
            },
            "title": "Rejected By",
            "type": "array"
          }
        },
        "required": [
          "order",
          "status",
          "approve_condition",
          "approvers",
          "approved_by",
          "rejected_by"
        ],
        "title": "SubstepInfoSchema",
        "type": "object"
      },
      "SubstepStatus": {
        "description": "Status of a substep in the approval workflow.",
        "enum": [
          "completed",
          "pending",
          "not_started"
        ],
        "title": "SubstepStatus",
        "type": "string"
      },
      "ContractSchemaCreateIn": {
        "properties": {
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "memo": {
            "default": "",
            "maxLength": 512,
            "title": "Memo",
            "type": "string"
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "start_date": {
            "format": "date",
            "title": "Start Date",
            "type": "string"
          },
          "end_date": {
            "title": "End Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "customer_id": {
            "title": "Customer Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "name": {
            "default": "",
            "maxLength": 128,
            "title": "Name",
            "type": "string"
          },
          "currency_iso_4217_code": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              }
            ],
            "default": "USD"
          },
          "bill_to_address": {
            "default": "",
            "title": "Bill To Address",
            "type": "string"
          },
          "billing_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "ship_to_address": {
            "default": "",
            "title": "Ship To Address",
            "type": "string"
          },
          "shipping_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "obligations": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PerformanceObligationIn"
            },
            "title": "Obligations",
            "type": "array"
          },
          "term_id": {
            "title": "Term Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "default_ar_account_id": {
            "title": "Default Ar Account Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "contract_template_id": {
            "title": "Contract Template Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "billing_start_date": {
            "title": "Billing Start Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "billing_frequency": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BillingCadence"
              }
            ],
            "default": "monthly"
          },
          "billing_interval": {
            "default": 1,
            "minimum": 1,
            "title": "Billing Interval",
            "type": "integer"
          },
          "billing_anchor_weekday": {
            "description": "Optional weekday anchor for weekly billing (0=Monday)",
            "title": "Billing Anchor Weekday",
            "maximum": 6,
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          },
          "recognition_start_date": {
            "title": "Recognition Start Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "recognition_frequency": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecognitionCadence"
              }
            ],
            "default": "monthly"
          },
          "recognition_interval": {
            "default": 1,
            "minimum": 1,
            "title": "Recognition Interval",
            "type": "integer"
          },
          "recognition_anchor_weekday": {
            "description": "Optional weekday anchor for weekly recognition (0=Monday)",
            "title": "Recognition Anchor Weekday",
            "maximum": 6,
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          },
          "status": {
            "$ref": "#/components/schemas/ContractStatus"
          },
          "recognition_mode": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecognitionMode"
              }
            ],
            "default": "individual"
          },
          "contract_attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "title": "Contract Attachments",
            "type": "array"
          },
          "change_orders_attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "title": "Change Orders Attachments",
            "type": "array"
          },
          "payment": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PaymentSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "prepared_invoices": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/InvoiceSchemaCreateIn"
            },
            "title": "Prepared Invoices",
            "type": "array"
          },
          "revenue_recognitions": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/RevenueRecognitionSchemaCreateIn"
            },
            "title": "Revenue Recognitions",
            "type": "array"
          },
          "cutover_date": {
            "title": "Cutover Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "prior_recognized_amount": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Prior Recognized Amount"
          },
          "default_early_termination_fee": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Default Early Termination Fee"
          }
        },
        "required": [
          "status"
        ],
        "title": "ContractSchemaCreateIn",
        "type": "object"
      },
      "InvoiceItemIn": {
        "properties": {
          "discount_type": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DiscountType"
              },
              {
                "type": "null"
              }
            ]
          },
          "discount_value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Discount Value"
          },
          "discount_account_id": {
            "title": "Discount Account Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "record_level_discount_amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Record Level Discount Amount"
          },
          "tax": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemTaxData"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "title": "Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "item_id": {
            "title": "Item Id",
            "type": "integer"
          },
          "quantity": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
                "type": "string"
              }
            ],
            "title": "Quantity"
          },
          "rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,10}0*$",
                "type": "string"
              }
            ],
            "title": "Rate"
          },
          "position": {
            "title": "Position",
            "type": "integer"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "classifications": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/RecordClassificationsSchemaOut"
            },
            "title": "Classifications",
            "type": "array"
          },
          "company_id": {
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "account_id": {
            "title": "Account Id",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "item_id",
          "quantity",
          "rate",
          "position",
          "memo"
        ],
        "title": "InvoiceItemIn",
        "type": "object"
      },
      "InvoiceSchemaCreateIn": {
        "properties": {
          "supply_date": {
            "title": "Supply Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "place_of_supply": {
            "title": "Place Of Supply",
            "maxLength": 2,
            "type": [
              "string",
              "null"
            ]
          },
          "tax_registration_numbers": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TaxRegistrationNumbersSnapshot"
              },
              {
                "type": "null"
              }
            ]
          },
          "bill_to_address": {
            "default": "",
            "deprecated": true,
            "description": "Deprecated: send the structured billing_address / shipping_address instead.",
            "title": "Bill To Address",
            "type": [
              "string",
              "null"
            ]
          },
          "ship_to_address": {
            "default": "",
            "deprecated": true,
            "description": "Deprecated: send the structured billing_address / shipping_address instead.",
            "title": "Ship To Address",
            "type": [
              "string",
              "null"
            ]
          },
          "billing_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "shipping_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "title": "Transaction Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "origin": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Origin"
              }
            ],
            "default": "manual"
          },
          "discount_type": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DiscountType"
              },
              {
                "type": "null"
              }
            ]
          },
          "discount_value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Discount Value"
          },
          "memo": {
            "title": "Memo",
            "type": [
              "string",
              "null"
            ]
          },
          "due_date": {
            "title": "Due Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "customer_id": {
            "title": "Customer Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "currency_iso_4217_code": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "type": "null"
              }
            ]
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Exchange Rate"
          },
          "items": {
            "title": "Items",
            "items": {
              "$ref": "#/components/schemas/InvoiceItemIn"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "sales_order_id": {
            "title": "Sales Order Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          },
          "contracted": {
            "default": false,
            "title": "Contracted",
            "type": "boolean"
          },
          "contract_id": {
            "title": "Contract Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "term_id": {
            "title": "Term Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "reference_number": {
            "default": "",
            "title": "Reference Number",
            "type": "string"
          },
          "ar_account_id": {
            "title": "Ar Account Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "payment": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PaymentSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "date"
        ],
        "title": "InvoiceSchemaCreateIn",
        "type": "object"
      },
      "Origin": {
        "enum": [
          "manual",
          "integration",
          "initial_sync"
        ],
        "title": "Origin",
        "type": "string"
      },
      "PerformanceObligationIn": {
        "description": "Input schema for performance obligation (contract line item).",
        "properties": {
          "id": {
            "title": "Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "item_id": {
            "title": "Item Id",
            "minimum": 1,
            "type": [
              "integer",
              "null"
            ]
          },
          "quantity": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Quantity"
          },
          "rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,10}0*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rate"
          },
          "position": {
            "default": 0,
            "title": "Position",
            "type": "integer"
          },
          "memo": {
            "default": "",
            "maxLength": 512,
            "title": "Memo",
            "type": "string"
          },
          "standalone_selling_price": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,10}0*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Standalone Selling Price"
          },
          "term_id": {
            "title": "Term Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "billing_group": {
            "default": 1,
            "minimum": 1,
            "title": "Billing Group",
            "type": "integer"
          },
          "recognition_strategy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecognitionStrategy"
              }
            ],
            "default": "straight_line"
          },
          "obligation_conditions": {
            "additionalProperties": true,
            "title": "Obligation Conditions",
            "type": "object"
          },
          "classifications": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/RecordClassificationsSchemaOut"
            },
            "title": "Classifications",
            "type": "array"
          },
          "billing_start_date": {
            "title": "Billing Start Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "billing_end_date": {
            "title": "Billing End Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "billing_frequency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/BillingCadence"
              },
              {
                "type": "null"
              }
            ]
          },
          "billing_interval": {
            "title": "Billing Interval",
            "type": [
              "integer",
              "null"
            ]
          },
          "sync_billing_with_recognition": {
            "default": false,
            "title": "Sync Billing With Recognition",
            "type": "boolean"
          },
          "skip_invoice_generation": {
            "default": false,
            "title": "Skip Invoice Generation",
            "type": "boolean"
          },
          "recognition_start_date": {
            "title": "Recognition Start Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "recognition_end_date": {
            "title": "Recognition End Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "recognition_frequency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RecognitionCadence"
              },
              {
                "type": "null"
              }
            ]
          },
          "recognition_interval": {
            "title": "Recognition Interval",
            "type": [
              "integer",
              "null"
            ]
          },
          "discount_type": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DiscountType"
              },
              {
                "type": "null"
              }
            ]
          },
          "discount_value": {
            "anyOf": [
              {
                "exclusiveMinimum": 0.0,
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Discount Value"
          },
          "selected_vat_rate_id": {
            "title": "Selected Vat Rate Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "selected_gst_tax_rate_id": {
            "title": "Selected Gst Tax Rate Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "is_auto_renewable": {
            "default": false,
            "title": "Is Auto Renewable",
            "type": "boolean"
          },
          "ramp_group_id": {
            "title": "Ramp Group Id",
            "format": "uuid",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "PerformanceObligationIn",
        "type": "object"
      },
      "RevenueRecognitionSchemaCreateIn": {
        "properties": {
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "transaction_date": {
            "title": "Transaction Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              }
            ],
            "title": "Amount"
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          },
          "performance_obligation_id": {
            "title": "Performance Obligation Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "income_account_id": {
            "title": "Income Account Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "deferral_account_id": {
            "title": "Deferral Account Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "gross_amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Gross Amount"
          },
          "discount_amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Discount Amount"
          }
        },
        "required": [
          "date",
          "amount"
        ],
        "title": "RevenueRecognitionSchemaCreateIn",
        "type": "object"
      },
      "ObligationUsageBatchIn": {
        "description": "Batch input for creating/updating multiple usage records.",
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/ObligationUsageItemIn"
            },
            "title": "Items",
            "type": "array"
          }
        },
        "required": [
          "items"
        ],
        "title": "ObligationUsageBatchIn",
        "type": "object"
      },
      "ObligationUsageItemIn": {
        "description": "Single usage item within a batch.",
        "properties": {
          "id": {
            "title": "Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "obligation_id": {
            "title": "Obligation Id",
            "type": "integer"
          },
          "usage_date": {
            "format": "date",
            "title": "Usage Date",
            "type": "string"
          },
          "quantity": {
            "anyOf": [
              {
                "exclusiveMinimum": 0.0,
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,6}0*$",
                "type": "string"
              }
            ],
            "title": "Quantity"
          },
          "rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,10}0*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rate"
          },
          "status": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ObligationUsageStatus"
              },
              {
                "type": "null"
              }
            ]
          },
          "memo": {
            "title": "Memo",
            "type": [
              "string",
              "null"
            ]
          },
          "classifications": {
            "title": "Classifications",
            "items": {
              "$ref": "#/components/schemas/RecordClassificationsSchemaOut"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "obligation_id",
          "usage_date",
          "quantity"
        ],
        "title": "ObligationUsageItemIn",
        "type": "object"
      },
      "CustomerListFilterSchema": {
        "properties": {
          "search": {
            "title": "Search",
            "type": [
              "string",
              "null"
            ]
          },
          "updated_after": {
            "title": "Updated After",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "updated_before": {
            "title": "Updated Before",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "title": "Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "customer_type": {
            "title": "Customer Type",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "name": {
            "title": "Name",
            "type": [
              "string",
              "null"
            ]
          },
          "name_exact": {
            "title": "Name Exact",
            "type": [
              "string",
              "null"
            ]
          },
          "unique_id": {
            "title": "Unique Id",
            "type": [
              "string",
              "null"
            ]
          },
          "email": {
            "title": "Email",
            "type": [
              "string",
              "null"
            ]
          },
          "website": {
            "title": "Website",
            "type": [
              "string",
              "null"
            ]
          },
          "address": {
            "title": "Address",
            "type": [
              "string",
              "null"
            ]
          },
          "country": {
            "title": "Country",
            "type": [
              "string",
              "null"
            ]
          },
          "state": {
            "title": "State",
            "type": [
              "string",
              "null"
            ]
          },
          "phone": {
            "title": "Phone",
            "type": [
              "string",
              "null"
            ]
          },
          "record_status": {
            "title": "Record Status",
            "items": {
              "$ref": "#/components/schemas/RecordStatus"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "approval_status": {
            "title": "Approval Status",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "approval_status_scope": {
            "title": "Approval Status Scope",
            "items": {
              "$ref": "#/components/schemas/RecordStatus"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "CustomerListFilterSchema",
        "type": "object"
      },
      "CustomerListSchemaOut": {
        "properties": {
          "created_at": {
            "description": "Date and time the record was created",
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "updated_at": {
            "description": "Date and time the record was last updated",
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          },
          "custom_fields": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CustomFieldValuePairOutputSchema"
            },
            "title": "Custom Fields",
            "type": "array"
          },
          "created_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "updated_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "approval_status": {
            "title": "Approval Status",
            "type": [
              "string",
              "null"
            ]
          },
          "next_approvers": {
            "title": "Next Approvers",
            "items": {
              "$ref": "#/components/schemas/ApproverDictSchema"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "rejected_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RejectedBySchema"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "full_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "shipping_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "unique_id": {
            "title": "Unique Id",
            "type": [
              "string",
              "null"
            ]
          },
          "email": {
            "title": "Email",
            "type": "string"
          },
          "website": {
            "title": "Website",
            "type": "string"
          },
          "customer_type": {
            "title": "Customer Type",
            "type": "string"
          },
          "is_active": {
            "title": "Is Active",
            "type": "boolean"
          },
          "phone": {
            "title": "Phone",
            "type": "string"
          }
        },
        "required": [
          "created_at",
          "updated_at",
          "id",
          "full_address",
          "shipping_address",
          "name",
          "unique_id",
          "email",
          "website",
          "customer_type",
          "is_active",
          "phone"
        ],
        "title": "CustomerListSchemaOut",
        "type": "object"
      },
      "PagedCustomerListSchemaOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/CustomerListSchemaOut"
            },
            "title": "Items",
            "type": "array"
          },
          "count": {
            "title": "Count",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "count"
        ],
        "title": "PagedCustomerListSchemaOut",
        "type": "object"
      },
      "CustomerSchemaOut": {
        "properties": {
          "created_at": {
            "description": "Date and time the record was created",
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "updated_at": {
            "description": "Date and time the record was last updated",
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          },
          "custom_fields": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CustomFieldValuePairOutputSchema"
            },
            "title": "Custom Fields",
            "type": "array"
          },
          "created_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "updated_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "approval_status": {
            "title": "Approval Status",
            "type": [
              "string",
              "null"
            ]
          },
          "next_approvers": {
            "title": "Next Approvers",
            "items": {
              "$ref": "#/components/schemas/ApproverDictSchema"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "rejected_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RejectedBySchema"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "address": {
            "title": "Address",
            "type": "string"
          },
          "country": {
            "title": "Country",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "unique_id": {
            "title": "Unique Id",
            "type": [
              "string",
              "null"
            ]
          },
          "website": {
            "title": "Website",
            "type": "string"
          },
          "email": {
            "title": "Email",
            "type": "string"
          },
          "customer_type": {
            "title": "Customer Type",
            "type": "string"
          },
          "is_active": {
            "title": "Is Active",
            "type": "boolean"
          },
          "phone": {
            "title": "Phone",
            "type": "string"
          },
          "record_status": {
            "title": "Record Status",
            "type": "string"
          },
          "is_taxable": {
            "title": "Is Taxable",
            "type": "boolean"
          },
          "default_tax_code": {
            "title": "Default Tax Code",
            "type": "string"
          },
          "tax_registration_number": {
            "title": "Tax Registration Number",
            "type": "string"
          },
          "default_currency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "const": "",
                "type": "string"
              }
            ],
            "title": "Default Currency"
          },
          "shipping_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "created_at",
          "updated_at",
          "id",
          "address",
          "country",
          "name",
          "unique_id",
          "website",
          "email",
          "customer_type",
          "is_active",
          "phone",
          "record_status",
          "is_taxable",
          "default_tax_code",
          "tax_registration_number",
          "default_currency"
        ],
        "title": "CustomerSchemaOut",
        "type": "object"
      },
      "CustomerSchemaCreateIn": {
        "properties": {
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "unique_id": {
            "title": "Unique Id",
            "maxLength": 64,
            "minLength": 1,
            "type": [
              "string",
              "null"
            ]
          },
          "email": {
            "title": "Email",
            "type": "string"
          },
          "address": {
            "title": "Address",
            "type": "string"
          },
          "country": {
            "title": "Country",
            "type": "string"
          },
          "phone": {
            "maxLength": 64,
            "pattern": "(?i)^(?:[0-9\\s+\\-.\\(\\)]*|[0-9\\s+\\-.\\(\\)]+(?:\\s*(?:x|ext\\.?|extension)\\s*\\d+))$",
            "title": "Phone",
            "type": "string"
          },
          "website": {
            "title": "Website",
            "type": "string"
          },
          "is_taxable": {
            "default": false,
            "description": "Whether tax is calculated for this customer. Set to false to mark the customer as tax-exempt.",
            "title": "Is Taxable",
            "type": "boolean"
          },
          "full_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "shipping_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "name",
          "email",
          "address",
          "country",
          "phone",
          "website"
        ],
        "title": "CustomerSchemaCreateIn",
        "type": "object"
      },
      "CustomerSchemaUpdateIn": {
        "description": "Partial update payload for PUT /public/customers/{id}/.\n\nEvery field is optional: send only the fields you want to change.\nUnset fields are left untouched on the existing record. This is the\npartial-update semantic clients expect from a modern REST API.",
        "properties": {
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "name": {
            "title": "Name",
            "type": [
              "string",
              "null"
            ]
          },
          "unique_id": {
            "title": "Unique Id",
            "maxLength": 64,
            "minLength": 1,
            "type": [
              "string",
              "null"
            ]
          },
          "email": {
            "title": "Email",
            "type": [
              "string",
              "null"
            ]
          },
          "address": {
            "title": "Address",
            "type": [
              "string",
              "null"
            ]
          },
          "country": {
            "title": "Country",
            "type": [
              "string",
              "null"
            ]
          },
          "phone": {
            "title": "Phone",
            "maxLength": 64,
            "pattern": "(?i)^(?:[0-9\\s+\\-.\\(\\)]*|[0-9\\s+\\-.\\(\\)]+(?:\\s*(?:x|ext\\.?|extension)\\s*\\d+))$",
            "type": [
              "string",
              "null"
            ]
          },
          "website": {
            "title": "Website",
            "type": [
              "string",
              "null"
            ]
          },
          "full_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "shipping_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "is_active": {
            "title": "Is Active",
            "type": [
              "boolean",
              "null"
            ]
          },
          "record_status": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              },
              {
                "type": "null"
              }
            ]
          },
          "is_taxable": {
            "description": "Whether tax is calculated for this customer. Set to false to mark the customer as tax-exempt.",
            "title": "Is Taxable",
            "type": [
              "boolean",
              "null"
            ]
          }
        },
        "title": "CustomerSchemaUpdateIn",
        "type": "object"
      },
      "CustomerSchemaPatchIn": {
        "description": "Partial update payload for PATCH /public/customers/{id}/.\n\nEvery field is optional: send only the fields you want to change.\nUnset fields are left untouched on the existing record.",
        "properties": {
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "name": {
            "title": "Name",
            "type": [
              "string",
              "null"
            ]
          },
          "unique_id": {
            "title": "Unique Id",
            "maxLength": 64,
            "minLength": 1,
            "type": [
              "string",
              "null"
            ]
          },
          "email": {
            "title": "Email",
            "type": [
              "string",
              "null"
            ]
          },
          "address": {
            "title": "Address",
            "type": [
              "string",
              "null"
            ]
          },
          "country": {
            "title": "Country",
            "type": [
              "string",
              "null"
            ]
          },
          "phone": {
            "title": "Phone",
            "maxLength": 64,
            "pattern": "(?i)^(?:[0-9\\s+\\-.\\(\\)]*|[0-9\\s+\\-.\\(\\)]+(?:\\s*(?:x|ext\\.?|extension)\\s*\\d+))$",
            "type": [
              "string",
              "null"
            ]
          },
          "website": {
            "title": "Website",
            "type": [
              "string",
              "null"
            ]
          },
          "full_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "shipping_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "is_active": {
            "title": "Is Active",
            "type": [
              "boolean",
              "null"
            ]
          },
          "record_status": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              },
              {
                "type": "null"
              }
            ]
          },
          "is_taxable": {
            "description": "Whether tax is calculated for this customer. Set to false to mark the customer as tax-exempt.",
            "title": "Is Taxable",
            "type": [
              "boolean",
              "null"
            ]
          }
        },
        "title": "CustomerSchemaPatchIn",
        "type": "object"
      },
      "ItemTypes": {
        "enum": [
          "good",
          "service",
          "discount"
        ],
        "title": "ItemTypes",
        "type": "string"
      },
      "PublicItemListFilterSchema": {
        "properties": {
          "search": {
            "title": "Search",
            "type": [
              "string",
              "null"
            ]
          },
          "updated_after": {
            "title": "Updated After",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "updated_before": {
            "title": "Updated Before",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "title": "Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "name": {
            "title": "Name",
            "type": [
              "string",
              "null"
            ]
          },
          "item_type": {
            "title": "Item Type",
            "items": {
              "$ref": "#/components/schemas/ItemTypes"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "no_income_account": {
            "title": "No Income Account",
            "type": [
              "boolean",
              "null"
            ]
          },
          "no_expense_account": {
            "title": "No Expense Account",
            "type": [
              "boolean",
              "null"
            ]
          },
          "no_deferral_account": {
            "title": "No Deferral Account",
            "type": [
              "boolean",
              "null"
            ]
          },
          "no_asset_account": {
            "title": "No Asset Account",
            "type": [
              "boolean",
              "null"
            ]
          },
          "no_discount_account": {
            "title": "No Discount Account",
            "type": [
              "boolean",
              "null"
            ]
          },
          "expense_account_id": {
            "title": "Expense Account Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "income_account_id": {
            "title": "Income Account Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "deferral_account_id": {
            "title": "Deferral Account Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "asset_account_id": {
            "title": "Asset Account Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "product_tax_code_id": {
            "title": "Product Tax Code Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "discount_account_id": {
            "title": "Discount Account Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "is_active": {
            "title": "Is Active",
            "type": [
              "boolean",
              "null"
            ]
          },
          "record_status": {
            "title": "Record Status",
            "items": {
              "$ref": "#/components/schemas/RecordStatus"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "PublicItemListFilterSchema",
        "type": "object"
      },
      "PagedPublicItemSchemaOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicItemSchemaOut"
            },
            "title": "Items",
            "type": "array"
          },
          "count": {
            "title": "Count",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "count"
        ],
        "title": "PagedPublicItemSchemaOut",
        "type": "object"
      },
      "PublicItemSchemaOut": {
        "properties": {
          "created_at": {
            "description": "Date and time the record was created",
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "updated_at": {
            "description": "Date and time the record was last updated",
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          },
          "created_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "updated_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "sku": {
            "title": "Sku",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "item_type": {
            "$ref": "#/components/schemas/ItemTypes"
          },
          "is_active": {
            "title": "Is Active",
            "type": "boolean"
          },
          "record_status": {
            "$ref": "#/components/schemas/RecordStatus"
          },
          "product_tax_code_id": {
            "title": "Product Tax Code Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "expense_account_id": {
            "title": "Expense Account Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "income_account_id": {
            "title": "Income Account Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "deferral_account_id": {
            "title": "Deferral Account Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "asset_account_id": {
            "title": "Asset Account Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "discount_account_id": {
            "title": "Discount Account Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "default_classification_line_ids": {
            "title": "Default Classification Line Ids",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "default_rev_rec_method": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RecognitionStrategy"
              },
              {
                "type": "null"
              }
            ]
          },
          "default_rev_rec_invoice_frequency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/BillingCadence"
              },
              {
                "type": "null"
              }
            ]
          },
          "default_rev_rec_invoice_interval": {
            "title": "Default Rev Rec Invoice Interval",
            "type": [
              "integer",
              "null"
            ]
          },
          "default_standalone_selling_price": {
            "title": "Default Standalone Selling Price",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
            "type": [
              "string",
              "null"
            ]
          },
          "default_standalone_selling_price_currency_iso_4217_code": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "type": "null"
              }
            ]
          },
          "default_standalone_selling_price_exchange_rate": {
            "title": "Default Standalone Selling Price Exchange Rate",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "created_at",
          "updated_at",
          "id",
          "name",
          "sku",
          "description",
          "item_type",
          "is_active",
          "record_status"
        ],
        "title": "PublicItemSchemaOut",
        "type": "object"
      },
      "PublicItemSchemaCreateIn": {
        "properties": {
          "name": {
            "maxLength": 256,
            "minLength": 2,
            "title": "Name",
            "type": "string"
          },
          "is_active": {
            "title": "Is Active",
            "type": "boolean"
          },
          "sku": {
            "maxLength": 64,
            "minLength": 1,
            "title": "Sku",
            "type": "string"
          },
          "description": {
            "default": "",
            "maxLength": 512,
            "minLength": 0,
            "title": "Description",
            "type": "string"
          },
          "item_type": {
            "$ref": "#/components/schemas/ItemTypes"
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          },
          "product_tax_code_id": {
            "title": "Product Tax Code Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "expense_account_id": {
            "title": "Expense Account Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "income_account_id": {
            "title": "Income Account Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "deferral_account_id": {
            "title": "Deferral Account Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "asset_account_id": {
            "title": "Asset Account Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "discount_account_id": {
            "title": "Discount Account Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "default_classification_line_ids": {
            "title": "Default Classification Line Ids",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "default_rev_rec_method": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RecognitionStrategy"
              },
              {
                "type": "null"
              }
            ]
          },
          "default_rev_rec_invoice_frequency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/BillingCadence"
              },
              {
                "type": "null"
              }
            ]
          },
          "default_rev_rec_invoice_interval": {
            "title": "Default Rev Rec Invoice Interval",
            "minimum": 1,
            "type": [
              "integer",
              "null"
            ]
          },
          "default_standalone_selling_price": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Default Standalone Selling Price"
          },
          "default_standalone_selling_price_currency_iso_4217_code": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "const": "",
                "type": "string"
              }
            ],
            "default": "",
            "title": "Default Standalone Selling Price Currency Iso 4217 Code"
          }
        },
        "required": [
          "name",
          "is_active",
          "sku",
          "item_type"
        ],
        "title": "PublicItemSchemaCreateIn",
        "type": "object"
      },
      "PublicItemSchemaUpdateIn": {
        "properties": {
          "name": {
            "maxLength": 256,
            "minLength": 2,
            "title": "Name",
            "type": "string"
          },
          "is_active": {
            "title": "Is Active",
            "type": "boolean"
          },
          "sku": {
            "maxLength": 64,
            "minLength": 1,
            "title": "Sku",
            "type": "string"
          },
          "description": {
            "default": "",
            "maxLength": 512,
            "minLength": 0,
            "title": "Description",
            "type": "string"
          },
          "item_type": {
            "$ref": "#/components/schemas/ItemTypes"
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          },
          "product_tax_code_id": {
            "title": "Product Tax Code Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "expense_account_id": {
            "title": "Expense Account Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "income_account_id": {
            "title": "Income Account Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "deferral_account_id": {
            "title": "Deferral Account Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "asset_account_id": {
            "title": "Asset Account Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "discount_account_id": {
            "title": "Discount Account Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "default_classification_line_ids": {
            "title": "Default Classification Line Ids",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "default_rev_rec_method": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RecognitionStrategy"
              },
              {
                "type": "null"
              }
            ]
          },
          "default_rev_rec_invoice_frequency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/BillingCadence"
              },
              {
                "type": "null"
              }
            ]
          },
          "default_rev_rec_invoice_interval": {
            "title": "Default Rev Rec Invoice Interval",
            "minimum": 1,
            "type": [
              "integer",
              "null"
            ]
          },
          "default_standalone_selling_price": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Default Standalone Selling Price"
          },
          "default_standalone_selling_price_currency_iso_4217_code": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "const": "",
                "type": "string"
              }
            ],
            "default": "",
            "title": "Default Standalone Selling Price Currency Iso 4217 Code"
          }
        },
        "required": [
          "name",
          "is_active",
          "sku",
          "item_type"
        ],
        "title": "PublicItemSchemaUpdateIn",
        "type": "object"
      },
      "PublicItemSchemaPatchIn": {
        "properties": {
          "name": {
            "title": "Name",
            "maxLength": 256,
            "minLength": 2,
            "type": [
              "string",
              "null"
            ]
          },
          "is_active": {
            "title": "Is Active",
            "type": [
              "boolean",
              "null"
            ]
          },
          "sku": {
            "title": "Sku",
            "maxLength": 64,
            "minLength": 1,
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "title": "Description",
            "maxLength": 512,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ]
          },
          "item_type": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemTypes"
              },
              {
                "type": "null"
              }
            ]
          },
          "record_status": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              },
              {
                "type": "null"
              }
            ]
          },
          "product_tax_code_id": {
            "title": "Product Tax Code Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "expense_account_id": {
            "title": "Expense Account Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "income_account_id": {
            "title": "Income Account Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "deferral_account_id": {
            "title": "Deferral Account Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "asset_account_id": {
            "title": "Asset Account Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "discount_account_id": {
            "title": "Discount Account Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "default_classification_line_ids": {
            "title": "Default Classification Line Ids",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "default_rev_rec_method": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RecognitionStrategy"
              },
              {
                "type": "null"
              }
            ]
          },
          "default_rev_rec_invoice_frequency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/BillingCadence"
              },
              {
                "type": "null"
              }
            ]
          },
          "default_rev_rec_invoice_interval": {
            "title": "Default Rev Rec Invoice Interval",
            "minimum": 1,
            "type": [
              "integer",
              "null"
            ]
          },
          "default_standalone_selling_price": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Default Standalone Selling Price"
          },
          "default_standalone_selling_price_currency_iso_4217_code": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "const": "",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Default Standalone Selling Price Currency Iso 4217 Code"
          }
        },
        "title": "PublicItemSchemaPatchIn",
        "type": "object"
      },
      "ListView": {
        "enum": [
          "compact"
        ],
        "title": "ListView",
        "type": "string"
      },
      "PublicVendorListFilterSchema": {
        "properties": {
          "search": {
            "title": "Search",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "title": "Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "vendor_type": {
            "title": "Vendor Type",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "name": {
            "title": "Name",
            "type": [
              "string",
              "null"
            ]
          },
          "unique_id": {
            "title": "Unique Id",
            "type": [
              "string",
              "null"
            ]
          },
          "email": {
            "title": "Email",
            "type": [
              "string",
              "null"
            ]
          },
          "website": {
            "title": "Website",
            "type": [
              "string",
              "null"
            ]
          },
          "single_address": {
            "title": "Single Address",
            "type": [
              "string",
              "null"
            ]
          },
          "country": {
            "title": "Country",
            "type": [
              "string",
              "null"
            ]
          },
          "state": {
            "title": "State",
            "type": [
              "string",
              "null"
            ]
          },
          "phone": {
            "title": "Phone",
            "type": [
              "string",
              "null"
            ]
          },
          "is_active": {
            "title": "Is Active",
            "type": [
              "boolean",
              "null"
            ]
          },
          "is_1099_eligible": {
            "title": "Is 1099 Eligible",
            "type": [
              "boolean",
              "null"
            ]
          },
          "tin": {
            "title": "Tin",
            "type": [
              "string",
              "null"
            ]
          },
          "record_status": {
            "title": "Record Status",
            "items": {
              "$ref": "#/components/schemas/RecordStatus"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "exclude_company_id": {
            "title": "Exclude Company Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "names": {
            "title": "Names",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "start_date": {
            "title": "Start Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "end_date": {
            "title": "End Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "approval_status": {
            "title": "Approval Status",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "approval_status_scope": {
            "title": "Approval Status Scope",
            "items": {
              "$ref": "#/components/schemas/RecordStatus"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "view": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ListView"
              },
              {
                "type": "null"
              }
            ]
          },
          "company_id_access": {
            "title": "Company Id Access",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "updated_after": {
            "title": "Updated After",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "updated_before": {
            "title": "Updated Before",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "PublicVendorListFilterSchema",
        "type": "object"
      },
      "PagedPublicVendorListSchemaOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicVendorListSchemaOut"
            },
            "title": "Items",
            "type": "array"
          },
          "count": {
            "title": "Count",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "count"
        ],
        "title": "PagedPublicVendorListSchemaOut",
        "type": "object"
      },
      "PublicVendorListAddressSchemaOut": {
        "properties": {
          "street": {
            "default": "",
            "title": "Street",
            "type": "string"
          },
          "city": {
            "default": "",
            "title": "City",
            "type": "string"
          },
          "state": {
            "default": "",
            "title": "State",
            "type": "string"
          },
          "postal_code": {
            "default": "",
            "title": "Postal Code",
            "type": "string"
          },
          "country": {
            "anyOf": [
              {
                "const": "",
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/SystemCountries"
              }
            ],
            "default": "",
            "title": "Country"
          },
          "second_line": {
            "default": "",
            "title": "Second Line",
            "type": "string"
          }
        },
        "title": "PublicVendorListAddressSchemaOut",
        "type": "object"
      },
      "PublicVendorListSchemaOut": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          },
          "custom_fields": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CustomFieldValuePairOutputSchema"
            },
            "title": "Custom Fields",
            "type": "array"
          },
          "created_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "updated_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "approval_status": {
            "title": "Approval Status",
            "type": [
              "string",
              "null"
            ]
          },
          "next_approvers": {
            "title": "Next Approvers",
            "items": {
              "$ref": "#/components/schemas/ApproverDictSchema"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "rejected_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RejectedBySchema"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PublicVendorListAddressSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "vendor_type": {
            "title": "Vendor Type",
            "type": "string"
          },
          "company_id": {
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "company_name": {
            "title": "Company Name",
            "type": [
              "string",
              "null"
            ]
          },
          "customer_account_number": {
            "default": "",
            "title": "Customer Account Number",
            "type": "string"
          },
          "single_address": {
            "title": "Single Address",
            "maxLength": 2048,
            "type": [
              "string",
              "null"
            ]
          },
          "country": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCountries"
              },
              {
                "const": "",
                "type": "string"
              }
            ],
            "default": "",
            "maxLength": 2,
            "title": "Country"
          },
          "name": {
            "maxLength": 255,
            "title": "Name",
            "type": "string"
          },
          "unique_id": {
            "description": "External identifier supplied by the user to disambiguate vendors that share a display name (e.g. an ID from another system).",
            "title": "Unique Id",
            "maxLength": 64,
            "type": [
              "string",
              "null"
            ]
          },
          "website": {
            "title": "Website",
            "maxLength": 128,
            "type": [
              "string",
              "null"
            ]
          },
          "email": {
            "title": "Email",
            "maxLength": 128,
            "type": [
              "string",
              "null"
            ]
          },
          "is_active": {
            "default": true,
            "title": "Is Active",
            "type": "boolean"
          },
          "phone": {
            "title": "Phone",
            "maxLength": 64,
            "type": [
              "string",
              "null"
            ]
          },
          "is_1099_eligible": {
            "default": false,
            "title": "Is 1099 Eligible",
            "type": "boolean"
          },
          "tin": {
            "title": "Tin",
            "type": [
              "string",
              "null"
            ]
          },
          "tin_type": {
            "default": "",
            "title": "Tin Type",
            "type": [
              "string",
              "null"
            ]
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted",
            "title": "Record Status"
          }
        },
        "required": [
          "created_at",
          "updated_at",
          "id",
          "address",
          "vendor_type",
          "name"
        ],
        "title": "PublicVendorListSchemaOut",
        "type": "object"
      },
      "BankAccountType": {
        "enum": [
          "checking",
          "savings"
        ],
        "title": "BankAccountType",
        "type": "string"
      },
      "PublicVendorSchemaOut": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          },
          "custom_fields": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CustomFieldValuePairOutputSchema"
            },
            "title": "Custom Fields",
            "type": "array"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicAttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "term_id": {
            "title": "Term Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "term_name": {
            "title": "Term Name",
            "type": "string"
          },
          "preferred_payment_method_id": {
            "title": "Preferred Payment Method Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "preferred_payment_method_name": {
            "title": "Preferred Payment Method Name",
            "type": "string"
          },
          "created_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "updated_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "approval_status": {
            "title": "Approval Status",
            "type": [
              "string",
              "null"
            ]
          },
          "next_approvers": {
            "title": "Next Approvers",
            "items": {
              "$ref": "#/components/schemas/ApproverDictSchema"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "rejected_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RejectedBySchema"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "vendor_type": {
            "title": "Vendor Type",
            "type": "string"
          },
          "company_id": {
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "company_name": {
            "title": "Company Name",
            "type": [
              "string",
              "null"
            ]
          },
          "customer_account_number": {
            "default": "",
            "title": "Customer Account Number",
            "type": "string"
          },
          "name_on_check": {
            "default": "",
            "title": "Name On Check",
            "type": "string"
          },
          "bank_account_number": {
            "default": "",
            "title": "Bank Account Number",
            "type": "string"
          },
          "bank_routing_number": {
            "default": "",
            "title": "Bank Routing Number",
            "type": "string"
          },
          "bank_account_type": {
            "anyOf": [
              {
                "const": "",
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/BankAccountType"
              }
            ],
            "default": "",
            "title": "Bank Account Type"
          },
          "single_address": {
            "title": "Single Address",
            "maxLength": 2048,
            "type": [
              "string",
              "null"
            ]
          },
          "country": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCountries"
              },
              {
                "const": "",
                "type": "string"
              }
            ],
            "default": "",
            "maxLength": 2,
            "title": "Country"
          },
          "name": {
            "maxLength": 255,
            "title": "Name",
            "type": "string"
          },
          "unique_id": {
            "description": "External identifier supplied by the user to disambiguate vendors that share a display name (e.g. an ID from another system).",
            "title": "Unique Id",
            "maxLength": 64,
            "type": [
              "string",
              "null"
            ]
          },
          "website": {
            "title": "Website",
            "maxLength": 128,
            "type": [
              "string",
              "null"
            ]
          },
          "email": {
            "title": "Email",
            "maxLength": 128,
            "type": [
              "string",
              "null"
            ]
          },
          "is_active": {
            "default": true,
            "title": "Is Active",
            "type": "boolean"
          },
          "phone": {
            "title": "Phone",
            "maxLength": 64,
            "type": [
              "string",
              "null"
            ]
          },
          "is_1099_eligible": {
            "default": false,
            "title": "Is 1099 Eligible",
            "type": "boolean"
          },
          "tin": {
            "title": "Tin",
            "type": [
              "string",
              "null"
            ]
          },
          "tin_type": {
            "default": "",
            "title": "Tin Type",
            "type": [
              "string",
              "null"
            ]
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted",
            "title": "Record Status"
          }
        },
        "required": [
          "created_at",
          "updated_at",
          "term_id",
          "term_name",
          "preferred_payment_method_id",
          "preferred_payment_method_name",
          "id",
          "address",
          "vendor_type",
          "name"
        ],
        "title": "PublicVendorSchemaOut",
        "type": "object"
      },
      "PublicVendorSchemaCreateIn": {
        "properties": {
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "is_active": {
            "title": "Is Active",
            "type": "boolean"
          },
          "vendor_type": {
            "$ref": "#/components/schemas/VendorTypes"
          },
          "name": {
            "maxLength": 255,
            "minLength": 2,
            "title": "Name",
            "type": "string"
          },
          "unique_id": {
            "title": "Unique Id",
            "maxLength": 64,
            "minLength": 1,
            "type": [
              "string",
              "null"
            ]
          },
          "email": {
            "maxLength": 128,
            "title": "Email",
            "type": "string"
          },
          "phone": {
            "maxLength": 64,
            "pattern": "(?i)^(?:[0-9\\s+\\-.\\(\\)]*|[0-9\\s+\\-.\\(\\)]+(?:\\s*(?:x|ext\\.?|extension)\\s*\\d+))$",
            "title": "Phone",
            "type": "string"
          },
          "website": {
            "maxLength": 128,
            "title": "Website",
            "type": "string"
          },
          "single_address": {
            "default": "",
            "title": "Single Address",
            "maxLength": 2048,
            "type": [
              "string",
              "null"
            ]
          },
          "country": {
            "anyOf": [
              {
                "const": "",
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/SystemCountries"
              }
            ],
            "default": "",
            "title": "Country"
          },
          "is_1099_eligible": {
            "default": false,
            "title": "Is 1099 Eligible",
            "type": "boolean"
          },
          "address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "tin": {
            "default": "",
            "title": "Tin",
            "maxLength": 11,
            "type": [
              "string",
              "null"
            ]
          },
          "tin_type": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TINType",
                "maxLength": 3
              },
              {
                "type": "null"
              }
            ],
            "default": ""
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          },
          "term_id": {
            "title": "Term Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "customer_account_number": {
            "default": "",
            "maxLength": 128,
            "title": "Customer Account Number",
            "type": "string"
          },
          "name_on_check": {
            "default": "",
            "maxLength": 255,
            "title": "Name On Check",
            "type": "string"
          },
          "preferred_payment_method_id": {
            "title": "Preferred Payment Method Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "bank_account_number": {
            "default": "",
            "maxLength": 34,
            "title": "Bank Account Number",
            "type": "string"
          },
          "bank_routing_number": {
            "default": "",
            "maxLength": 9,
            "title": "Bank Routing Number",
            "type": "string"
          },
          "bank_account_type": {
            "anyOf": [
              {
                "const": "",
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/BankAccountType"
              }
            ],
            "default": "",
            "title": "Bank Account Type"
          }
        },
        "required": [
          "is_active",
          "vendor_type",
          "name",
          "email",
          "phone",
          "website"
        ],
        "title": "PublicVendorSchemaCreateIn",
        "type": "object"
      },
      "TINType": {
        "enum": [
          "ein",
          "ssn",
          "utr"
        ],
        "title": "TINType",
        "type": "string"
      },
      "VendorTypes": {
        "enum": [
          "individual",
          "company",
          "intercompany",
          "tax_agency"
        ],
        "title": "VendorTypes",
        "type": "string"
      },
      "PublicVendorSchemaUpdateIn": {
        "description": "Partial update payload for PUT /public/vendors/{id}/.\n\nEvery field is optional: send only the fields you want to change.\nUnset fields are left untouched on the existing record.",
        "properties": {
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "is_active": {
            "title": "Is Active",
            "type": [
              "boolean",
              "null"
            ]
          },
          "vendor_type": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VendorTypes"
              },
              {
                "type": "null"
              }
            ]
          },
          "name": {
            "title": "Name",
            "maxLength": 255,
            "minLength": 2,
            "type": [
              "string",
              "null"
            ]
          },
          "unique_id": {
            "title": "Unique Id",
            "maxLength": 64,
            "minLength": 1,
            "type": [
              "string",
              "null"
            ]
          },
          "email": {
            "title": "Email",
            "maxLength": 128,
            "type": [
              "string",
              "null"
            ]
          },
          "phone": {
            "title": "Phone",
            "maxLength": 64,
            "pattern": "(?i)^(?:[0-9\\s+\\-.\\(\\)]*|[0-9\\s+\\-.\\(\\)]+(?:\\s*(?:x|ext\\.?|extension)\\s*\\d+))$",
            "type": [
              "string",
              "null"
            ]
          },
          "website": {
            "title": "Website",
            "maxLength": 128,
            "type": [
              "string",
              "null"
            ]
          },
          "single_address": {
            "title": "Single Address",
            "maxLength": 2048,
            "type": [
              "string",
              "null"
            ]
          },
          "country": {
            "anyOf": [
              {
                "const": "",
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/SystemCountries"
              },
              {
                "type": "null"
              }
            ],
            "title": "Country"
          },
          "is_1099_eligible": {
            "title": "Is 1099 Eligible",
            "type": [
              "boolean",
              "null"
            ]
          },
          "address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "tin": {
            "title": "Tin",
            "maxLength": 11,
            "type": [
              "string",
              "null"
            ]
          },
          "tin_type": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TINType",
                "maxLength": 3
              },
              {
                "type": "null"
              }
            ]
          },
          "attachments": {
            "title": "Attachments",
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "record_status": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              },
              {
                "type": "null"
              }
            ]
          },
          "term_id": {
            "title": "Term Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "customer_account_number": {
            "title": "Customer Account Number",
            "maxLength": 128,
            "type": [
              "string",
              "null"
            ]
          },
          "name_on_check": {
            "title": "Name On Check",
            "maxLength": 255,
            "type": [
              "string",
              "null"
            ]
          },
          "preferred_payment_method_id": {
            "title": "Preferred Payment Method Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "bank_account_number": {
            "title": "Bank Account Number",
            "maxLength": 34,
            "type": [
              "string",
              "null"
            ]
          },
          "bank_routing_number": {
            "title": "Bank Routing Number",
            "maxLength": 9,
            "type": [
              "string",
              "null"
            ]
          },
          "bank_account_type": {
            "anyOf": [
              {
                "const": "",
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/BankAccountType"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bank Account Type"
          }
        },
        "title": "PublicVendorSchemaUpdateIn",
        "type": "object"
      },
      "PublicVendorSchemaPatchIn": {
        "description": "Partial update payload for PATCH /public/vendors/{id}/.\n\nEvery field is optional: send only the fields you want to change.\nUnset fields are left untouched on the existing record.",
        "properties": {
          "custom_fields": {
            "title": "Custom Fields",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "is_active": {
            "title": "Is Active",
            "type": [
              "boolean",
              "null"
            ]
          },
          "vendor_type": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VendorTypes"
              },
              {
                "type": "null"
              }
            ]
          },
          "name": {
            "title": "Name",
            "maxLength": 255,
            "minLength": 2,
            "type": [
              "string",
              "null"
            ]
          },
          "unique_id": {
            "title": "Unique Id",
            "maxLength": 64,
            "minLength": 1,
            "type": [
              "string",
              "null"
            ]
          },
          "email": {
            "title": "Email",
            "maxLength": 128,
            "type": [
              "string",
              "null"
            ]
          },
          "phone": {
            "title": "Phone",
            "maxLength": 64,
            "pattern": "(?i)^(?:[0-9\\s+\\-.\\(\\)]*|[0-9\\s+\\-.\\(\\)]+(?:\\s*(?:x|ext\\.?|extension)\\s*\\d+))$",
            "type": [
              "string",
              "null"
            ]
          },
          "website": {
            "title": "Website",
            "maxLength": 128,
            "type": [
              "string",
              "null"
            ]
          },
          "single_address": {
            "title": "Single Address",
            "maxLength": 2048,
            "type": [
              "string",
              "null"
            ]
          },
          "country": {
            "anyOf": [
              {
                "const": "",
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/SystemCountries"
              },
              {
                "type": "null"
              }
            ],
            "title": "Country"
          },
          "is_1099_eligible": {
            "title": "Is 1099 Eligible",
            "type": [
              "boolean",
              "null"
            ]
          },
          "address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "tin": {
            "title": "Tin",
            "maxLength": 11,
            "type": [
              "string",
              "null"
            ]
          },
          "tin_type": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TINType",
                "maxLength": 3
              },
              {
                "type": "null"
              }
            ]
          },
          "attachments": {
            "title": "Attachments",
            "items": {
              "$ref": "#/components/schemas/AttachmentSchemaOut"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "record_status": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              },
              {
                "type": "null"
              }
            ]
          },
          "term_id": {
            "title": "Term Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "customer_account_number": {
            "title": "Customer Account Number",
            "maxLength": 128,
            "type": [
              "string",
              "null"
            ]
          },
          "name_on_check": {
            "title": "Name On Check",
            "maxLength": 255,
            "type": [
              "string",
              "null"
            ]
          },
          "preferred_payment_method_id": {
            "title": "Preferred Payment Method Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "bank_account_number": {
            "title": "Bank Account Number",
            "maxLength": 34,
            "type": [
              "string",
              "null"
            ]
          },
          "bank_routing_number": {
            "title": "Bank Routing Number",
            "maxLength": 9,
            "type": [
              "string",
              "null"
            ]
          },
          "bank_account_type": {
            "anyOf": [
              {
                "const": "",
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/BankAccountType"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bank Account Type"
          }
        },
        "title": "PublicVendorSchemaPatchIn",
        "type": "object"
      },
      "PublicClassificationListFilterSchema": {
        "properties": {
          "search": {
            "title": "Search",
            "type": [
              "string",
              "null"
            ]
          },
          "updated_after": {
            "title": "Updated After",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "updated_before": {
            "title": "Updated Before",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "title": "Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "name": {
            "title": "Name",
            "type": [
              "string",
              "null"
            ]
          },
          "is_active": {
            "title": "Is Active",
            "type": [
              "boolean",
              "null"
            ]
          },
          "is_required": {
            "title": "Is Required",
            "type": [
              "boolean",
              "null"
            ]
          }
        },
        "title": "PublicClassificationListFilterSchema",
        "type": "object"
      },
      "PagedPublicClassificationSchemaOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicClassificationSchemaOut"
            },
            "title": "Items",
            "type": "array"
          },
          "count": {
            "title": "Count",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "count"
        ],
        "title": "PagedPublicClassificationSchemaOut",
        "type": "object"
      },
      "PublicClassifiableRecords": {
        "enum": [
          "purchase_order",
          "sales_order",
          "cash_sale",
          "invoice",
          "bill",
          "direct_expense",
          "vendor_credit",
          "journal_entry",
          "intercompany_journal_entry",
          "customer_credit",
          "customer_deposit",
          "statistical_journal"
        ],
        "title": "PublicClassifiableRecords",
        "type": "string"
      },
      "PublicClassificationSchemaOut": {
        "properties": {
          "created_at": {
            "description": "Date and time the record was created",
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "updated_at": {
            "description": "Date and time the record was last updated",
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          },
          "created_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "updated_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "selections": {
            "items": {
              "$ref": "#/components/schemas/PublicSelectionItemOut"
            },
            "title": "Selections",
            "type": "array"
          },
          "required_for_records": {
            "items": {
              "$ref": "#/components/schemas/PublicClassifiableRecords"
            },
            "title": "Required For Records",
            "type": "array"
          },
          "parent_id": {
            "title": "Parent Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "parent_name": {
            "title": "Parent Name",
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "maxLength": 128,
            "title": "Name",
            "type": "string"
          },
          "is_active": {
            "default": true,
            "title": "Is Active",
            "type": "boolean"
          }
        },
        "required": [
          "created_at",
          "updated_at",
          "id",
          "selections",
          "required_for_records",
          "parent_id",
          "parent_name",
          "name"
        ],
        "title": "PublicClassificationSchemaOut",
        "type": "object"
      },
      "PublicSelectionItemOut": {
        "properties": {
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "name": {
            "maxLength": 128,
            "minLength": 2,
            "title": "Name",
            "type": "string"
          },
          "is_active": {
            "title": "Is Active",
            "type": "boolean"
          },
          "parent_id": {
            "title": "Parent Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "parent_name": {
            "title": "Parent Name",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "name",
          "is_active",
          "parent_id",
          "parent_name"
        ],
        "title": "PublicSelectionItemOut",
        "type": "object"
      },
      "PublicClassificationSchemaCreateIn": {
        "properties": {
          "id": {
            "title": "Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "name": {
            "maxLength": 128,
            "minLength": 2,
            "title": "Name",
            "type": "string"
          },
          "is_active": {
            "title": "Is Active",
            "type": "boolean"
          },
          "selections": {
            "items": {
              "$ref": "#/components/schemas/PublicSelectionItemIn"
            },
            "title": "Selections",
            "type": "array"
          },
          "required_for_records": {
            "items": {
              "$ref": "#/components/schemas/PublicClassifiableRecords"
            },
            "title": "Required For Records",
            "type": "array"
          },
          "parent_id": {
            "title": "Parent Id",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "name",
          "is_active",
          "selections",
          "required_for_records",
          "parent_id"
        ],
        "title": "PublicClassificationSchemaCreateIn",
        "type": "object"
      },
      "PublicSelectionItemIn": {
        "properties": {
          "id": {
            "title": "Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "name": {
            "maxLength": 128,
            "minLength": 2,
            "title": "Name",
            "type": "string"
          },
          "is_active": {
            "title": "Is Active",
            "type": "boolean"
          },
          "parent_id": {
            "title": "Parent Id",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "name",
          "is_active",
          "parent_id"
        ],
        "title": "PublicSelectionItemIn",
        "type": "object"
      },
      "PublicClassificationSchemaUpdateIn": {
        "properties": {
          "id": {
            "title": "Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "name": {
            "maxLength": 128,
            "minLength": 2,
            "title": "Name",
            "type": "string"
          },
          "is_active": {
            "title": "Is Active",
            "type": "boolean"
          },
          "selections": {
            "items": {
              "$ref": "#/components/schemas/PublicSelectionItemIn"
            },
            "title": "Selections",
            "type": "array"
          },
          "required_for_records": {
            "items": {
              "$ref": "#/components/schemas/PublicClassifiableRecords"
            },
            "title": "Required For Records",
            "type": "array"
          },
          "parent_id": {
            "title": "Parent Id",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "name",
          "is_active",
          "selections",
          "required_for_records",
          "parent_id"
        ],
        "title": "PublicClassificationSchemaUpdateIn",
        "type": "object"
      },
      "PublicClassificationSchemaPatchIn": {
        "description": "Partial update payload for PATCH /public/classifications/{id}/.\n\nEvery field is optional: send only the fields you want to change.\nUnset fields are left untouched on the existing record.\n\nNote on list fields:\n\n- `selections` absent \u2192 existing classification lines are preserved.\n  Sending `[]` deletes all existing lines.\n- `required_for_records` absent \u2192 existing record-type associations\n  are preserved. Sending `[]` removes them all.",
        "properties": {
          "name": {
            "title": "Name",
            "maxLength": 128,
            "minLength": 2,
            "type": [
              "string",
              "null"
            ]
          },
          "is_active": {
            "title": "Is Active",
            "type": [
              "boolean",
              "null"
            ]
          },
          "selections": {
            "title": "Selections",
            "items": {
              "$ref": "#/components/schemas/PublicSelectionItemIn"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "required_for_records": {
            "title": "Required For Records",
            "items": {
              "$ref": "#/components/schemas/PublicClassifiableRecords"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "parent_id": {
            "title": "Parent Id",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "title": "PublicClassificationSchemaPatchIn",
        "type": "object"
      },
      "PublicClassificationLineListFilterSchema": {
        "properties": {
          "search": {
            "title": "Search",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "title": "Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "name": {
            "title": "Name",
            "type": [
              "string",
              "null"
            ]
          },
          "is_active": {
            "title": "Is Active",
            "type": [
              "boolean",
              "null"
            ]
          },
          "classification_id": {
            "title": "Classification Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "PublicClassificationLineListFilterSchema",
        "type": "object"
      },
      "PagedPublicClassificationLineSchemaOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicClassificationLineSchemaOut"
            },
            "title": "Items",
            "type": "array"
          },
          "count": {
            "title": "Count",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "count"
        ],
        "title": "PagedPublicClassificationLineSchemaOut",
        "type": "object"
      },
      "PublicClassificationLineSchemaOut": {
        "properties": {
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "is_active": {
            "title": "Is Active",
            "type": "boolean"
          },
          "classification_id": {
            "title": "Classification Id",
            "type": "integer"
          },
          "classification_name": {
            "title": "Classification Name",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "is_active",
          "classification_id",
          "classification_name"
        ],
        "title": "PublicClassificationLineSchemaOut",
        "type": "object"
      },
      "PublicCustomFieldListFilterSchema": {
        "properties": {
          "search": {
            "title": "Search",
            "type": [
              "string",
              "null"
            ]
          },
          "updated_after": {
            "title": "Updated After",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "updated_before": {
            "title": "Updated Before",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "title": "Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "field_type": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/FieldType"
              },
              {
                "type": "null"
              }
            ]
          },
          "is_active": {
            "title": "Is Active",
            "type": [
              "boolean",
              "null"
            ]
          },
          "name": {
            "title": "Name",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "PublicCustomFieldListFilterSchema",
        "type": "object"
      },
      "PagedPublicCustomFieldSchemaOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicCustomFieldSchemaOut"
            },
            "title": "Items",
            "type": "array"
          },
          "count": {
            "title": "Count",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "count"
        ],
        "title": "PagedPublicCustomFieldSchemaOut",
        "type": "object"
      },
      "PublicCustomFieldSchemaOut": {
        "properties": {
          "created_at": {
            "description": "Date and time the record was created",
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "updated_at": {
            "description": "Date and time the record was last updated",
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "company_id": {
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "company_ids": {
            "default": [],
            "items": {
              "type": "integer"
            },
            "title": "Company Ids",
            "type": "array"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": [
              "string",
              "null"
            ]
          },
          "helper_text": {
            "title": "Helper Text",
            "type": [
              "string",
              "null"
            ]
          },
          "field_type": {
            "$ref": "#/components/schemas/FieldType"
          },
          "applies_to": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AppliesToItemSchema"
            },
            "title": "Applies To",
            "type": "array"
          },
          "default_value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Default Value"
          },
          "options": {
            "title": "Options",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "is_active": {
            "title": "Is Active",
            "type": "boolean"
          }
        },
        "required": [
          "created_at",
          "updated_at",
          "id",
          "name",
          "field_type",
          "is_active"
        ],
        "title": "PublicCustomFieldSchemaOut",
        "type": "object"
      },
      "PublicCustomFieldSchemaCreateIn": {
        "properties": {
          "name": {
            "maxLength": 32,
            "minLength": 2,
            "title": "Name",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": [
              "string",
              "null"
            ]
          },
          "helper_text": {
            "title": "Helper Text",
            "type": [
              "string",
              "null"
            ]
          },
          "field_type": {
            "$ref": "#/components/schemas/FieldType"
          },
          "applies_to": {
            "items": {
              "$ref": "#/components/schemas/AppliesToItemSchema"
            },
            "title": "Applies To",
            "type": "array"
          },
          "default_value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Default Value"
          },
          "company_id": {
            "description": "Single company id this custom field is scoped to (merged into `company_ids`). Omit for an org-wide field.",
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "company_ids": {
            "description": "List of company ids this custom field is scoped to. Omit for an org-wide field.",
            "title": "Company Ids",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "is_active": {
            "default": true,
            "title": "Is Active",
            "type": "boolean"
          },
          "options": {
            "description": "Allowed values for single_select / multi_select fields",
            "title": "Options",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "name",
          "field_type",
          "applies_to"
        ],
        "title": "PublicCustomFieldSchemaCreateIn",
        "type": "object"
      },
      "PublicCustomFieldSchemaUpdateIn": {
        "properties": {
          "name": {
            "maxLength": 32,
            "minLength": 2,
            "title": "Name",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": [
              "string",
              "null"
            ]
          },
          "helper_text": {
            "title": "Helper Text",
            "type": [
              "string",
              "null"
            ]
          },
          "field_type": {
            "$ref": "#/components/schemas/FieldType"
          },
          "applies_to": {
            "items": {
              "$ref": "#/components/schemas/AppliesToItemSchema"
            },
            "title": "Applies To",
            "type": "array"
          },
          "default_value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Default Value"
          },
          "company_id": {
            "description": "Single company id this custom field is scoped to (merged into `company_ids`). Omit for an org-wide field.",
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "company_ids": {
            "description": "List of company ids this custom field is scoped to. Omit for an org-wide field.",
            "title": "Company Ids",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "is_active": {
            "default": true,
            "title": "Is Active",
            "type": "boolean"
          },
          "options": {
            "description": "Allowed values for single_select / multi_select fields",
            "title": "Options",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "name",
          "field_type",
          "applies_to"
        ],
        "title": "PublicCustomFieldSchemaUpdateIn",
        "type": "object"
      },
      "PaperCheckSourceRecordType": {
        "description": "Allowed source record types for paper checks.",
        "enum": [
          "direct_expense",
          "vendor_payment",
          "vendor_prepayment",
          "customer_refund"
        ],
        "title": "PaperCheckSourceRecordType",
        "type": "string"
      },
      "PublicPaperCheckListFilterSchema": {
        "description": "Filter schema for listing paper checks.\n\nAll filters are optional and can be combined. Multiple values for the same\nfilter are treated as OR conditions.",
        "properties": {
          "search": {
            "title": "Search",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "description": "Filter by paper check IDs",
            "title": "Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "record_status": {
            "description": "Filter by status: 'not_printed', 'printed', or 'archived'",
            "title": "Record Status",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "company_id": {
            "description": "Filter by company IDs",
            "title": "Company Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "transaction_type": {
            "description": "Filter by transaction type: 'direct_expense', 'vendor_payment', 'vendor_prepayment', 'customer_refund'",
            "title": "Transaction Type",
            "items": {
              "$ref": "#/components/schemas/PaperCheckSourceRecordType"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "vendor_id": {
            "description": "Filter by vendor IDs (for vendor-related checks)",
            "title": "Vendor Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "customer_id": {
            "description": "Filter by customer IDs (for customer refund checks)",
            "title": "Customer Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "account_id": {
            "description": "Filter by bank account IDs",
            "title": "Account Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "start_date": {
            "description": "Filter checks created on or after this date (YYYY-MM-DD)",
            "title": "Start Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "end_date": {
            "description": "Filter checks created on or before this date (YYYY-MM-DD)",
            "title": "End Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "PublicPaperCheckListFilterSchema",
        "type": "object"
      },
      "PagedPublicPaperCheckSchemaOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicPaperCheckSchemaOut"
            },
            "title": "Items",
            "type": "array"
          },
          "count": {
            "title": "Count",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "count"
        ],
        "title": "PagedPublicPaperCheckSchemaOut",
        "type": "object"
      },
      "PublicPaperCheckSchemaOut": {
        "description": "Schema for paper check output in the public API.\n\nA paper check represents a physical check that can be printed for payments.\nPaper checks are associated with transactions such as vendor payments,\ndirect expenses, vendor prepayments, or customer refunds.",
        "properties": {
          "id": {
            "description": "Unique identifier for the paper check",
            "example": 12345,
            "title": "Id",
            "type": "integer"
          },
          "created_at": {
            "description": "Date when the paper check was created (returned as date only)",
            "example": "2024-01-15",
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "transaction_date": {
            "description": "Date of the underlying transaction",
            "example": "2024-01-15",
            "format": "date",
            "title": "Transaction Date",
            "type": "string"
          },
          "source_record_type": {
            "$ref": "#/components/schemas/PaperCheckSourceRecordType",
            "description": "Type of the source record (e.g., 'direct_expense', 'vendor_payment', 'customer_refund')",
            "example": "vendor_payment"
          },
          "source_record_id": {
            "description": "ID of the source record (e.g., the VendorPayment ID)",
            "example": 789,
            "title": "Source Record Id",
            "type": "integer"
          },
          "source_record_number": {
            "description": "Number of the source record (e.g., vendor payment number)",
            "example": 1001,
            "title": "Source Record Number",
            "type": "integer"
          },
          "check_number": {
            "description": "The check number printed on the physical check",
            "example": "10542",
            "title": "Check Number",
            "type": "string"
          },
          "company_id": {
            "description": "ID of the company issuing the check",
            "example": 456,
            "title": "Company Id",
            "type": "integer"
          },
          "company_name": {
            "description": "Name of the company issuing the check",
            "example": "Acme Corporation",
            "title": "Company Name",
            "type": "string"
          },
          "memo": {
            "description": "Memo or description for the check",
            "example": "Payment for Invoice #1234",
            "title": "Memo",
            "type": "string"
          },
          "amount": {
            "description": "Amount of the check",
            "example": "1500.00",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Amount",
            "type": "string"
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies",
            "description": "ISO 4217 currency code for the check amount",
            "example": "USD"
          },
          "account_number": {
            "description": "Number of the bank account the check is drawn from",
            "example": 321,
            "title": "Account Number",
            "type": "integer"
          },
          "account_name": {
            "description": "Name of the bank account the check is drawn from",
            "example": "Operating Account",
            "title": "Account Name",
            "type": "string"
          },
          "payee_name": {
            "description": "Name of the payee (vendor or customer receiving the check)",
            "example": "ABC Suppliers Inc.",
            "title": "Payee Name",
            "type": [
              "string",
              "null"
            ]
          },
          "customer_id": {
            "description": "ID of the customer if this is a customer refund check",
            "example": 567,
            "title": "Customer Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "customer_name": {
            "description": "Name of the customer if this is a customer refund check",
            "example": "John Smith",
            "title": "Customer Name",
            "type": [
              "string",
              "null"
            ]
          },
          "vendor_id": {
            "description": "ID of the vendor if this is a vendor payment check",
            "example": 890,
            "title": "Vendor Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "vendor_name": {
            "description": "Name of the vendor if this is a vendor payment check",
            "example": "ABC Suppliers Inc.",
            "title": "Vendor Name",
            "type": [
              "string",
              "null"
            ]
          },
          "record_status": {
            "description": "Status of the paper check: 'not_printed' (queued), 'printed', or 'archived'",
            "enum": [
              "printed",
              "not_printed",
              "archived"
            ],
            "example": "printed",
            "title": "Record Status",
            "type": "string"
          }
        },
        "required": [
          "id",
          "created_at",
          "transaction_date",
          "source_record_type",
          "source_record_id",
          "source_record_number",
          "check_number",
          "company_id",
          "company_name",
          "memo",
          "amount",
          "currency_iso_4217_code",
          "account_number",
          "account_name",
          "record_status"
        ],
        "title": "PublicPaperCheckSchemaOut",
        "type": "object"
      },
      "PublicPaperCheckWithPDFContentSchemaOut": {
        "description": "Schema for paper check with PDF content.\n\nReturned when immediately printing a check. Contains both the paper check\ndetails and the PDF content encoded in base64.",
        "properties": {
          "paper_check": {
            "$ref": "#/components/schemas/PublicPaperCheckSchemaOut",
            "description": "The created paper check details"
          },
          "pdf_content": {
            "description": "Base64-encoded PDF content of the printed check",
            "title": "Pdf Content",
            "type": "string"
          }
        },
        "required": [
          "paper_check",
          "pdf_content"
        ],
        "title": "PublicPaperCheckWithPDFContentSchemaOut",
        "type": "object"
      },
      "PublicPrintNowPayload": {
        "description": "Request body for immediately printing a check.\n\nUse this endpoint when you need to print a single check right away.\nThe check will be created and marked as PRINTED immediately.",
        "properties": {
          "transaction_id": {
            "description": "ID of the transaction to print a check for. Must be a printable transaction type (direct expense, vendor payment, vendor prepayment, or customer refund).",
            "example": 12345,
            "title": "Transaction Id",
            "type": "integer"
          },
          "template_id": {
            "description": "Optional ID of a PaperCheckTemplate to use for formatting. If not provided, the default template will be used.",
            "example": 1,
            "title": "Template Id",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "transaction_id"
        ],
        "title": "PublicPrintNowPayload",
        "type": "object"
      },
      "PublicPrintLaterPayload": {
        "description": "Request body for queuing checks for later batch printing.\n\nUse this endpoint when you want to queue multiple checks to be printed\ntogether in a batch. The checks will be created with status NOT_PRINTED.",
        "properties": {
          "transaction_ids": {
            "description": "List of transaction IDs to create paper checks for. Each transaction must be a printable type and must not already have an active paper check.",
            "example": [
              12345,
              12346,
              12347
            ],
            "items": {
              "type": "integer"
            },
            "title": "Transaction Ids",
            "type": "array"
          }
        },
        "required": [
          "transaction_ids"
        ],
        "title": "PublicPrintLaterPayload",
        "type": "object"
      },
      "PublicPaperCheckBatchPrintResponse": {
        "description": "Schema for batch print response.\n\nContains the merged PDF with all checks and metadata about each printed check.",
        "properties": {
          "pdf_content": {
            "description": "Base64-encoded PDF content containing all printed checks",
            "title": "Pdf Content",
            "type": "string"
          },
          "printed_checks": {
            "description": "List of checks that were printed with their assigned check numbers",
            "items": {
              "$ref": "#/components/schemas/PublicPrintBatchResponseItem"
            },
            "title": "Printed Checks",
            "type": "array"
          },
          "total_printed": {
            "description": "Total number of checks printed in this batch",
            "example": 5,
            "title": "Total Printed",
            "type": "integer"
          }
        },
        "required": [
          "pdf_content",
          "printed_checks",
          "total_printed"
        ],
        "title": "PublicPaperCheckBatchPrintResponse",
        "type": "object"
      },
      "PublicPrintBatchResponseItem": {
        "description": "Details of a single check printed in a batch.",
        "properties": {
          "paper_check_id": {
            "description": "ID of the paper check that was printed",
            "example": 12345,
            "title": "Paper Check Id",
            "type": "integer"
          },
          "check_number": {
            "description": "The check number assigned to this check",
            "example": "10542",
            "title": "Check Number",
            "type": "string"
          }
        },
        "required": [
          "paper_check_id",
          "check_number"
        ],
        "title": "PublicPrintBatchResponseItem",
        "type": "object"
      },
      "PublicPrintBatchPayload": {
        "description": "Request body for batch printing queued checks.\n\nUse this endpoint to print multiple queued checks at once. Check numbers\nwill be assigned sequentially starting from first_check_number.",
        "properties": {
          "paper_check_ids": {
            "description": "List of paper check IDs to print. Checks must have status 'not_printed'. The order of IDs determines the order of checks in the PDF and check number assignment.",
            "example": [
              101,
              102,
              103
            ],
            "items": {
              "type": "integer"
            },
            "title": "Paper Check Ids",
            "type": "array"
          },
          "first_check_number": {
            "description": "Starting check number for this batch. If None, auto-assigns from bank account sequence. Subsequent checks will be numbered sequentially.",
            "example": 10001,
            "title": "First Check Number",
            "minimum": 1,
            "type": [
              "integer",
              "null"
            ]
          },
          "template_id": {
            "description": "Optional ID of a PaperCheckTemplate to use for formatting. If not provided, the default template will be used.",
            "example": 1,
            "title": "Template Id",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "paper_check_ids"
        ],
        "title": "PublicPrintBatchPayload",
        "type": "object"
      },
      "PublicRecordType": {
        "description": "Supported record types for workflows.",
        "enum": [
          "invoice",
          "bill",
          "journal_entry",
          "bank_transfer",
          "purchase_order",
          "sales_order",
          "intercompany_journal_entry",
          "contract",
          "customer_credit",
          "direct_expense",
          "cash_sale",
          "customer_prepayment",
          "customer_deposit",
          "customer_payment",
          "customer_refund",
          "vendor_prepayment_application",
          "customer_prepayment_application",
          "vendor_payment",
          "vendor_credit",
          "vendor_refund",
          "vendor_prepayment",
          "vendor",
          "customer"
        ],
        "title": "PublicRecordType",
        "type": "string"
      },
      "PublicWorkflowListFilterSchema": {
        "description": "Filter schema for listing workflows.",
        "properties": {
          "search": {
            "title": "Search",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "title": "Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "record_type": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PublicRecordType"
              },
              {
                "type": "null"
              }
            ]
          },
          "is_active": {
            "title": "Is Active",
            "type": [
              "boolean",
              "null"
            ]
          }
        },
        "title": "PublicWorkflowListFilterSchema",
        "type": "object"
      },
      "PagedPublicWorkflowListSchemaOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicWorkflowListSchemaOut"
            },
            "title": "Items",
            "type": "array"
          },
          "count": {
            "title": "Count",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "count"
        ],
        "title": "PagedPublicWorkflowListSchemaOut",
        "type": "object"
      },
      "PublicWorkflowListSchemaOut": {
        "description": "Schema for workflow list output (lighter than full schema).",
        "properties": {
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "record_type": {
            "$ref": "#/components/schemas/PublicRecordType"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "is_active": {
            "title": "Is Active",
            "type": "boolean"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "version": {
            "title": "Version",
            "type": "integer"
          },
          "priority": {
            "title": "Priority",
            "type": "integer"
          },
          "company_ids": {
            "items": {
              "type": "integer"
            },
            "title": "Company Ids",
            "type": "array"
          },
          "applies_to_all_companies": {
            "title": "Applies To All Companies",
            "type": "boolean"
          },
          "allow_self_approval": {
            "title": "Allow Self Approval",
            "type": "boolean"
          },
          "pending_approval_count": {
            "title": "Pending Approval Count",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "record_type",
          "name",
          "is_active",
          "description",
          "version",
          "priority",
          "company_ids",
          "applies_to_all_companies",
          "allow_self_approval",
          "pending_approval_count"
        ],
        "title": "PublicWorkflowListSchemaOut",
        "type": "object"
      },
      "PublicExecutionStateListFilterSchema": {
        "description": "Filter schema for listing execution states.",
        "properties": {
          "search": {
            "title": "Search",
            "type": [
              "string",
              "null"
            ]
          },
          "workflow_id": {
            "title": "Workflow Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "status": {
            "title": "Status",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "record_type": {
            "title": "Record Type",
            "type": [
              "string",
              "null"
            ]
          },
          "initiator_id": {
            "title": "Initiator Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "PublicExecutionStateListFilterSchema",
        "type": "object"
      },
      "PagedPublicWorkflowExecutionStateSchemaOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicWorkflowExecutionStateSchemaOut"
            },
            "title": "Items",
            "type": "array"
          },
          "count": {
            "title": "Count",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "count"
        ],
        "title": "PagedPublicWorkflowExecutionStateSchemaOut",
        "type": "object"
      },
      "PublicWorkflowExecutionStateSchemaOut": {
        "description": "Schema for workflow execution state output.",
        "properties": {
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "workflow_id": {
            "title": "Workflow Id",
            "type": "integer"
          },
          "workflow_name": {
            "title": "Workflow Name",
            "type": "string"
          },
          "record_id": {
            "title": "Record Id",
            "type": "integer"
          },
          "record_type": {
            "title": "Record Type",
            "type": "string"
          },
          "current_step": {
            "title": "Current Step",
            "type": "integer"
          },
          "current_substep": {
            "title": "Current Substep",
            "type": "integer"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "requested_approver_ids": {
            "items": {
              "type": "integer"
            },
            "title": "Requested Approver Ids",
            "type": "array"
          },
          "approved_by_ids": {
            "items": {
              "type": "integer"
            },
            "title": "Approved By Ids",
            "type": "array"
          },
          "rejected_by_id": {
            "title": "Rejected By Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "rejection_reason": {
            "title": "Rejection Reason",
            "type": [
              "string",
              "null"
            ]
          },
          "initiator_id": {
            "title": "Initiator Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "id",
          "workflow_id",
          "workflow_name",
          "record_id",
          "record_type",
          "current_step",
          "current_substep",
          "status",
          "requested_approver_ids",
          "approved_by_ids",
          "rejected_by_id",
          "rejection_reason",
          "initiator_id",
          "created_at",
          "updated_at"
        ],
        "title": "PublicWorkflowExecutionStateSchemaOut",
        "type": "object"
      },
      "PublicApprovalActionSchemaOut": {
        "description": "Schema for approval action (history) output.",
        "properties": {
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "workflow_execution_state_id": {
            "title": "Workflow Execution State Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "record_id": {
            "title": "Record Id",
            "type": "integer"
          },
          "record_type": {
            "title": "Record Type",
            "type": "string"
          },
          "approver": {
            "$ref": "#/components/schemas/PublicApproverSchemaOut"
          },
          "action_type": {
            "title": "Action Type",
            "type": "string"
          },
          "rejection_reason": {
            "title": "Rejection Reason",
            "type": [
              "string",
              "null"
            ]
          },
          "step_name": {
            "title": "Step Name",
            "type": "string"
          },
          "step_order": {
            "title": "Step Order",
            "type": "integer"
          },
          "substep_order": {
            "title": "Substep Order",
            "type": [
              "integer",
              "null"
            ]
          },
          "workflow_version": {
            "title": "Workflow Version",
            "type": "integer"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          }
        },
        "required": [
          "id",
          "workflow_execution_state_id",
          "record_id",
          "record_type",
          "approver",
          "action_type",
          "rejection_reason",
          "step_name",
          "step_order",
          "substep_order",
          "workflow_version",
          "created_at"
        ],
        "title": "PublicApprovalActionSchemaOut",
        "type": "object"
      },
      "PublicApproverSchemaOut": {
        "description": "Schema for approver information.",
        "properties": {
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "first_name": {
            "title": "First Name",
            "type": "string"
          },
          "last_name": {
            "title": "Last Name",
            "type": "string"
          },
          "email": {
            "title": "Email",
            "type": "string"
          }
        },
        "required": [
          "id",
          "first_name",
          "last_name",
          "email"
        ],
        "title": "PublicApproverSchemaOut",
        "type": "object"
      },
      "PublicApprovalActionListFilterSchema": {
        "description": "Filter schema for listing approval actions.",
        "properties": {
          "workflow_execution_state_id": {
            "title": "Workflow Execution State Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "record_type": {
            "title": "Record Type",
            "type": [
              "string",
              "null"
            ]
          },
          "record_id": {
            "title": "Record Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "action_type": {
            "title": "Action Type",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "approver_id": {
            "title": "Approver Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "start_date": {
            "title": "Start Date",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "end_date": {
            "title": "End Date",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "PublicApprovalActionListFilterSchema",
        "type": "object"
      },
      "PagedPublicApprovalActionSchemaOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicApprovalActionSchemaOut"
            },
            "title": "Items",
            "type": "array"
          },
          "count": {
            "title": "Count",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "count"
        ],
        "title": "PagedPublicApprovalActionSchemaOut",
        "type": "object"
      },
      "PublicRoleMetadataSchemaOut": {
        "description": "Schema for role metadata in workflow context.",
        "properties": {
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "descriptive_name": {
            "title": "Descriptive Name",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "descriptive_name"
        ],
        "title": "PublicRoleMetadataSchemaOut",
        "type": "object"
      },
      "ConditionOperatorEnum": {
        "description": "Comparison operators for workflow conditions.",
        "enum": [
          "eq",
          "neq",
          "gt",
          "lt",
          "gte",
          "lte",
          "contains",
          "not_contains",
          "starts_with",
          "ends_with",
          "in",
          "not_in",
          "between",
          "contains_any",
          "contains_all",
          "not_contains_any"
        ],
        "title": "ConditionOperatorEnum",
        "type": "string"
      },
      "LogicalOperatorEnum": {
        "description": "Logical operators for connecting conditions.",
        "enum": [
          "and",
          "or",
          "not"
        ],
        "title": "LogicalOperatorEnum",
        "type": "string"
      },
      "PublicConditionItemSchemaOut": {
        "description": "Schema for a single condition item in the flat conditions list (output).",
        "properties": {
          "field": {
            "title": "Field",
            "type": "string"
          },
          "operator": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ConditionOperatorEnum"
              },
              {
                "type": "null"
              }
            ]
          },
          "value": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "items": {},
                "type": "array"
              },
              {
                "type": "string"
              },
              {
                "type": "integer"
              },
              {
                "type": "number"
              },
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Value"
          },
          "logical_operator": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LogicalOperatorEnum"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "field"
        ],
        "title": "PublicConditionItemSchemaOut",
        "type": "object"
      },
      "PublicStepSchemaOut": {
        "description": "Schema for workflow step output.",
        "properties": {
          "name": {
            "title": "Name",
            "type": "string"
          },
          "order": {
            "title": "Order",
            "type": "integer"
          },
          "conditions": {
            "items": {
              "$ref": "#/components/schemas/PublicConditionItemSchemaOut"
            },
            "title": "Conditions",
            "type": "array"
          },
          "substeps": {
            "title": "Substeps",
            "items": {
              "$ref": "#/components/schemas/PublicSubstepSchemaOut"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "approver_ids": {
            "title": "Approver Ids",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "approve_condition": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ApproveCondition"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "name",
          "order",
          "conditions",
          "substeps",
          "approver_ids",
          "approve_condition"
        ],
        "title": "PublicStepSchemaOut",
        "type": "object"
      },
      "PublicSubstepSchemaOut": {
        "description": "Schema for substep output.",
        "properties": {
          "order": {
            "title": "Order",
            "type": "integer"
          },
          "approver_ids": {
            "items": {
              "type": "integer"
            },
            "title": "Approver Ids",
            "type": "array"
          },
          "approve_condition": {
            "$ref": "#/components/schemas/ApproveCondition"
          }
        },
        "required": [
          "order",
          "approver_ids",
          "approve_condition"
        ],
        "title": "PublicSubstepSchemaOut",
        "type": "object"
      },
      "PublicWorkflowSchemaOut": {
        "description": "Schema for workflow output.",
        "properties": {
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "record_type": {
            "$ref": "#/components/schemas/PublicRecordType"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "is_active": {
            "title": "Is Active",
            "type": "boolean"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "version": {
            "title": "Version",
            "type": "integer"
          },
          "priority": {
            "title": "Priority",
            "type": "integer"
          },
          "company_ids": {
            "items": {
              "type": "integer"
            },
            "title": "Company Ids",
            "type": "array"
          },
          "applies_to_all_companies": {
            "title": "Applies To All Companies",
            "type": "boolean"
          },
          "allow_self_approval": {
            "title": "Allow Self Approval",
            "type": "boolean"
          },
          "steps": {
            "items": {
              "$ref": "#/components/schemas/PublicStepSchemaOut"
            },
            "title": "Steps",
            "type": "array"
          },
          "pending_approval_count": {
            "title": "Pending Approval Count",
            "type": "integer"
          },
          "roles": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Roles",
            "type": "object"
          }
        },
        "required": [
          "id",
          "record_type",
          "name",
          "is_active",
          "description",
          "version",
          "priority",
          "company_ids",
          "applies_to_all_companies",
          "allow_self_approval",
          "steps",
          "pending_approval_count",
          "roles"
        ],
        "title": "PublicWorkflowSchemaOut",
        "type": "object"
      },
      "PublicChangedBySchema": {
        "description": "Schema for user who made a change.",
        "properties": {
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "first_name": {
            "title": "First Name",
            "type": "string"
          },
          "last_name": {
            "title": "Last Name",
            "type": "string"
          },
          "email": {
            "title": "Email",
            "type": "string"
          }
        },
        "required": [
          "id",
          "first_name",
          "last_name",
          "email"
        ],
        "title": "PublicChangedBySchema",
        "type": "object"
      },
      "PublicWorkflowVersionSchemaOut": {
        "description": "Schema for workflow version history.",
        "properties": {
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "version_number": {
            "title": "Version Number",
            "type": "integer"
          },
          "changed_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PublicChangedBySchema"
              },
              {
                "type": "null"
              }
            ]
          },
          "changed_at": {
            "format": "date-time",
            "title": "Changed At",
            "type": "string"
          },
          "changes_summary": {
            "title": "Changes Summary",
            "type": "string"
          },
          "snapshot": {
            "title": "Snapshot",
            "additionalProperties": true,
            "type": [
              "object",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "version_number",
          "changed_by",
          "changed_at",
          "changes_summary"
        ],
        "title": "PublicWorkflowVersionSchemaOut",
        "type": "object"
      },
      "PublicInboxSummarySchemaOut": {
        "description": "Summary schema for inbox base endpoint.",
        "properties": {
          "transactions_count": {
            "title": "Transactions Count",
            "type": "integer"
          },
          "records_count": {
            "title": "Records Count",
            "type": "integer"
          }
        },
        "required": [
          "transactions_count",
          "records_count"
        ],
        "title": "PublicInboxSummarySchemaOut",
        "type": "object"
      },
      "PublicTransactionInboxListFilterSchema": {
        "description": "Filter schema for transactions inbox (public API - no filter_by_me).",
        "properties": {
          "search": {
            "title": "Search",
            "type": [
              "string",
              "null"
            ]
          },
          "transaction_type": {
            "title": "Transaction Type",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "approval_status": {
            "title": "Approval Status",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "start_date": {
            "title": "Start Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "end_date": {
            "title": "End Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "customer_id": {
            "title": "Customer Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "record_id": {
            "title": "Record Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "transaction_id": {
            "title": "Transaction Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "PublicTransactionInboxListFilterSchema",
        "type": "object"
      },
      "PagedPublicTransactionInboxSchemaOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicTransactionInboxSchemaOut"
            },
            "title": "Items",
            "type": "array"
          },
          "count": {
            "title": "Count",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "count"
        ],
        "title": "PagedPublicTransactionInboxSchemaOut",
        "type": "object"
      },
      "PublicApprovalInfoSchema": {
        "description": "Schema for complete approval workflow information.",
        "properties": {
          "workflow_name": {
            "title": "Workflow Name",
            "type": "string"
          },
          "workflow_version": {
            "title": "Workflow Version",
            "type": "integer"
          },
          "step_name": {
            "title": "Step Name",
            "type": "string"
          },
          "current_substep": {
            "title": "Current Substep",
            "type": "integer"
          },
          "substeps": {
            "items": {
              "$ref": "#/components/schemas/PublicSubstepInfoSchema"
            },
            "title": "Substeps",
            "type": "array"
          }
        },
        "required": [
          "workflow_name",
          "workflow_version",
          "step_name",
          "current_substep",
          "substeps"
        ],
        "title": "PublicApprovalInfoSchema",
        "type": "object"
      },
      "PublicApproverSchema": {
        "description": "Schema for approver information.",
        "properties": {
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "first_name": {
            "title": "First Name",
            "type": "string"
          },
          "last_name": {
            "title": "Last Name",
            "type": "string"
          },
          "email": {
            "title": "Email",
            "type": "string"
          },
          "full_name": {
            "title": "Full Name",
            "type": "string"
          }
        },
        "required": [
          "id",
          "first_name",
          "last_name",
          "email",
          "full_name"
        ],
        "title": "PublicApproverSchema",
        "type": "object"
      },
      "PublicSubstepInfoSchema": {
        "description": "Schema for individual substep information in approval workflow.",
        "properties": {
          "order": {
            "title": "Order",
            "type": "integer"
          },
          "status": {
            "$ref": "#/components/schemas/SubstepStatus"
          },
          "approve_condition": {
            "$ref": "#/components/schemas/ApproveCondition"
          },
          "approvers": {
            "items": {
              "$ref": "#/components/schemas/PublicApproverSchema"
            },
            "title": "Approvers",
            "type": "array"
          },
          "approved_by": {
            "items": {
              "$ref": "#/components/schemas/PublicApproverSchema"
            },
            "title": "Approved By",
            "type": "array"
          },
          "rejected_by": {
            "items": {
              "$ref": "#/components/schemas/PublicApproverSchema"
            },
            "title": "Rejected By",
            "type": "array"
          }
        },
        "required": [
          "order",
          "status",
          "approve_condition",
          "approvers",
          "approved_by",
          "rejected_by"
        ],
        "title": "PublicSubstepInfoSchema",
        "type": "object"
      },
      "PublicTransactionInboxSchemaOut": {
        "description": "Schema for transaction-based records in the inbox (monetary entities).",
        "properties": {
          "transaction_type": {
            "title": "Transaction Type",
            "type": "string"
          },
          "number": {
            "title": "Number",
            "type": "string"
          },
          "date": {
            "format": "date",
            "title": "Date",
            "type": "string"
          },
          "customer_vendor": {
            "title": "Customer Vendor",
            "type": [
              "string",
              "null"
            ]
          },
          "company": {
            "title": "Company",
            "type": "string"
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "amount": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Amount",
            "type": "string"
          },
          "approval_status": {
            "title": "Approval Status",
            "type": "string"
          },
          "workflow_id": {
            "title": "Workflow Id",
            "type": "integer"
          },
          "record_id": {
            "title": "Record Id",
            "type": "integer"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          },
          "approval_info": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PublicApprovalInfoSchema"
              },
              {
                "type": "null"
              }
            ]
          },
          "initiator_id": {
            "title": "Initiator Id",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "transaction_type",
          "number",
          "date",
          "customer_vendor",
          "company",
          "company_id",
          "memo",
          "amount",
          "approval_status",
          "workflow_id",
          "record_id",
          "created_at",
          "updated_at",
          "approval_info"
        ],
        "title": "PublicTransactionInboxSchemaOut",
        "type": "object"
      },
      "PublicRecordInboxListFilterSchema": {
        "description": "Filter schema for records inbox (public API - no filter_by_me).",
        "properties": {
          "search": {
            "title": "Search",
            "type": [
              "string",
              "null"
            ]
          },
          "record_type": {
            "title": "Record Type",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "approval_status": {
            "title": "Approval Status",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "record_id": {
            "title": "Record Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "PublicRecordInboxListFilterSchema",
        "type": "object"
      },
      "PagedPublicRecordInboxSchemaOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicRecordInboxSchemaOut"
            },
            "title": "Items",
            "type": "array"
          },
          "count": {
            "title": "Count",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "count"
        ],
        "title": "PagedPublicRecordInboxSchemaOut",
        "type": "object"
      },
      "PublicRecordInboxSchemaOut": {
        "description": "Schema for non-monetary records in the inbox (customers, vendors).",
        "properties": {
          "record_type": {
            "title": "Record Type",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "approval_status": {
            "title": "Approval Status",
            "type": "string"
          },
          "approver": {
            "title": "Approver",
            "type": "string"
          },
          "workflow_id": {
            "title": "Workflow Id",
            "type": "integer"
          },
          "record_id": {
            "title": "Record Id",
            "type": "integer"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          },
          "approval_info": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PublicApprovalInfoSchema"
              },
              {
                "type": "null"
              }
            ]
          },
          "initiator_id": {
            "title": "Initiator Id",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "record_type",
          "name",
          "approval_status",
          "approver",
          "workflow_id",
          "record_id",
          "created_at",
          "updated_at",
          "approval_info"
        ],
        "title": "PublicRecordInboxSchemaOut",
        "type": "object"
      },
      "FixedAssetStatus": {
        "enum": [
          "active",
          "inactive",
          "disposed",
          "fully_amortized"
        ],
        "title": "FixedAssetStatus",
        "type": "string"
      },
      "PublicFixedAssetListFilterSchema": {
        "properties": {
          "search": {
            "title": "Search",
            "type": [
              "string",
              "null"
            ]
          },
          "updated_after": {
            "title": "Updated After",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "updated_before": {
            "title": "Updated Before",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "company_id": {
            "title": "Company Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "number": {
            "title": "Number",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "status": {
            "title": "Status",
            "items": {
              "$ref": "#/components/schemas/FixedAssetStatus"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "record_status": {
            "title": "Record Status",
            "items": {
              "$ref": "#/components/schemas/RecordStatus"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "purchase_date_gte": {
            "title": "Purchase Date Gte",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "purchase_date_lte": {
            "title": "Purchase Date Lte",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "vendor_id": {
            "title": "Vendor Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "customer_id": {
            "title": "Customer Id",
            "items": {
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "PublicFixedAssetListFilterSchema",
        "type": "object"
      },
      "CustomDepreciationScheduleItemOut": {
        "properties": {
          "value": {
            "title": "Value",
            "type": "string"
          },
          "period_count": {
            "title": "Period Count",
            "type": "integer"
          }
        },
        "required": [
          "value",
          "period_count"
        ],
        "title": "CustomDepreciationScheduleItemOut",
        "type": "object"
      },
      "CustomScheduleType": {
        "enum": [
          "cost_percentage",
          "net_book_value_percentage",
          "fixed_amount",
          "net_book_value_amount"
        ],
        "title": "CustomScheduleType",
        "type": "string"
      },
      "DepreciationConvention": {
        "enum": [
          "mid_month",
          "half_month",
          "full_month",
          "mid_quarter",
          "half_year",
          "full_year"
        ],
        "title": "DepreciationConvention",
        "type": "string"
      },
      "DepreciationFrequency": {
        "enum": [
          "monthly",
          "yearly"
        ],
        "title": "DepreciationFrequency",
        "type": "string"
      },
      "DepreciationMethod": {
        "enum": [
          "straight_line",
          "straight_line_prorate_even",
          "declining_balance",
          "double_declining",
          "macrs_gds",
          "macrs_ads",
          "custom"
        ],
        "title": "DepreciationMethod",
        "type": "string"
      },
      "FixedAssetSourceLineType": {
        "description": "Type of source line that can be linked to a Fixed Asset.",
        "enum": [
          "bill_line",
          "direct_expense_line",
          "journal_entry_line"
        ],
        "title": "FixedAssetSourceLineType",
        "type": "string"
      },
      "PagedPublicFixedAssetSchemaOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicFixedAssetSchemaOut"
            },
            "title": "Items",
            "type": "array"
          },
          "count": {
            "title": "Count",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "count"
        ],
        "title": "PagedPublicFixedAssetSchemaOut",
        "type": "object"
      },
      "PublicFixedAssetSchemaOut": {
        "properties": {
          "created_at": {
            "description": "Date and time the record was created",
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "updated_at": {
            "description": "Date and time the record was last updated",
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          },
          "created_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "updated_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditActorSchemaOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "internal_id": {
            "title": "Internal Id",
            "type": "integer"
          },
          "number": {
            "title": "Number",
            "type": "integer"
          },
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "company_name": {
            "title": "Company Name",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "serial_number": {
            "title": "Serial Number",
            "type": "string"
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "exchange_rate": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
            "title": "Exchange Rate",
            "type": "string"
          },
          "purchase_date": {
            "format": "date",
            "title": "Purchase Date",
            "type": "string"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "cost": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "title": "Cost",
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/FixedAssetStatus"
          },
          "record_status": {
            "$ref": "#/components/schemas/RecordStatus"
          },
          "asset_account_number": {
            "title": "Asset Account Number",
            "type": "integer"
          },
          "expense_account_number": {
            "title": "Expense Account Number",
            "type": "integer"
          },
          "accumulation_account_number": {
            "title": "Accumulation Account Number",
            "type": "integer"
          },
          "vendor_id": {
            "title": "Vendor Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "vendor_name": {
            "title": "Vendor Name",
            "type": [
              "string",
              "null"
            ]
          },
          "customer_id": {
            "title": "Customer Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "customer_name": {
            "title": "Customer Name",
            "type": [
              "string",
              "null"
            ]
          },
          "fixed_asset_class_id": {
            "title": "Fixed Asset Class Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "useful_life": {
            "title": "Useful Life",
            "type": [
              "integer",
              "null"
            ]
          },
          "salvage_value": {
            "title": "Salvage Value",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "type": [
              "string",
              "null"
            ]
          },
          "depreciation_method": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DepreciationMethod"
              },
              {
                "type": "null"
              }
            ]
          },
          "depreciation_start_date": {
            "title": "Depreciation Start Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "convention": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DepreciationConvention"
              },
              {
                "type": "null"
              }
            ]
          },
          "depreciation_frequency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DepreciationFrequency"
              },
              {
                "type": "null"
              }
            ]
          },
          "accumulated_beginning_balance": {
            "title": "Accumulated Beginning Balance",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
            "type": [
              "string",
              "null"
            ]
          },
          "accumulated_through": {
            "title": "Accumulated Through",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "custom_schedule": {
            "title": "Custom Schedule",
            "items": {
              "$ref": "#/components/schemas/CustomDepreciationScheduleItemOut"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "custom_schedule_type": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CustomScheduleType"
              },
              {
                "type": "null"
              }
            ]
          },
          "classifications": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/RecordClassificationsSchemaOut"
            },
            "title": "Classifications",
            "type": "array"
          },
          "source_lines": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicFixedAssetSourceOut"
            },
            "title": "Source Lines",
            "type": "array"
          }
        },
        "required": [
          "created_at",
          "updated_at",
          "internal_id",
          "number",
          "company_id",
          "company_name",
          "name",
          "serial_number",
          "currency_iso_4217_code",
          "exchange_rate",
          "purchase_date",
          "memo",
          "cost",
          "status",
          "record_status",
          "asset_account_number",
          "expense_account_number",
          "accumulation_account_number"
        ],
        "title": "PublicFixedAssetSchemaOut",
        "type": "object"
      },
      "PublicFixedAssetSourceOut": {
        "properties": {
          "type": {
            "$ref": "#/components/schemas/FixedAssetSourceLineType"
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "parent_record_id": {
            "title": "Parent Record Id",
            "type": "integer"
          }
        },
        "required": [
          "type",
          "id",
          "parent_record_id"
        ],
        "title": "PublicFixedAssetSourceOut",
        "type": "object"
      },
      "CustomDepreciationScheduleItemIn": {
        "properties": {
          "value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,4}0*$",
                "type": "string"
              }
            ],
            "title": "Value"
          },
          "period_count": {
            "title": "Period Count",
            "type": "integer"
          }
        },
        "required": [
          "value",
          "period_count"
        ],
        "title": "CustomDepreciationScheduleItemIn",
        "type": "object"
      },
      "FixedAssetSourceIn": {
        "properties": {
          "type": {
            "$ref": "#/components/schemas/FixedAssetSourceLineType"
          },
          "id": {
            "title": "Id",
            "type": "integer"
          }
        },
        "required": [
          "type",
          "id"
        ],
        "title": "FixedAssetSourceIn",
        "type": "object"
      },
      "MacrsAdsRecoveryPeriod": {
        "description": "IRS MACRS ADS recovery period in years (straight-line). Used for ADS table lookups.",
        "enum": [
          3,
          4,
          5,
          6,
          7,
          9,
          10,
          12,
          15,
          18,
          20,
          25,
          30,
          35,
          40,
          50
        ],
        "title": "MacrsAdsRecoveryPeriod",
        "type": "integer"
      },
      "MacrsPropertyClass": {
        "description": "IRS MACRS GDS property classes. Value stored as integer (27.5-year \u2192 27).",
        "enum": [
          3,
          5,
          7,
          10,
          15,
          20,
          27,
          39
        ],
        "title": "MacrsPropertyClass",
        "type": "integer"
      },
      "PublicFixedAssetSchemaCreateIn": {
        "properties": {
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "serial_number": {
            "default": "",
            "title": "Serial Number",
            "type": "string"
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              }
            ],
            "title": "Exchange Rate"
          },
          "purchase_date": {
            "format": "date",
            "title": "Purchase Date",
            "type": "string"
          },
          "memo": {
            "default": "",
            "title": "Memo",
            "type": "string"
          },
          "cost": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              }
            ],
            "title": "Cost"
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FixedAssetStatus"
              }
            ],
            "default": "active",
            "description": "Only Active and Inactive can be set by users; Disposed and Fully Amortized are system-managed."
          },
          "asset_account_number": {
            "title": "Asset Account Number",
            "type": "integer"
          },
          "expense_account_number": {
            "title": "Expense Account Number",
            "type": "integer"
          },
          "accumulation_account_number": {
            "title": "Accumulation Account Number",
            "type": "integer"
          },
          "vendor_id": {
            "title": "Vendor Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "customer_id": {
            "title": "Customer Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "fixed_asset_class_id": {
            "title": "Fixed Asset Class Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "useful_life": {
            "title": "Useful Life",
            "type": [
              "integer",
              "null"
            ]
          },
          "salvage_value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Salvage Value"
          },
          "depreciation_method": {
            "$ref": "#/components/schemas/DepreciationMethod"
          },
          "depreciation_start_date": {
            "format": "date",
            "title": "Depreciation Start Date",
            "type": "string"
          },
          "convention": {
            "$ref": "#/components/schemas/DepreciationConvention"
          },
          "depreciation_frequency": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DepreciationFrequency"
              }
            ],
            "default": "monthly"
          },
          "acceleration_factor": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              }
            ],
            "default": "1.0",
            "title": "Acceleration Factor"
          },
          "accumulated_beginning_balance": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              }
            ],
            "default": "0",
            "title": "Accumulated Beginning Balance"
          },
          "accumulated_through": {
            "title": "Accumulated Through",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "property_class": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/MacrsPropertyClass"
              },
              {
                "type": "null"
              }
            ]
          },
          "ads_recovery_period": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/MacrsAdsRecoveryPeriod"
              },
              {
                "type": "null"
              }
            ]
          },
          "custom_schedule": {
            "title": "Custom Schedule",
            "items": {
              "$ref": "#/components/schemas/CustomDepreciationScheduleItemIn"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "custom_schedule_type": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CustomScheduleType"
              },
              {
                "type": "null"
              }
            ]
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          },
          "address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "classifications": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/RecordClassificationsSchemaOut"
            },
            "title": "Classifications",
            "type": "array"
          },
          "source_lines": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/FixedAssetSourceIn"
            },
            "title": "Source Lines",
            "type": "array"
          }
        },
        "required": [
          "company_id",
          "name",
          "currency_iso_4217_code",
          "exchange_rate",
          "purchase_date",
          "cost",
          "asset_account_number",
          "expense_account_number",
          "accumulation_account_number",
          "depreciation_method",
          "depreciation_start_date",
          "convention"
        ],
        "title": "PublicFixedAssetSchemaCreateIn",
        "type": "object"
      },
      "PublicFixedAssetSchemaUpdateIn": {
        "properties": {
          "company_id": {
            "title": "Company Id",
            "type": "integer"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "serial_number": {
            "default": "",
            "title": "Serial Number",
            "type": "string"
          },
          "currency_iso_4217_code": {
            "$ref": "#/components/schemas/SystemCurrencies"
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              }
            ],
            "title": "Exchange Rate"
          },
          "purchase_date": {
            "format": "date",
            "title": "Purchase Date",
            "type": "string"
          },
          "memo": {
            "default": "",
            "title": "Memo",
            "type": "string"
          },
          "cost": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              }
            ],
            "title": "Cost"
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FixedAssetStatus"
              }
            ],
            "default": "active",
            "description": "Only Active and Inactive can be set by users; Disposed and Fully Amortized are system-managed."
          },
          "asset_account_number": {
            "title": "Asset Account Number",
            "type": "integer"
          },
          "expense_account_number": {
            "title": "Expense Account Number",
            "type": "integer"
          },
          "accumulation_account_number": {
            "title": "Accumulation Account Number",
            "type": "integer"
          },
          "vendor_id": {
            "title": "Vendor Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "customer_id": {
            "title": "Customer Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "fixed_asset_class_id": {
            "title": "Fixed Asset Class Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "useful_life": {
            "title": "Useful Life",
            "type": [
              "integer",
              "null"
            ]
          },
          "salvage_value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Salvage Value"
          },
          "depreciation_method": {
            "$ref": "#/components/schemas/DepreciationMethod"
          },
          "depreciation_start_date": {
            "format": "date",
            "title": "Depreciation Start Date",
            "type": "string"
          },
          "convention": {
            "$ref": "#/components/schemas/DepreciationConvention"
          },
          "depreciation_frequency": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DepreciationFrequency"
              }
            ],
            "default": "monthly"
          },
          "acceleration_factor": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              }
            ],
            "default": "1.0",
            "title": "Acceleration Factor"
          },
          "accumulated_beginning_balance": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              }
            ],
            "default": "0",
            "title": "Accumulated Beginning Balance"
          },
          "accumulated_through": {
            "title": "Accumulated Through",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "property_class": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/MacrsPropertyClass"
              },
              {
                "type": "null"
              }
            ]
          },
          "ads_recovery_period": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/MacrsAdsRecoveryPeriod"
              },
              {
                "type": "null"
              }
            ]
          },
          "custom_schedule": {
            "title": "Custom Schedule",
            "items": {
              "$ref": "#/components/schemas/CustomDepreciationScheduleItemIn"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "custom_schedule_type": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CustomScheduleType"
              },
              {
                "type": "null"
              }
            ]
          },
          "record_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              }
            ],
            "default": "posted"
          },
          "address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "classifications": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/RecordClassificationsSchemaOut"
            },
            "title": "Classifications",
            "type": "array"
          },
          "source_lines": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/FixedAssetSourceIn"
            },
            "title": "Source Lines",
            "type": "array"
          }
        },
        "required": [
          "company_id",
          "name",
          "currency_iso_4217_code",
          "exchange_rate",
          "purchase_date",
          "cost",
          "asset_account_number",
          "expense_account_number",
          "accumulation_account_number",
          "depreciation_method",
          "depreciation_start_date",
          "convention"
        ],
        "title": "PublicFixedAssetSchemaUpdateIn",
        "type": "object"
      },
      "PublicFixedAssetSchemaPatchIn": {
        "properties": {
          "company_id": {
            "title": "Company Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "name": {
            "title": "Name",
            "type": [
              "string",
              "null"
            ]
          },
          "serial_number": {
            "title": "Serial Number",
            "type": [
              "string",
              "null"
            ]
          },
          "currency_iso_4217_code": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SystemCurrencies"
              },
              {
                "type": "null"
              }
            ]
          },
          "exchange_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,16}0*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Exchange Rate"
          },
          "purchase_date": {
            "title": "Purchase Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "memo": {
            "title": "Memo",
            "type": [
              "string",
              "null"
            ]
          },
          "cost": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cost"
          },
          "status": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/FixedAssetStatus"
              },
              {
                "type": "null"
              }
            ]
          },
          "asset_account_number": {
            "title": "Asset Account Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "expense_account_number": {
            "title": "Expense Account Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "accumulation_account_number": {
            "title": "Accumulation Account Number",
            "type": [
              "integer",
              "null"
            ]
          },
          "vendor_id": {
            "title": "Vendor Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "customer_id": {
            "title": "Customer Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "fixed_asset_class_id": {
            "title": "Fixed Asset Class Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "useful_life": {
            "title": "Useful Life",
            "type": [
              "integer",
              "null"
            ]
          },
          "salvage_value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Salvage Value"
          },
          "depreciation_method": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DepreciationMethod"
              },
              {
                "type": "null"
              }
            ]
          },
          "depreciation_start_date": {
            "title": "Depreciation Start Date",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "convention": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DepreciationConvention"
              },
              {
                "type": "null"
              }
            ]
          },
          "depreciation_frequency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DepreciationFrequency"
              },
              {
                "type": "null"
              }
            ]
          },
          "acceleration_factor": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Acceleration Factor"
          },
          "accumulated_beginning_balance": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accumulated Beginning Balance"
          },
          "accumulated_through": {
            "title": "Accumulated Through",
            "format": "date",
            "type": [
              "string",
              "null"
            ]
          },
          "property_class": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/MacrsPropertyClass"
              },
              {
                "type": "null"
              }
            ]
          },
          "ads_recovery_period": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/MacrsAdsRecoveryPeriod"
              },
              {
                "type": "null"
              }
            ]
          },
          "custom_schedule": {
            "title": "Custom Schedule",
            "items": {
              "$ref": "#/components/schemas/CustomDepreciationScheduleItemIn"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "custom_schedule_type": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CustomScheduleType"
              },
              {
                "type": "null"
              }
            ]
          },
          "record_status": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RecordStatus"
              },
              {
                "type": "null"
              }
            ]
          },
          "address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressSchemaIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "classifications": {
            "title": "Classifications",
            "items": {
              "$ref": "#/components/schemas/RecordClassificationsSchemaOut"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "source_lines": {
            "title": "Source Lines",
            "items": {
              "$ref": "#/components/schemas/FixedAssetSourceIn"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "PublicFixedAssetSchemaPatchIn",
        "type": "object"
      },
      "WebhookCreateSchemaOut": {
        "properties": {
          "uuid": {
            "title": "Uuid",
            "type": "string"
          },
          "url": {
            "title": "Url",
            "type": "string"
          },
          "topics": {
            "items": {
              "type": "string"
            },
            "title": "Topics",
            "type": "array"
          },
          "is_active": {
            "title": "Is Active",
            "type": "boolean"
          },
          "disabled_at": {
            "title": "Disabled At",
            "type": [
              "string",
              "null"
            ]
          },
          "disabled_reason": {
            "default": "",
            "title": "Disabled Reason",
            "type": "string"
          },
          "created_at": {
            "title": "Created At",
            "type": "string"
          },
          "last_modified_at": {
            "title": "Last Modified At",
            "type": "string"
          },
          "secret": {
            "title": "Secret",
            "type": "string"
          }
        },
        "required": [
          "uuid",
          "url",
          "topics",
          "is_active",
          "created_at",
          "last_modified_at",
          "secret"
        ],
        "title": "WebhookCreateSchemaOut",
        "type": "object"
      },
      "WebhookSchemaCreateIn": {
        "properties": {
          "url": {
            "maxLength": 1024,
            "title": "Url",
            "type": "string"
          },
          "topics": {
            "items": {
              "type": "string"
            },
            "title": "Topics",
            "type": "array"
          }
        },
        "required": [
          "url"
        ],
        "title": "WebhookSchemaCreateIn",
        "type": "object"
      },
      "WebhookListFilterSchema": {
        "properties": {
          "search": {
            "title": "Search",
            "type": [
              "string",
              "null"
            ]
          },
          "is_active": {
            "title": "Is Active",
            "type": [
              "boolean",
              "null"
            ]
          }
        },
        "title": "WebhookListFilterSchema",
        "type": "object"
      },
      "PagedWebhookSchemaOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/WebhookSchemaOut"
            },
            "title": "Items",
            "type": "array"
          },
          "count": {
            "title": "Count",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "count"
        ],
        "title": "PagedWebhookSchemaOut",
        "type": "object"
      },
      "WebhookSchemaOut": {
        "properties": {
          "uuid": {
            "title": "Uuid",
            "type": "string"
          },
          "url": {
            "title": "Url",
            "type": "string"
          },
          "topics": {
            "items": {
              "type": "string"
            },
            "title": "Topics",
            "type": "array"
          },
          "is_active": {
            "title": "Is Active",
            "type": "boolean"
          },
          "disabled_at": {
            "title": "Disabled At",
            "type": [
              "string",
              "null"
            ]
          },
          "disabled_reason": {
            "default": "",
            "title": "Disabled Reason",
            "type": "string"
          },
          "created_at": {
            "title": "Created At",
            "type": "string"
          },
          "last_modified_at": {
            "title": "Last Modified At",
            "type": "string"
          }
        },
        "required": [
          "uuid",
          "url",
          "topics",
          "is_active",
          "created_at",
          "last_modified_at"
        ],
        "title": "WebhookSchemaOut",
        "type": "object"
      },
      "WebhookTopicSchemaOut": {
        "properties": {
          "name": {
            "title": "Name",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "title": "WebhookTopicSchemaOut",
        "type": "object"
      },
      "WebhookSchemaUpdateIn": {
        "properties": {
          "url": {
            "title": "Url",
            "maxLength": 1024,
            "type": [
              "string",
              "null"
            ]
          },
          "topics": {
            "title": "Topics",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "is_active": {
            "title": "Is Active",
            "type": [
              "boolean",
              "null"
            ]
          }
        },
        "title": "WebhookSchemaUpdateIn",
        "type": "object"
      },
      "PagedWebhookDeliverySchemaOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/WebhookDeliverySchemaOut"
            },
            "title": "Items",
            "type": "array"
          },
          "count": {
            "title": "Count",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "count"
        ],
        "title": "PagedWebhookDeliverySchemaOut",
        "type": "object"
      },
      "WebhookDeliverySchemaOut": {
        "properties": {
          "event_id": {
            "title": "Event Id",
            "type": "string"
          },
          "topic": {
            "title": "Topic",
            "type": "string"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "attempts": {
            "title": "Attempts",
            "type": "integer"
          },
          "response_status": {
            "title": "Response Status",
            "type": [
              "integer",
              "null"
            ]
          },
          "last_error": {
            "title": "Last Error",
            "type": "string"
          },
          "created_at": {
            "title": "Created At",
            "type": "string"
          },
          "delivered_at": {
            "title": "Delivered At",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "event_id",
          "topic",
          "status",
          "attempts",
          "last_error",
          "created_at"
        ],
        "title": "WebhookDeliverySchemaOut",
        "type": "object"
      },
      "PublicExportJobRequestSchemaOut": {
        "description": "Envelope for `POST /export-jobs/`: the job to poll, plus whether it was already running.",
        "properties": {
          "job": {
            "$ref": "#/components/schemas/PublicExportJobSchemaOut"
          },
          "deduplicated": {
            "description": "`true` when an export was already in progress and that existing job is returned instead of a new one.",
            "title": "Deduplicated",
            "type": "boolean"
          }
        },
        "required": [
          "job",
          "deduplicated"
        ],
        "title": "PublicExportJobRequestSchemaOut",
        "type": "object"
      },
      "PublicExportJobSchemaOut": {
        "description": "Sanitized view of an export job. Infra fields (s3_key, crawler/ETL jobs) are never included.",
        "properties": {
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "integration_id": {
            "description": "ID of the destination integration the export runs through.",
            "title": "Integration Id",
            "type": [
              "integer",
              "null"
            ]
          },
          "status": {
            "$ref": "#/components/schemas/PublicExportJobStatus",
            "description": "`pending`, `running`, `completed`, or `failed`."
          },
          "error": {
            "description": "Set only when `status` is `failed`.",
            "title": "Error",
            "type": [
              "string",
              "null"
            ]
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "started_at": {
            "title": "Started At",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "completed_at": {
            "title": "Completed At",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "status",
          "created_at"
        ],
        "title": "PublicExportJobSchemaOut",
        "type": "object"
      },
      "PublicExportJobStatus": {
        "description": "The four states a caller needs; the internal pipeline states collapse onto these.",
        "enum": [
          "pending",
          "running",
          "completed",
          "failed"
        ],
        "title": "PublicExportJobStatus",
        "type": "string"
      },
      "PublicExportJobSchemaIn": {
        "properties": {
          "integration_id": {
            "description": "Destination integration to export through. Optional when the organization has exactly one connected destination.",
            "title": "Integration Id",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "title": "PublicExportJobSchemaIn",
        "type": "object"
      },
      "PublicExportJobListFilterSchema": {
        "properties": {
          "status": {
            "description": "Filter by public status.",
            "title": "Status",
            "items": {
              "$ref": "#/components/schemas/PublicExportJobStatus"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "title": "PublicExportJobListFilterSchema",
        "type": "object"
      },
      "PagedPublicExportJobSchemaOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicExportJobSchemaOut"
            },
            "title": "Items",
            "type": "array"
          },
          "count": {
            "title": "Count",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "count"
        ],
        "title": "PagedPublicExportJobSchemaOut",
        "type": "object"
      }
    }
  },
  "servers": [
    {
      "url": "https://api.dualentry.com",
      "description": "Production environment"
    },
    {
      "url": "https://api-dev.dualentry.com",
      "description": "Development environment (for testing)"
    }
  ],
  "tags": [
    {
      "name": "Health",
      "description": "Monitor API availability and service status. Use these endpoints to verify connectivity and check if the API is operational."
    },
    {
      "name": "Webhooks",
      "description": "Register webhook endpoints to receive real-time event notifications when records change in your organization. Manage subscriptions, view available topics, and inspect delivery history."
    },
    {
      "name": "Accounts",
      "description": "Manage your chart of accounts. Create and maintain the accounts used to categorize financial transactions, including assets, liabilities, equity, revenue, and expenses."
    },
    {
      "name": "Budgets",
      "description": "Manage financial budgets. Create and track income statement and balance sheet budgets with monthly cell values, actuals comparison, and classification filtering."
    },
    {
      "name": "Companies",
      "description": "Access and manage company information. Retrieve details about your organization including legal name, tax identifiers, addresses, and accounting preferences."
    },
    {
      "name": "Customers",
      "description": "Manage customer records. Create, update, and track customers who purchase goods or services from your organization, including contact information, billing addresses, and payment terms."
    },
    {
      "name": "Contracts",
      "description": "Manage revenue recognition contracts. Create, retrieve, and update contracts with performance obligations, manage obligation usage, and create change orders (v2)."
    },
    {
      "name": "Items",
      "description": "Manage products and services. Define items that appear on invoices and bills, including pricing, descriptions, and associated accounts for revenue or expense tracking."
    },
    {
      "name": "Vendors",
      "description": "Manage vendor and supplier records. Track businesses and individuals from whom you purchase goods or services, including contact details, payment terms, and tax information."
    },
    {
      "name": "Journal Entries",
      "description": "Create and manage manual journal entries. Record direct debits and credits to accounts for adjustments, accruals, reclassifications, and other accounting transactions."
    },
    {
      "name": "Invoices",
      "description": "Manage sales invoices. Create and track invoices sent to customers for goods or services rendered, including line items, taxes, discounts, and payment status."
    },
    {
      "name": "Sales Orders",
      "description": "Create and manage sales orders. Track customer orders for goods or services before invoicing, including line items, quantities, fulfillment status, and invoicing progress."
    },
    {
      "name": "Bills",
      "description": "Manage vendor bills and payables. Record and track bills received from vendors for goods or services purchased, including line items, due dates, and payment tracking."
    },
    {
      "name": "Customer Prepayments",
      "description": "Track advance payments from customers. Access prepayments received before goods or services are delivered, which can be applied to future invoices."
    },
    {
      "name": "Customer Prepayment Applications",
      "description": "Apply customer prepayments and credits to invoices. Record applications of prepayments or credit memos to reduce invoice balances."
    },
    {
      "name": "Customer Deposits",
      "description": "Manage customer deposit transactions. Record and track deposits received from customers as security or partial payment, held in liability accounts until earned or refunded."
    },
    {
      "name": "Customer Refunds",
      "description": "Process and track customer refunds. Record refunds issued to customers for overpayments, returns, or cancelled transactions."
    },
    {
      "name": "Customer Credits",
      "description": "Manage credit memos for customers. Issue credits for returned goods, billing adjustments, or discounts that reduce customer balances or can be applied to future invoices."
    },
    {
      "name": "Cash Sales",
      "description": "Record immediate cash sales transactions. Track sales where payment is received at the time of sale, including point-of-sale transactions and cash receipts."
    },
    {
      "name": "Customer Payments",
      "description": "Record and manage customer payments. Track payments received from customers and apply them to outstanding invoices, including partial payments and overpayments."
    },
    {
      "name": "Recurring Invoices",
      "description": "Automate recurring billing. Set up and manage templates for invoices that are automatically generated on a regular schedule (e.g., monthly subscriptions)."
    },
    {
      "name": "Recurring Bills",
      "description": "Automate recurring expenses. Configure templates for bills that repeat on a regular basis (e.g., monthly rent, subscriptions) to streamline expense tracking."
    },
    {
      "name": "Recurring Journal Entries",
      "description": "Automate recurring journal entries. Create templates for journal entries that occur regularly (e.g., monthly depreciation, amortization) to ensure consistent accounting treatment."
    },
    {
      "name": "Classifications",
      "description": "Manage custom classification dimensions. Create and maintain classification categories (e.g., departments, locations, projects) used to tag and analyze transactions across multiple dimensions."
    },
    {
      "name": "Classifications Lines",
      "description": "Manage classification values. Define the specific values within each classification category that can be assigned to transaction line items for detailed reporting and analysis."
    },
    {
      "name": "Custom Fields",
      "description": "Manage custom field definitions. Extend records with organization-specific attributes \u2014 name, type (text, number, boolean, date, single_select, multi_select, currency, link, paragraph), default value, options, and which record types (invoice, bill, customer, vendor, etc.) and companies the field applies to. Values are set via the `custom_fields` attribute on each record's create/update endpoint."
    },
    {
      "name": "Purchase Orders",
      "description": "Create and track purchase orders. Manage formal requests to vendors for goods or services, including approval workflows, receiving tracking, and bill matching."
    },
    {
      "name": "Vendor Payments",
      "description": "Record and manage vendor payments. Track payments made to vendors and apply them to outstanding bills and credits, including partial payments and overpayments."
    },
    {
      "name": "Vendor Prepayments",
      "description": "Track advance payments to vendors. Record prepayments made before goods or services are received, which can be applied to future bills."
    },
    {
      "name": "Vendor Prepayment Applications",
      "description": "Apply vendor prepayments to bills. Record applications of prepayments to reduce bill balances and track amounts owed."
    },
    {
      "name": "Vendor Credits",
      "description": "Manage vendor credit memos. Record credits from vendors for returned goods, billing adjustments, or discounts that reduce amounts owed or can be applied to future bills."
    },
    {
      "name": "Vendor Refunds",
      "description": "Process and track vendor refunds. Record refunds received from vendors for overpayments, returns, or cancelled transactions."
    },
    {
      "name": "Paper Checks",
      "description": "Manage paper check printing. Create, queue, and batch print paper checks for vendor payments, direct expenses, vendor prepayments, and customer refunds."
    },
    {
      "name": "Direct Expenses",
      "description": "Record direct expense transactions. Track payments made directly from a bank or credit card account for expenses, without going through the accounts payable process."
    },
    {
      "name": "Bank Transfers",
      "description": "Manage bank-to-bank transfers. Record and track transfers between bank and credit card accounts, including multi-currency transfers with exchange rate handling."
    },
    {
      "name": "Bank Match",
      "description": "Reconcile bank-feed rows against accounting transactions. List bank rows, trigger the matching pipeline, read AI suggestions, and confirm or undo matches. V2 API only."
    },
    {
      "name": "Bank Connections",
      "description": "Register and list customer-built inbound bank connection feeds. Create connections and accounts with source_type=customer_api, then push transactions separately. V2 API only."
    },
    {
      "name": "Fixed Assets",
      "description": "Manage fixed assets and capital equipment. Create, update, and track long-lived tangible assets including depreciation schedules, account assignments, and asset lifecycle management."
    },
    {
      "name": "Intercompany Journal Entries",
      "description": "Create and manage intercompany journal entries. Record GL activity that spans two or more companies within the same organization, with per-line company assignment and automatic intercompany elimination."
    },
    {
      "name": "Depreciation Books",
      "description": "Discover available depreciation books for multi-book depreciation. Each organization has a posting book (BOOK) and may have additional tax books (FEDERAL, AMT, STATE_*). V2 API only."
    },
    {
      "name": "VAT Rates",
      "description": "Look up available VAT (Value Added Tax) rates for your organization. Use these IDs as `vat_rate_id` on transaction line items. Rates are scoped by country and include standard, reduced, zero-rated, exempt, and reverse charge types. V2 API only."
    },
    {
      "name": "GST Tax Rates",
      "description": "Look up available GST (Goods and Services Tax) rates for your organization. Use these IDs as `gst_tax_rate_id` on transaction line items. Covers AU, NZ, SG, IN, CA GST regimes and MY SST, with per-component breakdowns (e.g. CGST+SGST for India). V2 API only."
    },
    {
      "name": "Product Tax Codes",
      "description": "Manage organization product tax codes and discover global product tax codes. Use these IDs as `product_tax_code_id` on item payloads. V2 API only."
    },
    {
      "name": "Approval Policies",
      "description": "Manage approval workflows and policies. Define approval rules, steps, conditions, and approvers for different record types. Monitor workflow execution states and view approval history."
    },
    {
      "name": "Inbox",
      "description": "View pending approvals and approval status. Access transactions and records awaiting approval across the organization, including full approval workflow details, approvers, and action history."
    },
    {
      "name": "Data Exports",
      "description": "Request off-cycle refreshes of your organization's data export to its configured destination (for example a Snowflake warehouse) and poll their status. Exports also run automatically on a schedule \u2014 this is the on-demand supplement. Requests are accepted and orchestrated by DualEntry; there is no SLA on when a run starts."
    }
  ],
  "x-tagGroups": [
    {
      "name": "Monitoring",
      "tags": [
        "Health"
      ]
    },
    {
      "name": "Developers",
      "tags": [
        "Webhooks",
        "Data Exports"
      ]
    },
    {
      "name": "Accounting Setup",
      "tags": [
        "Accounts",
        "Items",
        "Classifications",
        "Classifications Lines",
        "Custom Fields"
      ]
    },
    {
      "name": "Organization",
      "tags": [
        "Companies"
      ]
    },
    {
      "name": "Governance",
      "tags": [
        "Approval Policies",
        "Inbox"
      ]
    },
    {
      "name": "Financial Planning",
      "tags": [
        "Budgets"
      ]
    },
    {
      "name": "Transactions",
      "tags": [
        "Journal Entries",
        "Intercompany Journal Entries",
        "Recurring Journal Entries"
      ]
    },
    {
      "name": "Financial & Banking",
      "tags": [
        "Bank Transfers",
        "Bank Match",
        "Bank Connections"
      ]
    },
    {
      "name": "Money In",
      "tags": [
        "Invoices",
        "Contracts",
        "Sales Orders",
        "Recurring Invoices",
        "Customers",
        "Customer Payments",
        "Customer Prepayments",
        "Customer Prepayment Applications",
        "Customer Deposits",
        "Customer Refunds",
        "Customer Credits",
        "Cash Sales"
      ]
    },
    {
      "name": "Money Out",
      "tags": [
        "Bills",
        "Recurring Bills",
        "Purchase Orders",
        "Direct Expenses",
        "Vendors",
        "Vendor Payments",
        "Vendor Prepayments",
        "Vendor Prepayment Applications",
        "Vendor Credits",
        "Vendor Refunds",
        "Paper Checks"
      ]
    },
    {
      "name": "Assets",
      "tags": [
        "Fixed Assets",
        "Depreciation Books"
      ]
    },
    {
      "name": "Tax",
      "tags": [
        "VAT Rates",
        "GST Tax Rates",
        "Product Tax Codes"
      ]
    }
  ]
}