openapi: 3.1.0
info:
  title: DualEntry Public API
  version: 1.0.0
  description: ''
paths:
  /public/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.


        This endpoint provides a quick way to:

        - Confirm API connectivity

        - Validate that your API key is working correctly

        - Check service availability for monitoring and uptime tracking


        **Response includes:**

        - `status`: Current health status of the API

        - `timestamp`: Current server time in ISO 8601 format


        **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
  /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/AllMigrationIntegrationTypes'
            type: array
            nullable: true
          required: false
        - in: query
          name: search
          schema:
            title: Search
            type: string
            nullable: true
          required: false
        - in: query
          name: company_id
          schema:
            q: company_id__in
            title: Company Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: number
          schema:
            q: number__in
            title: Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: customer_id
          schema:
            q: customer_id__in
            title: Customer Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: start_date
          schema:
            q: transaction__date__gte
            title: Start Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: end_date
          schema:
            q: transaction__date__lte
            title: End Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: due_date
          schema:
            q: due_date__gte
            title: Due Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: due_date_until
          schema:
            q: due_date__lte
            title: Due Date Until
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: transaction_currency
          schema:
            q: transaction__currency_iso_4217_code__in
            title: Transaction Currency
            items:
              $ref: '#/components/schemas/SystemCurrencies'
            type: array
            nullable: true
          required: false
        - in: query
          name: limit
          schema:
            default: 100
            minimum: 1
            title: Limit
            type: integer
          required: false
        - in: query
          name: offset
          schema:
            default: 0
            minimum: 0
            title: Offset
            type: integer
          required: false
      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
    post:
      operationId: create_Invoice_record
      summary: Create Invoice record
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicInvoiceSchemaOut'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 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
  /public/v1/invoices/{record_number}/:
    get:
      operationId: get_Invoice_record
      summary: Get Invoice record
      parameters:
        - in: path
          name: record_number
          schema:
            title: Record Number
            type: integer
          required: true
        - in: query
          name: integration_sources
          schema:
            title: Integration Sources
            items:
              $ref: '#/components/schemas/AllMigrationIntegrationTypes'
            type: array
            nullable: true
          required: false
        - in: query
          name: search
          schema:
            title: Search
            type: string
            nullable: true
          required: false
        - in: query
          name: company_id
          schema:
            q: company_id__in
            title: Company Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: number
          schema:
            q: number__in
            title: Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: customer_id
          schema:
            q: customer_id__in
            title: Customer Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: start_date
          schema:
            q: transaction__date__gte
            title: Start Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: end_date
          schema:
            q: transaction__date__lte
            title: End Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: due_date
          schema:
            q: due_date__gte
            title: Due Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: due_date_until
          schema:
            q: due_date__lte
            title: Due Date Until
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: transaction_currency
          schema:
            q: transaction__currency_iso_4217_code__in
            title: Transaction Currency
            items:
              $ref: '#/components/schemas/SystemCurrencies'
            type: array
            nullable: true
          required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicInvoiceSchemaOut'
        '400':
          description: Bad Request
          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 a specific Invoice record by number with all related data.
      tags:
        - Invoices
    put:
      operationId: update_Invoice_record
      summary: Update Invoice record
      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/PublicInvoiceSchemaOut'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 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
  /public/v1/invoices/{record_number}/attachments/:
    post:
      operationId: create_Invoice_record_attachments
      summary: Create Invoice record attachments
      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/PublicInvoiceSchemaOut'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 new Invoice record attachments with the provided data.
        Validates all required fields and business rules.
      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
  /public/v1/sales-orders/:
    get:
      operationId: list_SalesOrder_records
      summary: List SalesOrder records
      parameters:
        - in: query
          name: search
          schema:
            title: Search
            type: string
            nullable: true
          required: false
        - in: query
          name: company_id
          schema:
            q: company_id__in
            title: Company Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: number
          schema:
            q: number__in
            title: Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: customer_id
          schema:
            q: customer_id__in
            title: Customer Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: start_date
          schema:
            q: date__gte
            title: Start Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: end_date
          schema:
            q: date__lte
            title: End Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: record_status
          schema:
            q: record_status
            $ref: '#/components/schemas/RecordStatus'
            nullable: true
          required: false
        - in: query
          name: invoiced_status
          schema:
            title: Invoiced Status
            items:
              $ref: '#/components/schemas/SalesOrderInvoicedStatus'
            type: array
            nullable: true
          required: false
        - in: query
          name: limit
          schema:
            default: 100
            minimum: 1
            title: Limit
            type: integer
          required: false
        - in: query
          name: offset
          schema:
            default: 0
            minimum: 0
            title: Offset
            type: integer
          required: false
      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
    post:
      operationId: create_SalesOrder_record
      summary: Create SalesOrder record
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicSalesOrderSchemaOut'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 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
  /public/v1/sales-orders/{record_number}/:
    get:
      operationId: get_SalesOrder_record
      summary: Get SalesOrder record
      parameters:
        - in: path
          name: record_number
          schema:
            title: Record Number
            type: integer
          required: true
        - in: query
          name: search
          schema:
            title: Search
            type: string
            nullable: true
          required: false
        - in: query
          name: company_id
          schema:
            q: company_id__in
            title: Company Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: number
          schema:
            q: number__in
            title: Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: customer_id
          schema:
            q: customer_id__in
            title: Customer Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: start_date
          schema:
            q: date__gte
            title: Start Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: end_date
          schema:
            q: date__lte
            title: End Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: record_status
          schema:
            q: record_status
            $ref: '#/components/schemas/RecordStatus'
            nullable: true
          required: false
        - in: query
          name: invoiced_status
          schema:
            title: Invoiced Status
            items:
              $ref: '#/components/schemas/SalesOrderInvoicedStatus'
            type: array
            nullable: true
          required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicSalesOrderSchemaOut'
        '400':
          description: Bad Request
          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 a specific SalesOrder record by number with all related data.
      tags:
        - Sales Orders
    put:
      operationId: update_SalesOrder_record
      summary: Update SalesOrder record
      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/PublicSalesOrderSchemaOut'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 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
  /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:
            title: Record Number
            type: integer
          required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicSalesOrderSchemaOut'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 new SalesOrder record attachments with the provided data.
        Validates all required fields and business rules.
      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
  /public/v1/bills/:
    get:
      operationId: list_Bill_records
      summary: List Bill records
      parameters:
        - in: query
          name: search
          schema:
            title: Search
            type: string
            nullable: true
          required: false
        - in: query
          name: company_id
          schema:
            q: company_id__in
            title: Company Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: vendor_id
          schema:
            q: vendor_id__in
            title: Vendor Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: number
          schema:
            q: number__in
            title: Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: start_date
          schema:
            q: transaction__date__gte
            title: Start Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: end_date
          schema:
            q: transaction__date__lte
            title: End Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: due_date
          schema:
            q: due_date__gte
            title: Due Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: limit
          schema:
            default: 100
            minimum: 1
            title: Limit
            type: integer
          required: false
        - in: query
          name: offset
          schema:
            default: 0
            minimum: 0
            title: Offset
            type: integer
          required: false
      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
    post:
      operationId: create_Bill_record
      summary: Create Bill record
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicBillSchemaOut'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 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
  /public/v1/bills/{record_number}/:
    get:
      operationId: get_Bill_record
      summary: Get Bill record
      parameters:
        - in: path
          name: record_number
          schema:
            title: Record Number
            type: integer
          required: true
        - in: query
          name: search
          schema:
            title: Search
            type: string
            nullable: true
          required: false
        - in: query
          name: company_id
          schema:
            q: company_id__in
            title: Company Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: vendor_id
          schema:
            q: vendor_id__in
            title: Vendor Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: number
          schema:
            q: number__in
            title: Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: start_date
          schema:
            q: transaction__date__gte
            title: Start Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: end_date
          schema:
            q: transaction__date__lte
            title: End Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: due_date
          schema:
            q: due_date__gte
            title: Due Date
            format: date
            type: string
            nullable: true
          required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicBillSchemaOut'
        '400':
          description: Bad Request
          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 a specific Bill record by number with all related data.
      tags:
        - Bills
    put:
      operationId: update_Bill_record
      summary: Update Bill record
      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/PublicBillSchemaOut'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 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
  /public/v1/bills/{record_number}/attachments/:
    post:
      operationId: create_Bill_record_attachments
      summary: Create Bill record attachments
      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/PublicBillSchemaOut'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 new Bill record attachments with the provided data. Validates
        all required fields and business rules.
      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
  /public/v1/journal-entries/:
    get:
      operationId: list_JournalEntry_records
      summary: List JournalEntry records
      parameters:
        - in: query
          name: search
          schema:
            title: Search
            type: string
            nullable: true
          required: false
        - in: query
          name: company_id
          schema:
            q: company_id__in
            title: Company Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: customer_id
          schema:
            q: journal_entry_lines__customer_id__in
            title: Customer Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: vendor_id
          schema:
            q: journal_entry_lines__vendor_id__in
            title: Vendor Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: number
          schema:
            q: number__in
            title: Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: start_date
          schema:
            q: transaction__date__gte
            title: Start Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: end_date
          schema:
            q: transaction__date__lte
            title: End Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: record_status
          schema:
            q: transaction__record_status__in
            title: Record Status
            items:
              $ref: '#/components/schemas/RecordStatus'
            type: array
            nullable: true
          required: false
        - in: query
          name: needs_my_approval
          schema:
            title: Needs My Approval
            type: boolean
            nullable: true
          required: false
        - in: query
          name: approval_status
          schema:
            title: Approval Status
            items:
              type: string
            type: array
            nullable: true
          required: false
        - in: query
          name: limit
          schema:
            default: 100
            minimum: 1
            title: Limit
            type: integer
          required: false
        - in: query
          name: offset
          schema:
            default: 0
            minimum: 0
            title: Offset
            type: integer
          required: false
      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
    post:
      operationId: create_JournalEntry_record
      summary: Create JournalEntry record
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicJournalEntrySchemaOut'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 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
  /public/v1/journal-entries/{record_number}/:
    get:
      operationId: get_JournalEntry_record
      summary: Get JournalEntry record
      parameters:
        - in: path
          name: record_number
          schema:
            title: Record Number
            type: integer
          required: true
        - in: query
          name: search
          schema:
            title: Search
            type: string
            nullable: true
          required: false
        - in: query
          name: company_id
          schema:
            q: company_id__in
            title: Company Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: customer_id
          schema:
            q: journal_entry_lines__customer_id__in
            title: Customer Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: vendor_id
          schema:
            q: journal_entry_lines__vendor_id__in
            title: Vendor Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: number
          schema:
            q: number__in
            title: Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: start_date
          schema:
            q: transaction__date__gte
            title: Start Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: end_date
          schema:
            q: transaction__date__lte
            title: End Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: record_status
          schema:
            q: transaction__record_status__in
            title: Record Status
            items:
              $ref: '#/components/schemas/RecordStatus'
            type: array
            nullable: true
          required: false
        - in: query
          name: needs_my_approval
          schema:
            title: Needs My Approval
            type: boolean
            nullable: true
          required: false
        - in: query
          name: approval_status
          schema:
            title: Approval Status
            items:
              type: string
            type: array
            nullable: true
          required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicJournalEntrySchemaOut'
        '400':
          description: Bad Request
          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 a specific JournalEntry record by number with all related data.
      tags:
        - Journal Entries
    put:
      operationId: update_JournalEntry_record
      summary: Update JournalEntry record
      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/PublicJournalEntrySchemaOut'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 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
  /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:
            title: Record Number
            type: integer
          required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicJournalEntrySchemaOut'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 new JournalEntry record attachments with the provided data.
        Validates all required fields and business rules.
      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
  /public/v1/purchase-orders/:
    get:
      operationId: list_PurchaseOrder_records
      summary: List PurchaseOrder records
      parameters:
        - in: query
          name: search
          schema:
            title: Search
            type: string
            nullable: true
          required: false
        - in: query
          name: company_id
          schema:
            q: company_id__in
            title: Company Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: number
          schema:
            q: number__in
            title: Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: vendor_id
          schema:
            q: vendor_id__in
            title: Vendor Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: start_date
          schema:
            q: date__gte
            title: Start Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: end_date
          schema:
            q: date__lte
            title: End Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: record_status
          schema:
            q: record_status
            $ref: '#/components/schemas/RecordStatus'
            nullable: true
          required: false
        - in: query
          name: billed
          schema:
            title: Billed
            type: boolean
            nullable: true
          required: false
        - in: query
          name: unbilled
          schema:
            title: Unbilled
            type: boolean
            nullable: true
          required: false
        - in: query
          name: partially_billed
          schema:
            title: Partially Billed
            type: boolean
            nullable: true
          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: limit
          schema:
            default: 100
            minimum: 1
            title: Limit
            type: integer
          required: false
        - in: query
          name: offset
          schema:
            default: 0
            minimum: 0
            title: Offset
            type: integer
          required: false
      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
    post:
      operationId: create_PurchaseOrder_record
      summary: Create PurchaseOrder record
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicPurchaseOrderSchemaOut'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 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
  /public/v1/purchase-orders/{record_number}/:
    get:
      operationId: get_PurchaseOrder_record
      summary: Get PurchaseOrder record
      parameters:
        - in: path
          name: record_number
          schema:
            title: Record Number
            type: integer
          required: true
        - in: query
          name: search
          schema:
            title: Search
            type: string
            nullable: true
          required: false
        - in: query
          name: company_id
          schema:
            q: company_id__in
            title: Company Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: number
          schema:
            q: number__in
            title: Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: vendor_id
          schema:
            q: vendor_id__in
            title: Vendor Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: start_date
          schema:
            q: date__gte
            title: Start Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: end_date
          schema:
            q: date__lte
            title: End Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: record_status
          schema:
            q: record_status
            $ref: '#/components/schemas/RecordStatus'
            nullable: true
          required: false
        - in: query
          name: billed
          schema:
            title: Billed
            type: boolean
            nullable: true
          required: false
        - in: query
          name: unbilled
          schema:
            title: Unbilled
            type: boolean
            nullable: true
          required: false
        - in: query
          name: partially_billed
          schema:
            title: Partially Billed
            type: boolean
            nullable: true
          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
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicPurchaseOrderSchemaOut'
        '400':
          description: Bad Request
          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 a specific PurchaseOrder record by number with all related
        data.
      tags:
        - Purchase Orders
    put:
      operationId: update_PurchaseOrder_record
      summary: Update PurchaseOrder record
      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/PublicPurchaseOrderSchemaOut'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 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
  /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:
            title: Record Number
            type: integer
          required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicPurchaseOrderSchemaOut'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 new PurchaseOrder record attachments with the provided data.
        Validates all required fields and business rules.
      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
  /public/v1/customer-prepayments/:
    get:
      operationId: list_CustomerPrepayment_records
      summary: List CustomerPrepayment records
      parameters:
        - in: query
          name: search
          schema:
            title: Search
            type: string
            nullable: true
          required: false
        - in: query
          name: id
          schema:
            q: id__in
            title: Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: company_id
          schema:
            q: company_id__in
            title: Company Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: number
          schema:
            q: number__in
            title: Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: customer_id
          schema:
            q: customer_id__in
            title: Customer Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: start_date
          schema:
            q: transaction__date__gte
            title: Start Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: end_date
          schema:
            q: transaction__date__lte
            title: End Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: transaction_currency
          schema:
            q: transaction__currency_iso_4217_code
            $ref: '#/components/schemas/SystemCurrencies'
            nullable: true
          required: false
        - in: query
          name: record_status
          schema:
            q: transaction__record_status
            $ref: '#/components/schemas/RecordStatus'
            nullable: true
          required: false
        - in: query
          name: limit
          schema:
            default: 100
            minimum: 1
            title: Limit
            type: integer
          required: false
        - in: query
          name: offset
          schema:
            default: 0
            minimum: 0
            title: Offset
            type: integer
          required: false
      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
    post:
      operationId: create_CustomerPrepayment_record
      summary: Create CustomerPrepayment record
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicCustomerPrepaymentSchemaOut'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 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
  /public/v1/customer-prepayments/{record_number}/:
    get:
      operationId: get_CustomerPrepayment_record
      summary: Get CustomerPrepayment record
      parameters:
        - in: path
          name: record_number
          schema:
            title: Record Number
            type: integer
          required: true
        - in: query
          name: search
          schema:
            title: Search
            type: string
            nullable: true
          required: false
        - in: query
          name: id
          schema:
            q: id__in
            title: Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: company_id
          schema:
            q: company_id__in
            title: Company Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: number
          schema:
            q: number__in
            title: Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: customer_id
          schema:
            q: customer_id__in
            title: Customer Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: start_date
          schema:
            q: transaction__date__gte
            title: Start Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: end_date
          schema:
            q: transaction__date__lte
            title: End Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: transaction_currency
          schema:
            q: transaction__currency_iso_4217_code
            $ref: '#/components/schemas/SystemCurrencies'
            nullable: true
          required: false
        - in: query
          name: record_status
          schema:
            q: transaction__record_status
            $ref: '#/components/schemas/RecordStatus'
            nullable: true
          required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicCustomerPrepaymentSchemaOut'
        '400':
          description: Bad Request
          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 a specific CustomerPrepayment record by number with all related
        data.
      tags:
        - Customer Prepayments
    put:
      operationId: update_CustomerPrepayment_record
      summary: Update CustomerPrepayment record
      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/PublicCustomerPrepaymentSchemaOut'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 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
  /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:
            title: Record Number
            type: integer
          required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicCustomerPrepaymentSchemaOut'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 new CustomerPrepayment record attachments with the provided
        data. Validates all required fields and business rules.
      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
  /public/v1/customer-prepayment-applications/:
    get:
      operationId: list_CustomerPrepaymentApplication_records
      summary: List CustomerPrepaymentApplication records
      parameters:
        - in: query
          name: search
          schema:
            title: Search
            type: string
            nullable: true
          required: false
        - in: query
          name: company_id
          schema:
            q: company_id__in
            title: Company Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: number
          schema:
            q: number__in
            title: Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: customer_id
          schema:
            q: customer_prepayment_application_lines__invoice__customer_id__in
            title: Customer Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: start_date
          schema:
            q: transaction__date__gte
            title: Start Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: end_date
          schema:
            q: transaction__date__lte
            title: End Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: transaction_currency
          schema:
            q: transaction__currency_iso_4217_code
            $ref: '#/components/schemas/SystemCurrencies'
            nullable: true
          required: false
        - in: query
          name: record_status
          schema:
            q: transaction__record_status
            $ref: '#/components/schemas/RecordStatus'
            nullable: true
          required: false
        - in: query
          name: limit
          schema:
            default: 100
            minimum: 1
            title: Limit
            type: integer
          required: false
        - in: query
          name: offset
          schema:
            default: 0
            minimum: 0
            title: Offset
            type: integer
          required: false
      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
    post:
      operationId: create_CustomerPrepaymentApplication_record
      summary: Create CustomerPrepaymentApplication record
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/PublicCustomerPrepaymentApplicationSchemaOut
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 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
  /public/v1/customer-prepayment-applications/{record_number}/:
    get:
      operationId: get_CustomerPrepaymentApplication_record
      summary: Get CustomerPrepaymentApplication record
      parameters:
        - in: path
          name: record_number
          schema:
            title: Record Number
            type: integer
          required: true
        - in: query
          name: search
          schema:
            title: Search
            type: string
            nullable: true
          required: false
        - in: query
          name: company_id
          schema:
            q: company_id__in
            title: Company Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: number
          schema:
            q: number__in
            title: Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: customer_id
          schema:
            q: customer_prepayment_application_lines__invoice__customer_id__in
            title: Customer Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: start_date
          schema:
            q: transaction__date__gte
            title: Start Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: end_date
          schema:
            q: transaction__date__lte
            title: End Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: transaction_currency
          schema:
            q: transaction__currency_iso_4217_code
            $ref: '#/components/schemas/SystemCurrencies'
            nullable: true
          required: false
        - in: query
          name: record_status
          schema:
            q: transaction__record_status
            $ref: '#/components/schemas/RecordStatus'
            nullable: true
          required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/PublicCustomerPrepaymentApplicationSchemaOut
        '400':
          description: Bad Request
          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 a specific CustomerPrepaymentApplication record by number with
        all related data.
      tags:
        - Customer Prepayment Applications
    put:
      operationId: update_CustomerPrepaymentApplication_record
      summary: Update CustomerPrepaymentApplication record
      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/PublicCustomerPrepaymentApplicationSchemaOut
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 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
  /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:
            title: Record Number
            type: integer
          required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/PublicCustomerPrepaymentApplicationSchemaOut
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 new CustomerPrepaymentApplication record attachments with the
        provided data. Validates all required fields and business rules.
      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
  /public/v1/customer-deposits/:
    get:
      operationId: list_CustomerDeposit_records
      summary: List CustomerDeposit records
      parameters:
        - in: query
          name: search
          schema:
            title: Search
            type: string
            nullable: true
          required: false
        - in: query
          name: company_id
          schema:
            q: company_id__in
            title: Company Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: number
          schema:
            q: number__in
            title: Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: customer_id
          schema:
            q: customer_id__in
            title: Customer Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: start_date
          schema:
            q: transaction__date__gte
            title: Start Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: end_date
          schema:
            q: transaction__date__lte
            title: End Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: transaction_currency
          schema:
            q: transaction__currency_iso_4217_code
            $ref: '#/components/schemas/SystemCurrencies'
            nullable: true
          required: false
        - in: query
          name: record_status
          schema:
            q: transaction__record_status
            $ref: '#/components/schemas/RecordStatus'
            nullable: true
          required: false
        - in: query
          name: limit
          schema:
            default: 100
            minimum: 1
            title: Limit
            type: integer
          required: false
        - in: query
          name: offset
          schema:
            default: 0
            minimum: 0
            title: Offset
            type: integer
          required: false
      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
    post:
      operationId: create_CustomerDeposit_record
      summary: Create CustomerDeposit record
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicCustomerDepositSchemaOut'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 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
  /public/v1/customer-deposits/{record_number}/:
    get:
      operationId: get_CustomerDeposit_record
      summary: Get CustomerDeposit record
      parameters:
        - in: path
          name: record_number
          schema:
            title: Record Number
            type: integer
          required: true
        - in: query
          name: search
          schema:
            title: Search
            type: string
            nullable: true
          required: false
        - in: query
          name: company_id
          schema:
            q: company_id__in
            title: Company Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: number
          schema:
            q: number__in
            title: Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: customer_id
          schema:
            q: customer_id__in
            title: Customer Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: start_date
          schema:
            q: transaction__date__gte
            title: Start Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: end_date
          schema:
            q: transaction__date__lte
            title: End Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: transaction_currency
          schema:
            q: transaction__currency_iso_4217_code
            $ref: '#/components/schemas/SystemCurrencies'
            nullable: true
          required: false
        - in: query
          name: record_status
          schema:
            q: transaction__record_status
            $ref: '#/components/schemas/RecordStatus'
            nullable: true
          required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicCustomerDepositSchemaOut'
        '400':
          description: Bad Request
          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 a specific CustomerDeposit record by number with all related
        data.
      tags:
        - Customer Deposits
    put:
      operationId: update_CustomerDeposit_record
      summary: Update CustomerDeposit record
      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/PublicCustomerDepositSchemaOut'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 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
  /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:
            title: Record Number
            type: integer
          required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicCustomerDepositSchemaOut'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 new CustomerDeposit record attachments with the provided data.
        Validates all required fields and business rules.
      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
  /public/v1/customer-refunds/:
    get:
      operationId: list_CustomerRefund_records
      summary: List CustomerRefund records
      parameters:
        - in: query
          name: search
          schema:
            title: Search
            type: string
            nullable: true
          required: false
        - in: query
          name: company_id
          schema:
            q: company_id__in
            title: Company Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: number
          schema:
            q: number__in
            title: Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: customer_id
          schema:
            q: customer_id__in
            title: Customer Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: start_date
          schema:
            q: transaction__date__gte
            title: Start Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: end_date
          schema:
            q: transaction__date__lte
            title: End Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: transaction_currency
          schema:
            q: transaction__currency_iso_4217_code
            $ref: '#/components/schemas/SystemCurrencies'
            nullable: true
          required: false
        - in: query
          name: record_status
          schema:
            q: transaction__record_status
            $ref: '#/components/schemas/RecordStatus'
            nullable: true
          required: false
        - in: query
          name: limit
          schema:
            default: 100
            minimum: 1
            title: Limit
            type: integer
          required: false
        - in: query
          name: offset
          schema:
            default: 0
            minimum: 0
            title: Offset
            type: integer
          required: false
      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
    post:
      operationId: create_CustomerRefund_record
      summary: Create CustomerRefund record
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicCustomerRefundSchemaOut'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 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
  /public/v1/customer-refunds/{record_number}/:
    get:
      operationId: get_CustomerRefund_record
      summary: Get CustomerRefund record
      parameters:
        - in: path
          name: record_number
          schema:
            title: Record Number
            type: integer
          required: true
        - in: query
          name: search
          schema:
            title: Search
            type: string
            nullable: true
          required: false
        - in: query
          name: company_id
          schema:
            q: company_id__in
            title: Company Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: number
          schema:
            q: number__in
            title: Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: customer_id
          schema:
            q: customer_id__in
            title: Customer Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: start_date
          schema:
            q: transaction__date__gte
            title: Start Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: end_date
          schema:
            q: transaction__date__lte
            title: End Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: transaction_currency
          schema:
            q: transaction__currency_iso_4217_code
            $ref: '#/components/schemas/SystemCurrencies'
            nullable: true
          required: false
        - in: query
          name: record_status
          schema:
            q: transaction__record_status
            $ref: '#/components/schemas/RecordStatus'
            nullable: true
          required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicCustomerRefundSchemaOut'
        '400':
          description: Bad Request
          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 a specific CustomerRefund record by number with all related
        data.
      tags:
        - Customer Refunds
    put:
      operationId: update_CustomerRefund_record
      summary: Update CustomerRefund record
      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/PublicCustomerRefundSchemaOut'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 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
  /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:
            title: Record Number
            type: integer
          required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicCustomerRefundSchemaOut'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 new CustomerRefund record attachments with the provided data.
        Validates all required fields and business rules.
      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
  /public/v1/customer-credits/:
    get:
      operationId: list_CustomerCredit_records
      summary: List CustomerCredit records
      parameters:
        - in: query
          name: search
          schema:
            title: Search
            type: string
            nullable: true
          required: false
        - in: query
          name: company_id
          schema:
            q: company_id__in
            title: Company Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: number
          schema:
            q: number__in
            title: Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: customer_id
          schema:
            q: customer_id__in
            title: Customer Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: start_date
          schema:
            q: transaction__date__gte
            title: Start Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: end_date
          schema:
            q: transaction__date__lte
            title: End Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: transaction_currency
          schema:
            q: transaction__currency_iso_4217_code__in
            title: Transaction Currency
            items:
              $ref: '#/components/schemas/SystemCurrencies'
            type: array
            nullable: true
          required: false
        - in: query
          name: record_status
          schema:
            q: transaction__record_status__in
            title: Record Status
            items:
              $ref: '#/components/schemas/RecordStatus'
            type: array
            nullable: true
          required: false
        - in: query
          name: limit
          schema:
            default: 100
            minimum: 1
            title: Limit
            type: integer
          required: false
        - in: query
          name: offset
          schema:
            default: 0
            minimum: 0
            title: Offset
            type: integer
          required: false
      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
    post:
      operationId: create_CustomerCredit_record
      summary: Create CustomerCredit record
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicCustomerCreditSchemaOut'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 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
  /public/v1/customer-credits/{record_number}/:
    get:
      operationId: get_CustomerCredit_record
      summary: Get CustomerCredit record
      parameters:
        - in: path
          name: record_number
          schema:
            title: Record Number
            type: integer
          required: true
        - in: query
          name: search
          schema:
            title: Search
            type: string
            nullable: true
          required: false
        - in: query
          name: company_id
          schema:
            q: company_id__in
            title: Company Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: number
          schema:
            q: number__in
            title: Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: customer_id
          schema:
            q: customer_id__in
            title: Customer Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: start_date
          schema:
            q: transaction__date__gte
            title: Start Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: end_date
          schema:
            q: transaction__date__lte
            title: End Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: transaction_currency
          schema:
            q: transaction__currency_iso_4217_code__in
            title: Transaction Currency
            items:
              $ref: '#/components/schemas/SystemCurrencies'
            type: array
            nullable: true
          required: false
        - in: query
          name: record_status
          schema:
            q: transaction__record_status__in
            title: Record Status
            items:
              $ref: '#/components/schemas/RecordStatus'
            type: array
            nullable: true
          required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicCustomerCreditSchemaOut'
        '400':
          description: Bad Request
          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 a specific CustomerCredit record by number with all related
        data.
      tags:
        - Customer Credits
    put:
      operationId: update_CustomerCredit_record
      summary: Update CustomerCredit record
      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/PublicCustomerCreditSchemaOut'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 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
  /public/v1/cash-sales/:
    get:
      operationId: list_CashSale_records
      summary: List CashSale records
      parameters:
        - in: query
          name: search
          schema:
            title: Search
            type: string
            nullable: true
          required: false
        - in: query
          name: company_id
          schema:
            q: company_id__in
            title: Company Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: number
          schema:
            q: number__in
            title: Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: customer_id
          schema:
            q: customer_id__in
            title: Customer Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: start_date
          schema:
            q: transaction__date__gte
            title: Start Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: end_date
          schema:
            q: transaction__date__lte
            title: End Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: transaction_currency
          schema:
            q: transaction__currency_iso_4217_code
            $ref: '#/components/schemas/SystemCurrencies'
            nullable: true
          required: false
        - in: query
          name: record_status
          schema:
            q: transaction__record_status
            $ref: '#/components/schemas/RecordStatus'
            nullable: true
          required: false
        - in: query
          name: limit
          schema:
            default: 100
            minimum: 1
            title: Limit
            type: integer
          required: false
        - in: query
          name: offset
          schema:
            default: 0
            minimum: 0
            title: Offset
            type: integer
          required: false
      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
    post:
      operationId: create_CashSale_record
      summary: Create CashSale record
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicCashSaleSchemaOut'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 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
  /public/v1/cash-sales/{record_number}/:
    get:
      operationId: get_CashSale_record
      summary: Get CashSale record
      parameters:
        - in: path
          name: record_number
          schema:
            title: Record Number
            type: integer
          required: true
        - in: query
          name: search
          schema:
            title: Search
            type: string
            nullable: true
          required: false
        - in: query
          name: company_id
          schema:
            q: company_id__in
            title: Company Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: number
          schema:
            q: number__in
            title: Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: customer_id
          schema:
            q: customer_id__in
            title: Customer Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: start_date
          schema:
            q: transaction__date__gte
            title: Start Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: end_date
          schema:
            q: transaction__date__lte
            title: End Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: transaction_currency
          schema:
            q: transaction__currency_iso_4217_code
            $ref: '#/components/schemas/SystemCurrencies'
            nullable: true
          required: false
        - in: query
          name: record_status
          schema:
            q: transaction__record_status
            $ref: '#/components/schemas/RecordStatus'
            nullable: true
          required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicCashSaleSchemaOut'
        '400':
          description: Bad Request
          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 a specific CashSale record by number with all related data.
      tags:
        - Cash Sales
    put:
      operationId: update_CashSale_record
      summary: Update CashSale record
      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/PublicCashSaleSchemaOut'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 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
  /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:
            title: Record Number
            type: integer
          required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicCashSaleSchemaOut'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 new CashSale record attachments with the provided data.
        Validates all required fields and business rules.
      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
  /public/v1/customer-payments/:
    get:
      operationId: list_CustomerPayment_records
      summary: List CustomerPayment records
      parameters:
        - in: query
          name: search
          schema:
            title: Search
            type: string
            nullable: true
          required: false
        - in: query
          name: company_id
          schema:
            q: company_id__in
            title: Company Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: number
          schema:
            q: number__in
            title: Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: customer_id
          schema:
            title: Customer Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: start_date
          schema:
            q: transaction__date__gte
            title: Start Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: end_date
          schema:
            q: transaction__date__lte
            title: End Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: transaction_currency
          schema:
            q: transaction__currency_iso_4217_code
            $ref: '#/components/schemas/SystemCurrencies'
            nullable: true
          required: false
        - in: query
          name: record_status
          schema:
            q: transaction__record_status
            $ref: '#/components/schemas/RecordStatus'
            nullable: true
          required: false
        - in: query
          name: invoice_number
          schema:
            q: customer_payment_lines__invoice__number__in
            title: Invoice Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: customer_credit_number
          schema:
            q: customer_payment_lines__customer_credit__number__in
            title: Customer Credit Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: limit
          schema:
            default: 100
            minimum: 1
            title: Limit
            type: integer
          required: false
        - in: query
          name: offset
          schema:
            default: 0
            minimum: 0
            title: Offset
            type: integer
          required: false
      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
    post:
      operationId: create_CustomerPayment_record
      summary: Create CustomerPayment record
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicCustomerPaymentSchemaOut'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 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
  /public/v1/customer-payments/{record_number}/:
    get:
      operationId: get_CustomerPayment_record
      summary: Get CustomerPayment record
      parameters:
        - in: path
          name: record_number
          schema:
            title: Record Number
            type: integer
          required: true
        - in: query
          name: search
          schema:
            title: Search
            type: string
            nullable: true
          required: false
        - in: query
          name: company_id
          schema:
            q: company_id__in
            title: Company Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: number
          schema:
            q: number__in
            title: Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: customer_id
          schema:
            title: Customer Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: start_date
          schema:
            q: transaction__date__gte
            title: Start Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: end_date
          schema:
            q: transaction__date__lte
            title: End Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: transaction_currency
          schema:
            q: transaction__currency_iso_4217_code
            $ref: '#/components/schemas/SystemCurrencies'
            nullable: true
          required: false
        - in: query
          name: record_status
          schema:
            q: transaction__record_status
            $ref: '#/components/schemas/RecordStatus'
            nullable: true
          required: false
        - in: query
          name: invoice_number
          schema:
            q: customer_payment_lines__invoice__number__in
            title: Invoice Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: customer_credit_number
          schema:
            q: customer_payment_lines__customer_credit__number__in
            title: Customer Credit Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicCustomerPaymentSchemaOut'
        '400':
          description: Bad Request
          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 a specific CustomerPayment record by number with all related
        data.
      tags:
        - Customer Payments
    put:
      operationId: update_CustomerPayment_record
      summary: Update CustomerPayment record
      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/PublicCustomerPaymentSchemaOut'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 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
  /public/v1/vendor-payments/:
    get:
      operationId: list_VendorPayment_records
      summary: List VendorPayment records
      parameters:
        - in: query
          name: search
          schema:
            title: Search
            type: string
            nullable: true
          required: false
        - in: query
          name: company_id
          schema:
            q: company_id__in
            title: Company Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: number
          schema:
            q: number__in
            title: Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: vendor_id
          schema:
            title: Vendor Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: start_date
          schema:
            q: transaction__date__gte
            title: Start Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: end_date
          schema:
            q: transaction__date__lte
            title: End Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: transaction_currency
          schema:
            q: transaction__currency_iso_4217_code
            $ref: '#/components/schemas/SystemCurrencies'
            nullable: true
          required: false
        - in: query
          name: record_status
          schema:
            q: transaction__record_status
            $ref: '#/components/schemas/RecordStatus'
            nullable: true
          required: false
        - in: query
          name: bill_number
          schema:
            q: vendor_payment_lines__bill__number__in
            title: Bill Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: vendor_credit_number
          schema:
            q: vendor_payment_lines__vendor_credit__number__in
            title: Vendor Credit Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: limit
          schema:
            default: 100
            minimum: 1
            title: Limit
            type: integer
          required: false
        - in: query
          name: offset
          schema:
            default: 0
            minimum: 0
            title: Offset
            type: integer
          required: false
      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
    post:
      operationId: create_VendorPayment_record
      summary: Create VendorPayment record
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicVendorPaymentSchemaOut'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 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
  /public/v1/vendor-payments/{record_number}/:
    get:
      operationId: get_VendorPayment_record
      summary: Get VendorPayment record
      parameters:
        - in: path
          name: record_number
          schema:
            title: Record Number
            type: integer
          required: true
        - in: query
          name: search
          schema:
            title: Search
            type: string
            nullable: true
          required: false
        - in: query
          name: company_id
          schema:
            q: company_id__in
            title: Company Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: number
          schema:
            q: number__in
            title: Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: vendor_id
          schema:
            title: Vendor Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: start_date
          schema:
            q: transaction__date__gte
            title: Start Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: end_date
          schema:
            q: transaction__date__lte
            title: End Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: transaction_currency
          schema:
            q: transaction__currency_iso_4217_code
            $ref: '#/components/schemas/SystemCurrencies'
            nullable: true
          required: false
        - in: query
          name: record_status
          schema:
            q: transaction__record_status
            $ref: '#/components/schemas/RecordStatus'
            nullable: true
          required: false
        - in: query
          name: bill_number
          schema:
            q: vendor_payment_lines__bill__number__in
            title: Bill Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: vendor_credit_number
          schema:
            q: vendor_payment_lines__vendor_credit__number__in
            title: Vendor Credit Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicVendorPaymentSchemaOut'
        '400':
          description: Bad Request
          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 a specific VendorPayment record by number with all related
        data.
      tags:
        - Vendor Payments
    put:
      operationId: update_VendorPayment_record
      summary: Update VendorPayment record
      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/PublicVendorPaymentSchemaOut'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 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
  /public/v1/vendor-credits/:
    get:
      operationId: list_VendorCredit_records
      summary: List VendorCredit records
      parameters:
        - in: query
          name: search
          schema:
            title: Search
            type: string
            nullable: true
          required: false
        - in: query
          name: company_id
          schema:
            q: company_id__in
            title: Company Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: number
          schema:
            q: number__in
            title: Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: vendor_id
          schema:
            q: vendor_id__in
            title: Vendor Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: start_date
          schema:
            q: transaction__date__gte
            title: Start Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: end_date
          schema:
            q: transaction__date__lte
            title: End Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: transaction_currency
          schema:
            q: transaction__currency_iso_4217_code
            $ref: '#/components/schemas/SystemCurrencies'
            nullable: true
          required: false
        - in: query
          name: record_status
          schema:
            q: transaction__record_status
            $ref: '#/components/schemas/RecordStatus'
            nullable: true
          required: false
        - in: query
          name: bill_number
          schema:
            title: Bill Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: limit
          schema:
            default: 100
            minimum: 1
            title: Limit
            type: integer
          required: false
        - in: query
          name: offset
          schema:
            default: 0
            minimum: 0
            title: Offset
            type: integer
          required: false
      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
    post:
      operationId: create_VendorCredit_record
      summary: Create VendorCredit record
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicVendorCreditSchemaOut'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 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
  /public/v1/vendor-credits/{record_number}/:
    get:
      operationId: get_VendorCredit_record
      summary: Get VendorCredit record
      parameters:
        - in: path
          name: record_number
          schema:
            title: Record Number
            type: integer
          required: true
        - in: query
          name: search
          schema:
            title: Search
            type: string
            nullable: true
          required: false
        - in: query
          name: company_id
          schema:
            q: company_id__in
            title: Company Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: number
          schema:
            q: number__in
            title: Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: vendor_id
          schema:
            q: vendor_id__in
            title: Vendor Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: start_date
          schema:
            q: transaction__date__gte
            title: Start Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: end_date
          schema:
            q: transaction__date__lte
            title: End Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: transaction_currency
          schema:
            q: transaction__currency_iso_4217_code
            $ref: '#/components/schemas/SystemCurrencies'
            nullable: true
          required: false
        - in: query
          name: record_status
          schema:
            q: transaction__record_status
            $ref: '#/components/schemas/RecordStatus'
            nullable: true
          required: false
        - in: query
          name: bill_number
          schema:
            title: Bill Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicVendorCreditSchemaOut'
        '400':
          description: Bad Request
          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 a specific VendorCredit record by number with all related data.
      tags:
        - Vendor Credits
    put:
      operationId: update_VendorCredit_record
      summary: Update VendorCredit record
      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/PublicVendorCreditSchemaOut'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 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
  /public/v1/vendor-refunds/:
    get:
      operationId: list_VendorRefund_records
      summary: List VendorRefund records
      parameters:
        - in: query
          name: search
          schema:
            title: Search
            type: string
            nullable: true
          required: false
        - in: query
          name: company_id
          schema:
            q: company_id__in
            title: Company Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: number
          schema:
            q: number__in
            title: Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: vendor_id
          schema:
            q: vendor_id__in
            title: Vendor Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: start_date
          schema:
            q: transaction__date__gte
            title: Start Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: end_date
          schema:
            q: transaction__date__lte
            title: End Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: transaction_currency
          schema:
            q: transaction__currency_iso_4217_code
            $ref: '#/components/schemas/SystemCurrencies'
            nullable: true
          required: false
        - in: query
          name: record_status
          schema:
            q: transaction__record_status
            $ref: '#/components/schemas/RecordStatus'
            nullable: true
          required: false
        - in: query
          name: limit
          schema:
            default: 100
            minimum: 1
            title: Limit
            type: integer
          required: false
        - in: query
          name: offset
          schema:
            default: 0
            minimum: 0
            title: Offset
            type: integer
          required: false
      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
    post:
      operationId: create_VendorRefund_record
      summary: Create VendorRefund record
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicVendorRefundSchemaOut'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 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
  /public/v1/vendor-refunds/{record_number}/:
    get:
      operationId: get_VendorRefund_record
      summary: Get VendorRefund record
      parameters:
        - in: path
          name: record_number
          schema:
            title: Record Number
            type: integer
          required: true
        - in: query
          name: search
          schema:
            title: Search
            type: string
            nullable: true
          required: false
        - in: query
          name: company_id
          schema:
            q: company_id__in
            title: Company Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: number
          schema:
            q: number__in
            title: Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: vendor_id
          schema:
            q: vendor_id__in
            title: Vendor Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: start_date
          schema:
            q: transaction__date__gte
            title: Start Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: end_date
          schema:
            q: transaction__date__lte
            title: End Date
            format: date
            type: string
            nullable: true
          required: false
        - in: query
          name: transaction_currency
          schema:
            q: transaction__currency_iso_4217_code
            $ref: '#/components/schemas/SystemCurrencies'
            nullable: true
          required: false
        - in: query
          name: record_status
          schema:
            q: transaction__record_status
            $ref: '#/components/schemas/RecordStatus'
            nullable: true
          required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicVendorRefundSchemaOut'
        '400':
          description: Bad Request
          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 a specific VendorRefund record by number with all related data.
      tags:
        - Vendor Refunds
    put:
      operationId: update_VendorRefund_record
      summary: Update VendorRefund record
      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/PublicVendorRefundSchemaOut'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 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
  /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:
            title: Record Number
            type: integer
          required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicVendorRefundSchemaOut'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 new VendorRefund record attachments with the provided data.
        Validates all required fields and business rules.
      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
  /public/v1/recurring/invoices/:
    get:
      operationId: list_RecurringInvoice_records
      summary: List RecurringInvoice records
      parameters:
        - in: query
          name: search
          schema:
            title: Search
            type: string
            nullable: true
          required: false
        - in: query
          name: company_id
          schema:
            q: company_id__in
            title: Company Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: number
          schema:
            q: number__in
            title: Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: recurring_type
          schema:
            q: recurring_type__in
            title: Recurring Type
            items:
              $ref: '#/components/schemas/RecurringType'
            type: array
            nullable: true
          required: false
        - in: query
          name: limit
          schema:
            default: 100
            minimum: 1
            title: Limit
            type: integer
          required: false
        - in: query
          name: offset
          schema:
            default: 0
            minimum: 0
            title: Offset
            type: integer
          required: false
      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
    post:
      operationId: create_RecurringInvoice_record
      summary: Create RecurringInvoice record
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicRecurringInvoiceSchemaOut'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 new Recurring 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
  /public/v1/recurring/invoices/{record_number}/:
    get:
      operationId: get_RecurringInvoice_record
      summary: Get RecurringInvoice record
      parameters:
        - in: path
          name: record_number
          schema:
            title: Record Number
            type: integer
          required: true
        - in: query
          name: search
          schema:
            title: Search
            type: string
            nullable: true
          required: false
        - in: query
          name: company_id
          schema:
            q: company_id__in
            title: Company Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: number
          schema:
            q: number__in
            title: Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: recurring_type
          schema:
            q: recurring_type__in
            title: Recurring Type
            items:
              $ref: '#/components/schemas/RecurringType'
            type: array
            nullable: true
          required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicRecurringInvoiceSchemaOut'
        '400':
          description: Bad Request
          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 a specific Recurring record by number with all related data.
      tags:
        - Recurring Invoices
    put:
      operationId: update_RecurringInvoice_record
      summary: Update RecurringInvoice record
      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/PublicRecurringInvoiceSchemaOut'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 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
    delete:
      operationId: delete_RecurringInvoice_record
      summary: Delete RecurringInvoice record
      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/SuccessSchema'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '422':
          description: Unprocessable Content
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
      description: Delete a RecurringInvoice record.
      tags:
        - Recurring Invoices
  /public/v1/recurring/bills/:
    get:
      operationId: list_RecurringBill_records
      summary: List RecurringBill records
      parameters:
        - in: query
          name: search
          schema:
            title: Search
            type: string
            nullable: true
          required: false
        - in: query
          name: company_id
          schema:
            q: company_id__in
            title: Company Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: number
          schema:
            q: number__in
            title: Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: recurring_type
          schema:
            q: recurring_type__in
            title: Recurring Type
            items:
              $ref: '#/components/schemas/RecurringType'
            type: array
            nullable: true
          required: false
        - in: query
          name: limit
          schema:
            default: 100
            minimum: 1
            title: Limit
            type: integer
          required: false
        - in: query
          name: offset
          schema:
            default: 0
            minimum: 0
            title: Offset
            type: integer
          required: false
      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
    post:
      operationId: create_RecurringBill_record
      summary: Create RecurringBill record
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicRecurringBillSchemaOut'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 new Recurring 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
  /public/v1/recurring/bills/{record_number}/:
    get:
      operationId: get_RecurringBill_record
      summary: Get RecurringBill record
      parameters:
        - in: path
          name: record_number
          schema:
            title: Record Number
            type: integer
          required: true
        - in: query
          name: search
          schema:
            title: Search
            type: string
            nullable: true
          required: false
        - in: query
          name: company_id
          schema:
            q: company_id__in
            title: Company Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: number
          schema:
            q: number__in
            title: Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: recurring_type
          schema:
            q: recurring_type__in
            title: Recurring Type
            items:
              $ref: '#/components/schemas/RecurringType'
            type: array
            nullable: true
          required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicRecurringBillSchemaOut'
        '400':
          description: Bad Request
          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 a specific Recurring record by number with all related data.
      tags:
        - Recurring Bills
    put:
      operationId: update_RecurringBill_record
      summary: Update RecurringBill record
      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/PublicRecurringBillSchemaOut'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 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
    delete:
      operationId: delete_RecurringBill_record
      summary: Delete RecurringBill record
      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/SuccessSchema'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '422':
          description: Unprocessable Content
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
      description: Delete a RecurringBill record.
      tags:
        - Recurring Bills
  /public/v1/recurring/journal-entries/:
    get:
      operationId: list_RecurringJournalEntry_records
      summary: List RecurringJournalEntry records
      parameters:
        - in: query
          name: search
          schema:
            title: Search
            type: string
            nullable: true
          required: false
        - in: query
          name: company_id
          schema:
            q: company_id__in
            title: Company Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: number
          schema:
            q: number__in
            title: Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: recurring_type
          schema:
            q: recurring_type__in
            title: Recurring Type
            items:
              $ref: '#/components/schemas/RecurringType'
            type: array
            nullable: true
          required: false
        - in: query
          name: limit
          schema:
            default: 100
            minimum: 1
            title: Limit
            type: integer
          required: false
        - in: query
          name: offset
          schema:
            default: 0
            minimum: 0
            title: Offset
            type: integer
          required: false
      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
    post:
      operationId: create_RecurringJournalEntry_record
      summary: Create RecurringJournalEntry record
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicRecurringJournalEntrySchemaOut'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 new Recurring 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
  /public/v1/recurring/journal-entries/{record_number}/:
    get:
      operationId: get_RecurringJournalEntry_record
      summary: Get RecurringJournalEntry record
      parameters:
        - in: path
          name: record_number
          schema:
            title: Record Number
            type: integer
          required: true
        - in: query
          name: search
          schema:
            title: Search
            type: string
            nullable: true
          required: false
        - in: query
          name: company_id
          schema:
            q: company_id__in
            title: Company Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: number
          schema:
            q: number__in
            title: Number
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: recurring_type
          schema:
            q: recurring_type__in
            title: Recurring Type
            items:
              $ref: '#/components/schemas/RecurringType'
            type: array
            nullable: true
          required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicRecurringJournalEntrySchemaOut'
        '400':
          description: Bad Request
          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 a specific Recurring record by number with all related data.
      tags:
        - Recurring Journal Entries
    put:
      operationId: update_RecurringJournalEntry_record
      summary: Update RecurringJournalEntry record
      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/PublicRecurringJournalEntrySchemaOut'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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 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
    delete:
      operationId: delete_RecurringJournalEntry_record
      summary: Delete RecurringJournalEntry record
      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/SuccessSchema'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '422':
          description: Unprocessable Content
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
      description: Delete a RecurringJournalEntry record.
      tags:
        - Recurring Journal Entries
  /public/v1/companies/:
    get:
      operationId: core_api_public_companies_list_companies
      summary: List companies
      parameters:
        - in: query
          name: limit
          schema:
            default: 100
            minimum: 1
            title: Limit
            type: integer
          required: false
        - in: query
          name: offset
          schema:
            default: 0
            minimum: 0
            title: Offset
            type: integer
          required: false
      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 and search
        capabilities.
      tags:
        - 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'
        '400':
          description: Bad Request
          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 a specific company by ID with all related data including
        company access.
      tags:
        - Companies
  /public/v1/accounts/:
    get:
      operationId: core_api_public_accounts_list_accounts
      summary: List accounts
      parameters:
        - in: query
          name: limit
          schema:
            default: 100
            minimum: 1
            title: Limit
            type: integer
          required: false
        - in: query
          name: offset
          schema:
            default: 0
            minimum: 0
            title: Offset
            type: integer
          required: false
      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 and search
        capabilities.
      tags:
        - Accounts
  /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'
        '400':
          description: Bad Request
          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 a specific account by number with all related data including
        company access.
      tags:
        - Accounts
  /public/v1/customers/:
    get:
      operationId: core_api_public_customers_list_customers
      summary: List Customers
      parameters:
        - in: query
          name: search
          schema:
            title: Search
            type: string
            nullable: true
          required: false
        - in: query
          name: id
          schema:
            q: id__in
            title: Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: customer_type
          schema:
            q: customer_type__in
            title: Customer Type
            items:
              type: string
            type: array
            nullable: true
          required: false
        - in: query
          name: name
          schema:
            q: name__icontains
            title: Name
            type: string
            nullable: true
          required: false
        - in: query
          name: email
          schema:
            q: email__icontains
            title: Email
            type: string
            nullable: true
          required: false
        - in: query
          name: website
          schema:
            q: website__icontains
            title: Website
            type: string
            nullable: true
          required: false
        - in: query
          name: address
          schema:
            q: address__icontains
            title: Address
            type: string
            nullable: true
          required: false
        - in: query
          name: country
          schema:
            q: country__icontains
            title: Country
            type: string
            nullable: true
          required: false
        - in: query
          name: state
          schema:
            q: address_obj__state__icontains
            title: State
            type: string
            nullable: true
          required: false
        - in: query
          name: phone
          schema:
            q: phone__icontains
            title: Phone
            type: string
            nullable: true
          required: false
        - in: query
          name: ordering
          schema:
            default: updated_at,name
            title: Ordering
            type: string
            nullable: true
          required: false
        - in: query
          name: limit
          schema:
            default: 100
            minimum: 1
            title: Limit
            type: integer
          required: false
        - in: query
          name: offset
          schema:
            default: 0
            minimum: 0
            title: Offset
            type: integer
          required: false
      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'
      tags:
        - Customers
    post:
      operationId: core_api_public_customers_create_customer
      summary: Create Customer
      parameters: []
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerSchemaOut'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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'
      tags:
        - Customers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerSchemaCreateIn'
        required: true
  /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'
        '400':
          description: Bad Request
          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'
      tags:
        - Customers
    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
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerSchemaOut'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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'
      tags:
        - Customers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerSchemaUpdateIn'
        required: true
    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
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessSchema'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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'
      tags:
        - Customers
  /public/v1/items/:
    get:
      operationId: core_api_public_items_list_items
      summary: List Items
      parameters:
        - in: query
          name: search
          schema:
            title: Search
            type: string
            nullable: true
          required: false
        - in: query
          name: id
          schema:
            q: id__in
            title: Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: name
          schema:
            q: name__icontains
            title: Name
            type: string
            nullable: true
          required: false
        - in: query
          name: item_type
          schema:
            q: item_type__in
            title: Item Type
            items:
              $ref: '#/components/schemas/ItemTypes'
            type: array
            nullable: true
          required: false
        - in: query
          name: no_income_account
          schema:
            q: income_account__isnull
            title: No Income Account
            type: boolean
            nullable: true
          required: false
        - in: query
          name: no_expense_account
          schema:
            q: expense_account__isnull
            title: No Expense Account
            type: boolean
            nullable: true
          required: false
        - in: query
          name: no_deferral_account
          schema:
            q: deferral_account__isnull
            title: No Deferral Account
            type: boolean
            nullable: true
          required: false
        - in: query
          name: no_asset_account
          schema:
            q: asset_account__isnull
            title: No Asset Account
            type: boolean
            nullable: true
          required: false
        - in: query
          name: expense_account_id
          schema:
            q: expense_account_id__in
            title: Expense Account Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: income_account_id
          schema:
            q: income_account_id__in
            title: Income Account Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: deferral_account_id
          schema:
            q: deferral_account_id__in
            title: Deferral Account Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: asset_account_id
          schema:
            q: asset_account_id__in
            title: Asset Account Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: is_active
          schema:
            q: is_active
            title: Is Active
            type: boolean
            nullable: true
          required: false
        - in: query
          name: record_status
          schema:
            q: record_status__in
            title: Record Status
            items:
              $ref: '#/components/schemas/RecordStatus'
            type: array
            nullable: true
          required: false
        - in: query
          name: show_inactive
          schema:
            default: false
            title: Show Inactive
            type: boolean
          required: false
        - in: query
          name: limit
          schema:
            default: 100
            minimum: 1
            title: Limit
            type: integer
          required: false
        - in: query
          name: offset
          schema:
            default: 0
            minimum: 0
            title: Offset
            type: integer
          required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedPublicItemSchemaOut'
      tags:
        - Items
    post:
      operationId: core_api_public_items_create_item
      summary: Create Item
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicItemSchemaOut'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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'
      tags:
        - Items
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PublicItemSchemaCreateIn'
        required: true
  /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'
        '400':
          description: Bad Request
          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'
      tags:
        - Items
    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
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicItemSchemaOut'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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'
      tags:
        - Items
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PublicItemSchemaUpdateIn'
        required: true
    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
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessSchema'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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'
      tags:
        - Items
  /public/v1/vendors/:
    get:
      operationId: core_api_public_vendors_list_vendors
      summary: List Vendors
      parameters:
        - in: query
          name: search
          schema:
            title: Search
            type: string
            nullable: true
          required: false
        - in: query
          name: id
          schema:
            q: id__in
            title: Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: vendor_type
          schema:
            q: vendor_type__in
            title: Vendor Type
            items:
              type: string
            type: array
            nullable: true
          required: false
        - in: query
          name: name
          schema:
            q: name__icontains
            title: Name
            type: string
            nullable: true
          required: false
        - in: query
          name: email
          schema:
            q: email__icontains
            title: Email
            type: string
            nullable: true
          required: false
        - in: query
          name: website
          schema:
            q: website__icontains
            title: Website
            type: string
            nullable: true
          required: false
        - in: query
          name: single_address
          schema:
            q: single_address__icontains
            title: Single Address
            type: string
            nullable: true
          required: false
        - in: query
          name: country
          schema:
            q: country__icontains
            title: Country
            type: string
            nullable: true
          required: false
        - in: query
          name: state
          schema:
            q: address__state__icontains
            title: State
            type: string
            nullable: true
          required: false
        - in: query
          name: phone
          schema:
            q: phone__icontains
            title: Phone
            type: string
            nullable: true
          required: false
        - in: query
          name: is_active
          schema:
            title: Is Active
            type: boolean
            nullable: true
          required: false
        - in: query
          name: is_1099_eligible
          schema:
            title: Is 1099 Eligible
            type: boolean
            nullable: true
          required: false
        - in: query
          name: record_status
          schema:
            q: record_status
            $ref: '#/components/schemas/RecordStatus'
            nullable: true
          required: false
        - in: query
          name: company_id
          schema:
            q: company__id__in
            title: Company Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: exclude_company_id
          schema:
            title: Exclude Company Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: names
          schema:
            q: name__in
            title: Names
            items:
              type: string
            type: array
            nullable: true
          required: false
        - in: query
          name: ordering
          schema:
            default: updated_at,name
            title: Ordering
            type: string
            nullable: true
          required: false
        - in: query
          name: limit
          schema:
            default: 100
            minimum: 1
            title: Limit
            type: integer
          required: false
        - in: query
          name: offset
          schema:
            default: 0
            minimum: 0
            title: Offset
            type: integer
          required: false
      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'
      tags:
        - Vendors
    post:
      operationId: core_api_public_vendors_create_vendor
      summary: Create Vendor
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicVendorSchemaOut'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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'
      tags:
        - Vendors
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PublicVendorSchemaCreateIn'
        required: true
  /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'
        '400':
          description: Bad Request
          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'
      tags:
        - Vendors
    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
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicVendorSchemaOut'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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'
      tags:
        - Vendors
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PublicVendorSchemaUpdateIn'
        required: true
    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
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessSchema'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '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'
      tags:
        - Vendors
  /public/v1/classifications/:
    get:
      operationId: core_api_public_classifications_list_classifications
      summary: List Classifications
      parameters:
        - in: query
          name: search
          schema:
            title: Search
            type: string
            nullable: true
          required: false
        - in: query
          name: id
          schema:
            q: id__in
            title: Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: name
          schema:
            q: name__icontains
            title: Name
            type: string
            nullable: true
          required: false
        - in: query
          name: is_active
          schema:
            title: Is Active
            type: boolean
            nullable: true
          required: false
        - in: query
          name: is_required
          schema:
            title: Is Required
            type: boolean
            nullable: true
          required: false
        - in: query
          name: limit
          schema:
            default: 100
            minimum: 1
            title: Limit
            type: integer
          required: false
        - in: query
          name: offset
          schema:
            default: 0
            minimum: 0
            title: Offset
            type: integer
          required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedPublicClassificationSchemaOut'
      tags:
        - Classifications
    post:
      operationId: core_api_public_classifications_create_classification
      summary: Create Classification
      parameters: []
      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'
      tags:
        - Classifications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PublicClassificationSchemaCreateIn'
        required: true
  /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'
      tags:
        - Classifications
    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
      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'
      tags:
        - Classifications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PublicClassificationSchemaUpdateIn'
        required: true
    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
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessSchema'
        '422':
          description: Unprocessable Content
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
      tags:
        - Classifications
  /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
            nullable: true
          required: false
        - in: query
          name: id
          schema:
            q: id__in
            title: Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: name
          schema:
            q: name__icontains
            title: Name
            type: string
            nullable: true
          required: false
        - in: query
          name: is_active
          schema:
            title: Is Active
            type: boolean
            nullable: true
          required: false
        - in: query
          name: classification_id
          schema:
            q: classification_id__in
            title: Classification Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
        - in: query
          name: limit
          schema:
            default: 100
            minimum: 1
            title: Limit
            type: integer
          required: false
        - in: query
          name: offset
          schema:
            default: 0
            minimum: 0
            title: Offset
            type: integer
          required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedPublicClassificationLineSchemaOut'
        '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'
      tags:
        - Classifications Lines
  /public/v1/paper-checks/:
    get:
      operationId: core_api_public_paper_checks_list_paper_checks
      summary: List paper checks
      parameters:
        - in: query
          name: id
          schema:
            description: Filter by paper check IDs
            q: id__in
            title: Id
            items:
              type: integer
            type: array
            nullable: true
          required: false
          description: Filter by paper check IDs
        - in: query
          name: record_status
          schema:
            description: 'Filter by status: ''not_printed'', ''printed'', or ''archived'''
            q: record_status__in
            title: Record Status
            items:
              type: string
            type: array
            nullable: true
          required: false
          description: 'Filter by status: ''not_printed'', ''printed'', or ''archived'''
        - in: query
          name: company_id
          schema:
            description: Filter by company IDs
            q: transaction__company_id__in
            title: Company Id
            items:
              type: integer
            type: array
            nullable: true
          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'
            q: transaction__transaction_type__in
            title: Transaction Type
            items:
              $ref: '#/components/schemas/PaperCheckSourceRecordType'
            type: array
            nullable: true
          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
            nullable: true
          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
            nullable: true
          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
            nullable: true
          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)
            q: created_at__date__gte
            title: Start Date
            format: date
            type: string
            nullable: true
          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)
            q: created_at__date__lte
            title: End Date
            format: date
            type: string
            nullable: true
          required: false
          description: Filter checks created on or before this date (YYYY-MM-DD)
        - in: query
          name: limit
          schema:
            default: 100
            minimum: 1
            title: Limit
            type: integer
          required: false
        - in: query
          name: offset
          schema:
            default: 0
            minimum: 0
            title: Offset
            type: integer
          required: false
      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: >

        Retrieve a paginated list of paper checks with filtering options.


        Paper checks represent physical checks that can be printed for vendor
        payments,

        direct expenses, vendor prepayments, or customer refunds.


        **Common use cases:**

        - List all queued checks ready to print: `?record_status=not_printed`

        - List checks for a specific vendor: `?vendor_id=123`

        - List checks within a date range:
        `?start_date=2024-01-01&end_date=2024-01-31`
      tags:
        - Paper Checks
  /public/v1/paper-checks/print-now/:
    post:
      operationId: core_api_public_paper_checks_print_now
      summary: Print check immediately
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicPaperCheckWithPDFContentSchemaOut'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '422':
          description: Unprocessable Content
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
      description: >

        Create and immediately print a paper check for a transaction.


        This endpoint creates a paper check record and generates the PDF in a
        single operation.

        The check is immediately marked as PRINTED.


        **When to use:**

        - When you need to print a single check right away

        - For on-demand check printing workflows


        **Alternative:** Use `POST /print-later/` to queue checks for batch
        printing.


        **Supported transaction types:**

        - Direct expenses

        - Vendor payments

        - Vendor prepayments

        - Customer refunds


        **Returns:** The created paper check details along with the PDF content
        encoded in base64.
      tags:
        - Paper Checks
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PublicPrintNowPayload'
        required: true
  /public/v1/paper-checks/print-later/:
    post:
      operationId: core_api_public_paper_checks_print_later
      summary: Queue checks for later printing
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/PublicPaperCheckSchemaOut'
                title: Response
                type: array
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '422':
          description: Unprocessable Content
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
      description: >

        Create paper checks for transactions that will be printed later in a
        batch.


        This endpoint creates paper check records with status NOT_PRINTED. These
        checks

        can then be printed together using the `PUT /print-batch/` endpoint.


        **When to use:**

        - When you want to accumulate checks before printing

        - For batch check printing workflows

        - When check numbers need to be assigned in sequence


        **Alternative:** Use `POST /print-now/` to print a single check
        immediately.


        **Workflow:**

        1. Queue checks: `POST /print-later/` with transaction IDs

        2. Review queued checks: `GET /paper-checks/?record_status=not_printed`

        3. Print batch: `PUT /print-batch/` with paper check IDs


        **Returns:** List of created paper checks with status 'not_printed'.
      tags:
        - Paper Checks
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PublicPrintLaterPayload'
        required: true
  /public/v1/paper-checks/print-batch/:
    put:
      operationId: core_api_public_paper_checks_print_batch
      summary: Batch print paper checks
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicPaperCheckBatchPrintResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
        '422':
          description: Unprocessable Content
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
      description: >

        Print multiple queued paper checks in a batch.


        This endpoint prints all specified checks, assigns sequential check
        numbers,

        and returns a merged PDF containing all checks.


        **Prerequisites:**

        - All specified checks must have status 'not_printed'

        - Use `POST /print-later/` to queue checks first


        **Check number assignment:**

        Check numbers are assigned sequentially starting from
        `first_check_number`.

        The order of `paper_check_ids` in the request determines:

        1. The order of checks in the PDF

        2. The order of check number assignment


        **Example:**

        If `first_check_number=1001` and you print 3 checks, they will be
        numbered 1001, 1002, 1003.


        **Returns:**

        - `pdf_content`: Base64-encoded PDF with all checks

        - `printed_checks`: List showing each check ID and its assigned check
        number

        - `total_printed`: Count of checks printed
      tags:
        - Paper Checks
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PublicPrintBatchPayload'
        required: true
  /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: >

        Retrieve a specific paper check by ID.


        Returns the full details of a paper check including the associated
        transaction

        information, payee details, and current status.
      tags:
        - Paper Checks
    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
      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: >

        Archive a paper check by setting its status to ARCHIVED.


        Archiving a paper check removes it from active workflows without
        deleting it.

        This allows you to:

        - Remove a check from the print queue

        - Create a new check for the same transaction

        - Maintain audit history


        **Note:** Archived checks can still be retrieved via the list and get
        endpoints

        by filtering with `record_status=archived`.
      tags:
        - Paper Checks
components:
  schemas:
    AllMigrationIntegrationTypes:
      enum:
        - bill_com
        - ramp
        - zoho
        - stripe
        - finch
        - hubspot
        - brex
        - cubby
        - avalara
        - deel
        - quickbooks
        - xero
      title: AllMigrationIntegrationTypes
      type: string
    Input:
      properties:
        limit:
          default: 100
          minimum: 1
          title: Limit
          type: integer
        offset:
          default: 0
          minimum: 0
          title: Offset
          type: integer
      title: Input
      type: object
    PublicInvoiceListFilterSchema:
      properties:
        integration_sources:
          title: Integration Sources
          items:
            $ref: '#/components/schemas/AllMigrationIntegrationTypes'
          type: array
          nullable: true
        search:
          title: Search
          type: string
          nullable: true
        company_id:
          q: company_id__in
          title: Company Id
          items:
            type: integer
          type: array
          nullable: true
        number:
          q: number__in
          title: Number
          items:
            type: integer
          type: array
          nullable: true
        customer_id:
          q: customer_id__in
          title: Customer Id
          items:
            type: integer
          type: array
          nullable: true
        start_date:
          q: transaction__date__gte
          title: Start Date
          format: date
          type: string
          nullable: true
        end_date:
          q: transaction__date__lte
          title: End Date
          format: date
          type: string
          nullable: true
        due_date:
          q: due_date__gte
          title: Due Date
          format: date
          type: string
          nullable: true
        due_date_until:
          q: due_date__lte
          title: Due Date Until
          format: date
          type: string
          nullable: true
        transaction_currency:
          q: transaction__currency_iso_4217_code__in
          title: Transaction Currency
          items:
            $ref: '#/components/schemas/SystemCurrencies'
          type: array
          nullable: true
      title: PublicInvoiceListFilterSchema
      type: object
    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
    AddressSchemaIn:
      properties:
        street:
          title: Street
          type: string
        city:
          title: City
          type: string
        state:
          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
      required:
        - street
        - city
        - state
        - 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
          nullable: true
        upload_url:
          title: Upload Url
          type: string
          nullable: true
      required:
        - id
        - file_name
        - file_size
      title: AttachmentSchemaOut
      type: object
    AuditActorSchemaOut:
      description: Schema for audit actor information.
      properties:
        actor_type:
          title: Actor Type
          type: string
          nullable: true
        email:
          title: Email
          type: string
          nullable: true
        first_name:
          title: First Name
          type: string
          nullable: true
        last_name:
          title: Last Name
          type: string
          nullable: true
        timestamp:
          title: Timestamp
          format: date-time
          type: string
          nullable: true
      title: AuditActorSchemaOut
      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
          nullable: true
        id:
          title: Id
          type: integer
          nullable: true
        body:
          title: Body
          type: string
          nullable: true
        link:
          title: Link
          type: string
          nullable: true
      title: PaymentSchemaOut
      type: object
    PublicInvoiceItemOut:
      properties:
        classifications:
          default: []
          items:
            $ref: '#/components/schemas/RecordClassificationsSchemaOut'
          title: Classifications
          type: array
        id:
          title: Id
          type: integer
        item_id:
          title: Item Id
          type: integer
        quantity:
          anyOf:
            - type: number
            - type: string
          title: Quantity
        rate:
          anyOf:
            - type: number
            - type: string
          title: Rate
        position:
          title: Position
          type: integer
        memo:
          title: Memo
          type: string
      required:
        - id
        - item_id
        - quantity
        - rate
        - position
        - memo
      title: PublicInvoiceItemOut
      type: object
    PublicInvoiceSchemaOut:
      properties:
        attachments:
          default: []
          items:
            $ref: '#/components/schemas/AttachmentSchemaOut'
          title: Attachments
          type: array
        payment:
          $ref: '#/components/schemas/PaymentSchemaOut'
          nullable: true
        term_id:
          title: Term Id
          type: integer
          nullable: true
        term_name:
          title: Term Name
          type: string
        transaction_ids:
          items:
            type: integer
          title: Transaction Ids
          type: array
        created_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        updated_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        internal_id:
          title: Internal Id
          type: integer
        number:
          title: Number
          type: integer
        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
        customer_name:
          title: Customer Name
          type: string
        currency_iso_4217_code:
          $ref: '#/components/schemas/SystemCurrencies'
        exchange_rate:
          anyOf:
            - type: number
            - type: string
          title: Exchange Rate
        amount:
          anyOf:
            - type: number
            - type: string
          description: Total amount of transaction
          title: Amount
        amount_due:
          anyOf:
            - type: number
            - type: string
          description: Amount to be paid
          title: Amount Due
        paid_total:
          anyOf:
            - type: number
            - type: string
          description: >-
            Amount that was already paid by Customer Repayment Applications or
            Customer Payments
          title: Paid Total
        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:
          format: date
          title: Due Date
          type: string
        bill_to_address:
          title: Bill To Address
          type: string
        ship_to_address:
          title: Ship To Address
          type: string
        billing_address:
          $ref: '#/components/schemas/AddressSchemaIn'
          nullable: true
        shipping_address:
          $ref: '#/components/schemas/AddressSchemaIn'
          nullable: true
        record_status:
          $ref: '#/components/schemas/RecordStatus'
        recurring_record_number:
          title: Recurring Record Number
          type: integer
          nullable: true
        reference_number:
          title: Reference Number
          type: string
      required:
        - term_id
        - term_name
        - transaction_ids
        - internal_id
        - number
        - items
        - company_id
        - company_name
        - company_currency
        - customer_id
        - customer_name
        - currency_iso_4217_code
        - exchange_rate
        - amount
        - amount_due
        - paid_total
        - memo
        - date
        - transaction_date
        - due_date
        - bill_to_address
        - ship_to_address
        - record_status
        - recurring_record_number
        - reference_number
      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
          nullable: true
        parent_classification_line_id:
          title: Parent Classification Line Id
          type: integer
          nullable: true
      required:
        - id
        - name
        - line_id
        - line_name
      title: RecordClassificationsSchemaOut
      type: object
    RecordStatus:
      enum:
        - draft
        - posted
        - archived
      title: RecordStatus
      type: string
    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
    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
    ItemTaxData:
      properties:
        code:
          title: Code
          type: string
        rate:
          anyOf:
            - type: number
            - type: string
          title: Rate
        amount:
          anyOf:
            - type: number
            - type: string
          title: Amount
        is_taxable:
          title: Is Taxable
          type: boolean
          nullable: true
        tax_exempt_amount:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          title: Tax Exempt Amount
      required:
        - code
        - rate
        - amount
      title: ItemTaxData
      type: object
    PaymentSchemaIn:
      description: >-
        Schema for payment collection configuration (matches frontend
        structure).
      properties:
        type:
          title: Type
          type: string
          nullable: true
        id:
          title: Id
          type: integer
          nullable: true
        body:
          title: Body
          type: string
          nullable: true
        link:
          title: Link
          type: string
          nullable: true
      title: PaymentSchemaIn
      type: object
    PublicInvoiceItemIn:
      properties:
        id:
          title: Id
          type: integer
          nullable: true
        item_id:
          title: Item Id
          type: integer
        quantity:
          anyOf:
            - type: number
            - type: string
          title: Quantity
        rate:
          anyOf:
            - type: number
            - 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
        tax:
          $ref: '#/components/schemas/ItemTaxData'
          nullable: true
      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
          nullable: true
        custom_fields:
          title: Custom Fields
          items:
            additionalProperties: true
            type: object
          type: array
          nullable: true
        items:
          items:
            $ref: '#/components/schemas/PublicInvoiceItemIn'
          title: Items
          type: array
        memo:
          title: Memo
          type: string
        due_date:
          format: date
          title: Due 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'
        bill_to_address:
          default: ''
          title: Bill To Address
          type: string
          nullable: true
        billing_address:
          $ref: '#/components/schemas/AddressSchemaIn'
          nullable: true
        ship_to_address:
          default: ''
          title: Ship To Address
          type: string
          nullable: true
        shipping_address:
          $ref: '#/components/schemas/AddressSchemaIn'
          nullable: true
        exchange_rate:
          anyOf:
            - type: number
            - type: string
          title: Exchange Rate
        sales_order_id:
          title: Sales Order Id
          type: integer
          nullable: true
        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
        term_id:
          title: Term Id
          type: integer
          nullable: true
        reference_number:
          default: ''
          title: Reference Number
          type: string
        payment:
          $ref: '#/components/schemas/PaymentSchemaIn'
          nullable: true
      required:
        - date
        - items
        - memo
        - due_date
        - company_id
        - customer_id
        - currency_iso_4217_code
        - exchange_rate
      title: PublicInvoiceSchemaCreateIn
      type: object
    PublicInvoiceSchemaUpdateIn:
      properties:
        date:
          format: date
          title: Date
          type: string
        transaction_date:
          title: Transaction Date
          format: date
          type: string
          nullable: true
        custom_fields:
          title: Custom Fields
          items:
            additionalProperties: true
            type: object
          type: array
          nullable: true
        items:
          items:
            $ref: '#/components/schemas/PublicInvoiceItemIn'
          title: Items
          type: array
        memo:
          title: Memo
          type: string
        due_date:
          format: date
          title: Due 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'
        bill_to_address:
          default: ''
          title: Bill To Address
          type: string
          nullable: true
        billing_address:
          $ref: '#/components/schemas/AddressSchemaIn'
          nullable: true
        ship_to_address:
          default: ''
          title: Ship To Address
          type: string
          nullable: true
        shipping_address:
          $ref: '#/components/schemas/AddressSchemaIn'
          nullable: true
        exchange_rate:
          anyOf:
            - type: number
            - type: string
          title: Exchange Rate
        sales_order_id:
          title: Sales Order Id
          type: integer
          nullable: true
        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
        term_id:
          title: Term Id
          type: integer
          nullable: true
        reference_number:
          default: ''
          title: Reference Number
          type: string
        payment:
          $ref: '#/components/schemas/PaymentSchemaIn'
          nullable: true
      required:
        - date
        - items
        - memo
        - due_date
        - company_id
        - customer_id
        - currency_iso_4217_code
        - exchange_rate
      title: PublicInvoiceSchemaUpdateIn
      type: object
    PublicSalesOrderListFilterSchema:
      properties:
        search:
          title: Search
          type: string
          nullable: true
        company_id:
          q: company_id__in
          title: Company Id
          items:
            type: integer
          type: array
          nullable: true
        number:
          q: number__in
          title: Number
          items:
            type: integer
          type: array
          nullable: true
        customer_id:
          q: customer_id__in
          title: Customer Id
          items:
            type: integer
          type: array
          nullable: true
        start_date:
          q: date__gte
          title: Start Date
          format: date
          type: string
          nullable: true
        end_date:
          q: date__lte
          title: End Date
          format: date
          type: string
          nullable: true
        record_status:
          q: record_status
          $ref: '#/components/schemas/RecordStatus'
          nullable: true
        invoiced_status:
          title: Invoiced Status
          items:
            $ref: '#/components/schemas/SalesOrderInvoicedStatus'
          type: array
          nullable: true
      title: PublicSalesOrderListFilterSchema
      type: object
    SalesOrderInvoicedStatus:
      enum:
        - invoiced
        - uninvoiced
        - partially_invoiced
      title: SalesOrderInvoicedStatus
      type: string
    AppliesToItemSchema:
      description: Schema for individual applies_to items.
      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_refund
        - customer_deposit
        - currency_revaluation
        - contract
        - customer
        - vendor
        - sales_order
        - cash_sale
        - customer_credit
      title: AppliesToTypes
      type: string
    CustomFieldSchemaOut:
      properties:
        id:
          title: Id
          type: integer
        company_id:
          title: Company Id
          type: integer
          nullable: true
        company_ids:
          title: Company Ids
          items:
            type: integer
          type: array
          nullable: true
        name:
          title: Name
          type: string
        description:
          title: Description
          type: string
          nullable: true
        helper_text:
          title: Helper Text
          type: string
          nullable: true
        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
          nullable: true
        is_active:
          title: Is Active
          type: boolean
          nullable: true
      required:
        - id
        - name
        - description
        - helper_text
        - field_type
        - applies_to
        - options
        - is_active
      title: CustomFieldSchemaOut
      type: object
    CustomFieldValuePairOutputSchema:
      description: Schema for output custom field with its value.
      properties:
        field:
          $ref: '#/components/schemas/CustomFieldSchemaOut'
        value:
          $ref: '#/components/schemas/CustomFieldValueSchemaOut'
          nullable: true
      required:
        - field
      title: CustomFieldValuePairOutputSchema
      type: object
    CustomFieldValueSchemaOut:
      description: Schema for custom field values with full details.
      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
    FieldType:
      enum:
        - text
        - number
        - currency
        - date
        - boolean
        - single_select
        - multi_select
        - link
        - paragraph
      title: FieldType
      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
        id:
          title: Id
          type: integer
        item_id:
          title: Item Id
          type: integer
        quantity:
          anyOf:
            - type: number
            - type: string
          title: Quantity
        rate:
          anyOf:
            - type: number
            - type: string
          title: Rate
        position:
          title: Position
          type: integer
        memo:
          title: Memo
          type: string
        quantity_invoiced:
          anyOf:
            - type: number
            - type: string
          description: Quantity of items that already have corresponding Invoice
          title: Quantity Invoiced
        quantity_due:
          anyOf:
            - type: number
            - type: string
          description: Quantity of items yet to be invoiced
          title: Quantity Due
      required:
        - id
        - item_id
        - quantity
        - rate
        - position
        - memo
        - quantity_invoiced
        - quantity_due
      title: PublicSalesOrderItemOut
      type: object
    PublicSalesOrderSchemaOut:
      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
        invoiced_status:
          $ref: '#/components/schemas/SalesOrderInvoicedStatus'
        attachments:
          default: []
          items:
            $ref: '#/components/schemas/AttachmentSchemaOut'
          title: Attachments
          type: array
        term_id:
          title: Term Id
          type: integer
          nullable: true
        term_name:
          title: Term Name
          type: string
        created_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        updated_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        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:
          anyOf:
            - type: number
            - type: string
          title: Exchange Rate
        amount:
          anyOf:
            - type: number
            - type: string
          description: Total amount of ordered items
          title: Amount
        invoiced_total:
          anyOf:
            - type: number
            - type: string
          description: Total quantity of items that were already invoiced
          title: Invoiced Total
        due_total:
          anyOf:
            - type: number
            - type: string
          description: Total quantity of items yet to be invoiced
          title: Due Total
        memo:
          title: Memo
          type: string
        date:
          format: date
          title: Date
          type: string
        bill_to_address:
          title: Bill To Address
          type: string
        ship_to_address:
          title: Ship To Address
          type: string
        billing_address:
          $ref: '#/components/schemas/AddressSchemaIn'
          nullable: true
        shipping_address:
          $ref: '#/components/schemas/AddressSchemaIn'
          nullable: true
        record_status:
          $ref: '#/components/schemas/RecordStatus'
        recurring_record_number:
          title: Recurring Record Number
          type: integer
          nullable: true
        reference_number:
          title: Reference Number
          type: string
      required:
        - created_at
        - updated_at
        - 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
        - bill_to_address
        - ship_to_address
        - record_status
        - reference_number
      title: PublicSalesOrderSchemaOut
      type: object
    PublicSalesOrderItemIn:
      properties:
        id:
          title: Id
          type: integer
          nullable: true
        item_id:
          title: Item Id
          type: integer
        quantity:
          anyOf:
            - type: number
            - type: string
          title: Quantity
        rate:
          anyOf:
            - type: number
            - 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
        tax:
          $ref: '#/components/schemas/ItemTaxData'
          nullable: true
      required:
        - item_id
        - quantity
        - rate
        - position
        - memo
      title: PublicSalesOrderItemIn
      type: object
    PublicSalesOrderSchemaCreateIn:
      properties:
        bill_to_address:
          default: ''
          title: Bill To Address
          type: string
          nullable: true
        ship_to_address:
          default: ''
          title: Ship To Address
          type: string
          nullable: true
        custom_fields:
          title: Custom Fields
          items:
            additionalProperties: true
            type: object
          type: array
          nullable: true
        items:
          items:
            $ref: '#/components/schemas/PublicSalesOrderItemIn'
          title: Items
          type: array
        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'
        billing_address:
          $ref: '#/components/schemas/AddressSchemaIn'
          nullable: true
        shipping_address:
          $ref: '#/components/schemas/AddressSchemaIn'
          nullable: true
        exchange_rate:
          anyOf:
            - type: number
            - type: string
          title: Exchange Rate
        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
          nullable: true
        reference_number:
          default: ''
          title: Reference Number
          type: string
      required:
        - items
        - memo
        - date
        - company_id
        - customer_id
        - currency_iso_4217_code
        - exchange_rate
      title: PublicSalesOrderSchemaCreateIn
      type: object
    PublicSalesOrderSchemaUpdateIn:
      properties:
        bill_to_address:
          default: ''
          title: Bill To Address
          type: string
          nullable: true
        ship_to_address:
          default: ''
          title: Ship To Address
          type: string
          nullable: true
        custom_fields:
          title: Custom Fields
          items:
            additionalProperties: true
            type: object
          type: array
          nullable: true
        items:
          items:
            $ref: '#/components/schemas/PublicSalesOrderItemIn'
          title: Items
          type: array
        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'
        billing_address:
          $ref: '#/components/schemas/AddressSchemaIn'
          nullable: true
        shipping_address:
          $ref: '#/components/schemas/AddressSchemaIn'
          nullable: true
        exchange_rate:
          anyOf:
            - type: number
            - type: string
          title: Exchange Rate
        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
          nullable: true
        reference_number:
          default: ''
          title: Reference Number
          type: string
      required:
        - items
        - memo
        - date
        - company_id
        - customer_id
        - currency_iso_4217_code
        - exchange_rate
      title: PublicSalesOrderSchemaUpdateIn
      type: object
    PublicBillListFilterSchema:
      properties:
        search:
          title: Search
          type: string
          nullable: true
        company_id:
          q: company_id__in
          title: Company Id
          items:
            type: integer
          type: array
          nullable: true
        vendor_id:
          q: vendor_id__in
          title: Vendor Id
          items:
            type: integer
          type: array
          nullable: true
        number:
          q: number__in
          title: Number
          items:
            type: integer
          type: array
          nullable: true
        start_date:
          q: transaction__date__gte
          title: Start Date
          format: date
          type: string
          nullable: true
        end_date:
          q: transaction__date__lte
          title: End Date
          format: date
          type: string
          nullable: true
        due_date:
          q: due_date__gte
          title: Due Date
          format: date
          type: string
          nullable: true
      title: PublicBillListFilterSchema
      type: object
    ExternalIntegrationSourceOut:
      properties:
        integration_type:
          anyOf:
            - $ref: '#/components/schemas/IntegrationProviderType'
            - $ref: '#/components/schemas/MigrationProviderType'
          title: Integration Type
        external_integration_url:
          title: External Integration Url
          type: string
          nullable: true
      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
          nullable: true
        website:
          title: Website
          type: string
          nullable: true
        description:
          title: Description
          type: string
          nullable: true
        category:
          title: Category
          type: string
          nullable: true
      required:
        - id
        - name
        - integration_type
      title: IntegrationProviderSchemaOut
      type: object
    IntegrationProviderType:
      enum:
        - bill_com
        - ramp
        - zoho
        - fivetran
        - stripe
        - finch
        - hubspot
        - brex
        - cubby
        - avalara
        - deel
      title: IntegrationProviderType
      type: string
    IntegrationRemoteRecordSchemaOut:
      properties:
        transactional_date:
          title: Transactional Date
          format: date-time
          type: string
          nullable: true
        external_source:
          $ref: '#/components/schemas/ExternalIntegrationSourceOut'
          nullable: true
        id:
          title: Id
          type: integer
        source_id:
          title: Source Id
          type: string
        connection_id:
          title: Connection Id
          type: integer
          nullable: true
        integration_id:
          title: Integration Id
          type: integer
          nullable: true
        integration_provider:
          $ref: '#/components/schemas/IntegrationProviderSchemaOut'
          nullable: true
        url:
          title: Url
          type: string
          nullable: true
      required:
        - id
        - source_id
      title: IntegrationRemoteRecordSchemaOut
      type: object
    MigrationProviderType:
      enum:
        - quickbooks
        - xero
      title: MigrationProviderType
      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
    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
          nullable: true
      required:
        - id
        - file_name
        - file_size
      title: PublicAttachmentSchemaOut
      type: object
    PublicBillExpenseOut:
      properties:
        rate:
          anyOf:
            - type: number
            - type: string
          title: Rate
        quantity:
          anyOf:
            - type: number
            - type: string
          title: Quantity
        classifications:
          default: []
          items:
            $ref: '#/components/schemas/RecordClassificationsSchemaOut'
          title: Classifications
          type: array
        id:
          title: Id
          type: integer
        position:
          title: Position
          type: integer
        account_number:
          title: Account Number
          type: integer
        expense_description:
          title: Expense Description
          type: string
      required:
        - rate
        - quantity
        - id
        - position
        - account_number
        - expense_description
      title: PublicBillExpenseOut
      type: object
    PublicBillItemOut:
      properties:
        classifications:
          default: []
          items:
            $ref: '#/components/schemas/RecordClassificationsSchemaOut'
          title: Classifications
          type: array
        id:
          title: Id
          type: integer
        position:
          title: Position
          type: integer
        item_id:
          title: Item Id
          type: integer
        memo:
          title: Memo
          type: string
        rate:
          anyOf:
            - type: number
            - type: string
          title: Rate
        quantity:
          anyOf:
            - type: number
            - type: string
          title: Quantity
        amount:
          anyOf:
            - type: number
            - type: string
          title: Amount
      required:
        - id
        - position
        - item_id
        - memo
        - rate
        - quantity
        - amount
      title: PublicBillItemOut
      type: object
    PublicBillSchemaOut:
      properties:
        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
          nullable: true
        term_name:
          title: Term Name
          type: string
        integration_remote_records:
          default: []
          items:
            $ref: '#/components/schemas/IntegrationRemoteRecordSchemaOut'
          title: Integration Remote Records
          type: array
        created_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        updated_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        internal_id:
          title: Internal Id
          type: integer
        number:
          title: Number
          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
        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:
          anyOf:
            - type: number
            - type: string
          title: Exchange Rate
        memo:
          title: Memo
          type: string
        amount:
          anyOf:
            - type: number
            - type: string
          description: Total amount of transaction
          title: Amount
        amount_due:
          anyOf:
            - type: number
            - type: string
          description: Amount to be paid
          title: Amount Due
        paid_total:
          anyOf:
            - type: number
            - type: string
          description: >-
            Amount that was already paid by Vendor Prepayment Applications or
            Vendor Payments
          title: Paid Total
        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
          nullable: true
        purchase_order_number:
          title: Purchase Order Number
          type: integer
          nullable: true
        reference_number:
          title: Reference Number
          type: string
      required:
        - 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
      title: PublicBillSchemaOut
      type: object
    PublicBillExpenseIn:
      properties:
        rate:
          anyOf:
            - type: number
            - type: string
          title: Rate
        quantity:
          anyOf:
            - type: number
            - type: string
          title: Quantity
        id:
          title: Id
          type: integer
          nullable: true
        position:
          title: Position
          type: integer
        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
      required:
        - rate
        - quantity
        - position
        - account_number
        - expense_description
      title: PublicBillExpenseIn
      type: object
    PublicBillItemIn:
      properties:
        rate:
          anyOf:
            - type: number
            - type: string
          title: Rate
        quantity:
          anyOf:
            - type: number
            - type: string
          title: Quantity
        id:
          title: Id
          type: integer
          nullable: true
        position:
          title: Position
          type: integer
        item_id:
          title: Item Id
          type: integer
        memo:
          title: Memo
          type: string
        classifications:
          default: []
          items:
            $ref: '#/components/schemas/RecordClassificationsSchemaOut'
          title: Classifications
          type: array
      required:
        - rate
        - quantity
        - position
        - item_id
        - memo
      title: PublicBillItemIn
      type: object
    PublicBillSchemaCreateIn:
      properties:
        date:
          format: date
          title: Date
          type: string
        transaction_date:
          title: Transaction Date
          format: date
          type: string
          nullable: true
        items:
          items:
            $ref: '#/components/schemas/PublicBillItemIn'
          title: Items
          type: array
        expenses:
          items:
            $ref: '#/components/schemas/PublicBillExpenseIn'
          title: Expenses
          type: array
        due_date:
          format: date
          title: Due Date
          type: string
        company_id:
          title: Company Id
          type: integer
        vendor_id:
          title: Vendor Id
          type: integer
        term_id:
          title: Term Id
          type: integer
          nullable: true
        reference_number:
          default: ''
          title: Reference Number
          type: string
        purchase_order_number:
          title: Purchase Order Number
          type: integer
          nullable: true
        currency_iso_4217_code:
          $ref: '#/components/schemas/SystemCurrencies'
        exchange_rate:
          anyOf:
            - type: number
            - type: string
          title: Exchange Rate
        memo:
          title: Memo
          type: string
        attachments:
          default: []
          items:
            $ref: '#/components/schemas/AttachmentSchemaOut'
          title: Attachments
          type: array
        record_status:
          allOf:
            - $ref: '#/components/schemas/RecordStatus'
          default: posted
      required:
        - date
        - items
        - expenses
        - due_date
        - company_id
        - vendor_id
        - currency_iso_4217_code
        - exchange_rate
        - memo
      title: PublicBillSchemaCreateIn
      type: object
    PublicBillSchemaUpdateIn:
      properties:
        date:
          format: date
          title: Date
          type: string
        transaction_date:
          title: Transaction Date
          format: date
          type: string
          nullable: true
        items:
          items:
            $ref: '#/components/schemas/PublicBillItemIn'
          title: Items
          type: array
        expenses:
          items:
            $ref: '#/components/schemas/PublicBillExpenseIn'
          title: Expenses
          type: array
        due_date:
          format: date
          title: Due Date
          type: string
        company_id:
          title: Company Id
          type: integer
        vendor_id:
          title: Vendor Id
          type: integer
        term_id:
          title: Term Id
          type: integer
          nullable: true
        reference_number:
          default: ''
          title: Reference Number
          type: string
        purchase_order_number:
          title: Purchase Order Number
          type: integer
          nullable: true
        currency_iso_4217_code:
          $ref: '#/components/schemas/SystemCurrencies'
        exchange_rate:
          anyOf:
            - type: number
            - type: string
          title: Exchange Rate
        memo:
          title: Memo
          type: string
        attachments:
          default: []
          items:
            $ref: '#/components/schemas/AttachmentSchemaOut'
          title: Attachments
          type: array
        record_status:
          allOf:
            - $ref: '#/components/schemas/RecordStatus'
          default: posted
      required:
        - date
        - items
        - expenses
        - due_date
        - company_id
        - vendor_id
        - currency_iso_4217_code
        - exchange_rate
        - memo
      title: PublicBillSchemaUpdateIn
      type: object
    PublicJournalEntryListFilterSchema:
      properties:
        search:
          title: Search
          type: string
          nullable: true
        company_id:
          q: company_id__in
          title: Company Id
          items:
            type: integer
          type: array
          nullable: true
        customer_id:
          q: journal_entry_lines__customer_id__in
          title: Customer Id
          items:
            type: integer
          type: array
          nullable: true
        vendor_id:
          q: journal_entry_lines__vendor_id__in
          title: Vendor Id
          items:
            type: integer
          type: array
          nullable: true
        number:
          q: number__in
          title: Number
          items:
            type: integer
          type: array
          nullable: true
        start_date:
          q: transaction__date__gte
          title: Start Date
          format: date
          type: string
          nullable: true
        end_date:
          q: transaction__date__lte
          title: End Date
          format: date
          type: string
          nullable: true
        record_status:
          q: transaction__record_status__in
          title: Record Status
          items:
            $ref: '#/components/schemas/RecordStatus'
          type: array
          nullable: true
        needs_my_approval:
          title: Needs My Approval
          type: boolean
          nullable: true
        approval_status:
          title: Approval Status
          items:
            type: string
          type: array
          nullable: true
      title: PublicJournalEntryListFilterSchema
      type: object
    JournalEntryItemOut:
      properties:
        debit:
          anyOf:
            - type: number
            - type: string
          title: Debit
        credit:
          anyOf:
            - type: number
            - type: string
          title: Credit
        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:
          title: Memo
          type: string
        customer_id:
          title: Customer Id
          type: integer
          nullable: true
        vendor_id:
          title: Vendor Id
          type: integer
          nullable: true
        currency:
          $ref: '#/components/schemas/SystemCurrencies'
        account_number:
          title: Account Number
          type: integer
        line_type:
          $ref: '#/components/schemas/LineType'
        original_line_id:
          title: Original Line Id
          type: integer
          nullable: true
        customer_name:
          title: Customer Name
          type: string
          nullable: true
        vendor_name:
          title: Vendor Name
          type: string
          nullable: true
      required:
        - debit
        - credit
        - id
        - account_id
        - position
        - memo
        - 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:
        debit:
          anyOf:
            - type: number
            - type: string
          title: Debit
        credit:
          anyOf:
            - type: number
            - type: string
          title: Credit
        classifications:
          default: []
          items:
            $ref: '#/components/schemas/RecordClassificationsSchemaOut'
          title: Classifications
          type: array
        id:
          title: 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
          nullable: true
        customer_name:
          title: Customer Name
          type: string
          nullable: true
        vendor_id:
          title: Vendor Id
          type: integer
          nullable: true
        vendor_name:
          title: Vendor Name
          type: string
          nullable: true
      required:
        - debit
        - credit
        - id
        - account_number
        - position
        - memo
      title: PublicJournalEntryItemOut
      type: object
    PublicJournalEntrySchemaOut:
      properties:
        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
        created_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        updated_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        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
        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:
          anyOf:
            - type: number
            - type: string
          title: Amount
        exchange_rate:
          anyOf:
            - type: number
            - type: string
          title: Exchange Rate
        record_status:
          $ref: '#/components/schemas/RecordStatus'
      required:
        - reversal_items
        - items
        - internal_id
        - number
        - company_id
        - company_name
        - company_currency
        - memo
        - date
        - transaction_date
        - currency_iso_4217_code
        - amount
        - exchange_rate
        - record_status
      title: PublicJournalEntrySchemaOut
      type: object
    PublicJournalEntryItemIn:
      properties:
        id:
          title: Id
          type: integer
          nullable: true
        account_number:
          title: Account Number
          type: integer
        debit:
          anyOf:
            - type: number
            - type: string
          title: Debit
        credit:
          anyOf:
            - type: number
            - 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
        currency:
          $ref: '#/components/schemas/SystemCurrencies'
          nullable: true
      required:
        - account_number
        - debit
        - credit
        - position
        - memo
      title: PublicJournalEntryItemIn
      type: object
    PublicJournalEntrySchemaCreateIn:
      properties:
        date:
          format: date
          title: Date
          type: string
        transaction_date:
          title: Transaction Date
          format: date
          type: string
          nullable: true
        items:
          items:
            $ref: '#/components/schemas/PublicJournalEntryItemIn'
          title: Items
          type: array
        company_id:
          title: Company Id
          type: integer
        memo:
          title: Memo
          type: string
        reversal_date:
          title: Reversal Date
          format: date
          type: string
          nullable: true
        attachments:
          default: []
          items:
            $ref: '#/components/schemas/AttachmentSchemaOut'
          title: Attachments
          type: array
        currency_iso_4217_code:
          $ref: '#/components/schemas/SystemCurrencies'
        exchange_rate:
          anyOf:
            - type: number
            - type: string
          title: Exchange Rate
        record_status:
          allOf:
            - $ref: '#/components/schemas/RecordStatus'
          default: posted
      required:
        - date
        - items
        - company_id
        - memo
        - currency_iso_4217_code
        - exchange_rate
      title: PublicJournalEntrySchemaCreateIn
      type: object
    PublicJournalEntrySchemaUpdateIn:
      properties:
        date:
          format: date
          title: Date
          type: string
        transaction_date:
          title: Transaction Date
          format: date
          type: string
          nullable: true
        items:
          items:
            $ref: '#/components/schemas/PublicJournalEntryItemIn'
          title: Items
          type: array
        company_id:
          title: Company Id
          type: integer
        memo:
          title: Memo
          type: string
        reversal_date:
          title: Reversal Date
          format: date
          type: string
          nullable: true
        attachments:
          default: []
          items:
            $ref: '#/components/schemas/AttachmentSchemaOut'
          title: Attachments
          type: array
        currency_iso_4217_code:
          $ref: '#/components/schemas/SystemCurrencies'
        exchange_rate:
          anyOf:
            - type: number
            - type: string
          title: Exchange Rate
        record_status:
          allOf:
            - $ref: '#/components/schemas/RecordStatus'
          default: posted
      required:
        - date
        - items
        - company_id
        - memo
        - currency_iso_4217_code
        - exchange_rate
      title: PublicJournalEntrySchemaUpdateIn
      type: object
    PublicPurchaseOrderListFilterSchema:
      properties:
        search:
          title: Search
          type: string
          nullable: true
        company_id:
          q: company_id__in
          title: Company Id
          items:
            type: integer
          type: array
          nullable: true
        number:
          q: number__in
          title: Number
          items:
            type: integer
          type: array
          nullable: true
        vendor_id:
          q: vendor_id__in
          title: Vendor Id
          items:
            type: integer
          type: array
          nullable: true
        start_date:
          q: date__gte
          title: Start Date
          format: date
          type: string
          nullable: true
        end_date:
          q: date__lte
          title: End Date
          format: date
          type: string
          nullable: true
        record_status:
          q: record_status
          $ref: '#/components/schemas/RecordStatus'
          nullable: true
        billed:
          title: Billed
          type: boolean
          nullable: true
        unbilled:
          title: Unbilled
          type: boolean
          nullable: true
        partially_billed:
          title: Partially Billed
          type: boolean
          nullable: true
        billed_status:
          default: []
          items:
            enum:
              - billed
              - unbilled
              - partially_billed
            title: PurchaseOrderBilledStatus
            type: string
          title: Billed Status
          type: array
          uniqueItems: true
      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
        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:
          anyOf:
            - type: number
            - type: string
          description: Quantity ordered
          title: Quantity
        rate:
          anyOf:
            - type: number
            - type: string
          description: Rate per unit
          title: Rate
        quantity_billed:
          anyOf:
            - type: number
            - type: string
          description: Quantity of items that already have corresponding Bill
          title: Quantity Billed
        quantity_due:
          anyOf:
            - type: number
            - type: string
          description: Quantity of items yet to be billed
          title: Quantity Due
        amount:
          anyOf:
            - type: number
            - type: string
          description: Total amount expected to be paid for this item
          title: Amount
      required:
        - classifications
        - id
        - item_id
        - position
        - memo
        - quantity
        - rate
        - quantity_billed
        - quantity_due
        - 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
          nullable: true
        term_name:
          title: Term Name
          type: string
        created_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        updated_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        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:
          anyOf:
            - type: number
            - type: string
          title: Exchange Rate
        billed_total:
          anyOf:
            - type: number
            - type: string
          description: Total quantity of items that were already billed
          title: Billed Total
        due_total:
          anyOf:
            - type: number
            - type: string
          description: Total quantity of items yet to be billed
          title: Due Total
        amount:
          anyOf:
            - type: number
            - type: string
          description: Total amount of ordered items
          title: Amount
        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
      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
      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
          nullable: true
        parent_classification_line_id:
          title: Parent Classification Line Id
          type: integer
          nullable: true
      required:
        - id
        - name
        - line_id
        - line_name
      title: PublicRecordClassificationsSchemaOut
      type: object
    PublicPurchaseOrderItemIn:
      properties:
        id:
          title: Id
          type: integer
          nullable: true
        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
            - type: string
          description: Quantity of the item
          title: Quantity
        rate:
          anyOf:
            - type: number
            - 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:
        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
            - 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
          nullable: true
        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:
        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
            - 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
          nullable: true
        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
          nullable: true
        id:
          q: id__in
          title: Id
          items:
            type: integer
          type: array
          nullable: true
        company_id:
          q: company_id__in
          title: Company Id
          items:
            type: integer
          type: array
          nullable: true
        number:
          q: number__in
          title: Number
          items:
            type: integer
          type: array
          nullable: true
        customer_id:
          q: customer_id__in
          title: Customer Id
          items:
            type: integer
          type: array
          nullable: true
        start_date:
          q: transaction__date__gte
          title: Start Date
          format: date
          type: string
          nullable: true
        end_date:
          q: transaction__date__lte
          title: End Date
          format: date
          type: string
          nullable: true
        transaction_currency:
          q: transaction__currency_iso_4217_code
          $ref: '#/components/schemas/SystemCurrencies'
          nullable: true
        record_status:
          q: transaction__record_status
          $ref: '#/components/schemas/RecordStatus'
          nullable: true
      title: PublicCustomerPrepaymentListFilterSchema
      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:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        updated_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        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
          nullable: true
        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:
          anyOf:
            - type: number
            - type: string
          title: Exchange Rate
        undeposited_funds_currency:
          $ref: '#/components/schemas/SystemCurrencies'
          nullable: true
        bank_or_undeposited_funds_amount:
          anyOf:
            - type: number
            - type: string
          title: Bank Or Undeposited Funds Amount
        amount:
          anyOf:
            - type: number
            - type: string
          description: Total transaction amount
          title: Amount
        used_amount:
          anyOf:
            - type: number
            - type: string
          description: Amount that was already applied to Invoices
          title: Used Amount
        remaining_amount:
          anyOf:
            - type: number
            - type: string
          description: Amount that can be applied to Invoices
          title: Remaining Amount
        record_status:
          $ref: '#/components/schemas/RecordStatus'
        customer_deposits:
          default: []
          items:
            additionalProperties: true
            type: object
          title: Customer Deposits
          type: array
        recurring_record_number:
          title: Recurring Record Number
          type: integer
          nullable: true
      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
      title: PublicCustomerPrepaymentSchemaOut
      type: object
    PublicCustomerPrepaymentSchemaCreateIn:
      properties:
        date:
          format: date
          title: Date
          type: string
        transaction_date:
          title: Transaction Date
          format: date
          type: string
          nullable: true
        company_id:
          title: Company Id
          type: integer
        customer_id:
          title: Customer Id
          type: integer
        account_number:
          title: Account Number
          type: integer
          nullable: true
        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
            - type: string
          title: Exchange Rate
        undeposited_funds_currency:
          $ref: '#/components/schemas/SystemCurrencies'
          nullable: true
        amount:
          anyOf:
            - type: number
            - type: string
          description: Total transaction amount
          title: Amount
        bank_or_undeposited_funds_amount:
          anyOf:
            - type: number
            - type: string
          title: Bank Or Undeposited Funds Amount
        attachments:
          default: []
          items:
            $ref: '#/components/schemas/AttachmentSchemaOut'
          title: Attachments
          type: array
        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:
        date:
          format: date
          title: Date
          type: string
        transaction_date:
          title: Transaction Date
          format: date
          type: string
          nullable: true
        company_id:
          title: Company Id
          type: integer
        customer_id:
          title: Customer Id
          type: integer
        account_number:
          title: Account Number
          type: integer
          nullable: true
        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
            - type: string
          title: Exchange Rate
        undeposited_funds_currency:
          $ref: '#/components/schemas/SystemCurrencies'
          nullable: true
        amount:
          anyOf:
            - type: number
            - type: string
          description: Total transaction amount
          title: Amount
        bank_or_undeposited_funds_amount:
          anyOf:
            - type: number
            - type: string
          title: Bank Or Undeposited Funds Amount
        attachments:
          default: []
          items:
            $ref: '#/components/schemas/AttachmentSchemaOut'
          title: Attachments
          type: array
        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
    PublicCustomerPrepaymentApplicationListFilterSchema:
      properties:
        search:
          title: Search
          type: string
          nullable: true
        company_id:
          q: company_id__in
          title: Company Id
          items:
            type: integer
          type: array
          nullable: true
        number:
          q: number__in
          title: Number
          items:
            type: integer
          type: array
          nullable: true
        customer_id:
          q: customer_prepayment_application_lines__invoice__customer_id__in
          title: Customer Id
          items:
            type: integer
          type: array
          nullable: true
        start_date:
          q: transaction__date__gte
          title: Start Date
          format: date
          type: string
          nullable: true
        end_date:
          q: transaction__date__lte
          title: End Date
          format: date
          type: string
          nullable: true
        transaction_currency:
          q: transaction__currency_iso_4217_code
          $ref: '#/components/schemas/SystemCurrencies'
          nullable: true
        record_status:
          q: transaction__record_status
          $ref: '#/components/schemas/RecordStatus'
          nullable: true
      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
          nullable: true
        amount:
          anyOf:
            - type: number
            - type: string
          title: Amount
        amount_due:
          anyOf:
            - type: number
            - type: string
          title: Amount Due
        position:
          title: Position
          type: integer
      required:
        - amount
        - amount_due
        - position
      title: PublicCustomerPrepaymentApplicationItemOut
      type: object
    PublicCustomerPrepaymentApplicationSchemaOut:
      properties:
        classifications:
          default: []
          items:
            $ref: '#/components/schemas/PublicRecordClassificationsSchemaOut'
          title: Classifications
          type: array
        transaction_ids:
          items:
            type: integer
          title: Transaction Ids
          type: array
        created_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        updated_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        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
          nullable: true
        customer_credit_number:
          title: Customer Credit Number
          type: integer
          nullable: true
        currency_iso_4217_code:
          $ref: '#/components/schemas/SystemCurrencies'
        exchange_rate:
          anyOf:
            - type: number
            - type: string
          title: Exchange Rate
        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:
          anyOf:
            - type: number
            - type: string
          description: Total transaction amount
          title: Amount
        record_status:
          $ref: '#/components/schemas/RecordStatus'
      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
      title: PublicCustomerPrepaymentApplicationSchemaOut
      type: object
    PublicCustomerPrepaymentApplicationItemIn:
      properties:
        id:
          title: Id
          type: integer
          nullable: true
        invoice_number:
          title: Invoice Number
          type: integer
        amount:
          anyOf:
            - type: number
            - 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
          nullable: true
        date:
          format: date
          title: Date
          type: string
        transaction_date:
          title: Transaction Date
          format: date
          type: string
          nullable: true
        company_id:
          title: Company Id
          type: integer
        customer_prepayment_number:
          title: Customer Prepayment Number
          type: integer
          nullable: true
        customer_credit_number:
          title: Customer Credit Number
          type: integer
          nullable: true
        currency_iso_4217_code:
          $ref: '#/components/schemas/SystemCurrencies'
        exchange_rate:
          anyOf:
            - type: number
            - 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
          nullable: true
        date:
          format: date
          title: Date
          type: string
        transaction_date:
          title: Transaction Date
          format: date
          type: string
          nullable: true
        company_id:
          title: Company Id
          type: integer
        customer_prepayment_number:
          title: Customer Prepayment Number
          type: integer
          nullable: true
        customer_credit_number:
          title: Customer Credit Number
          type: integer
          nullable: true
        currency_iso_4217_code:
          $ref: '#/components/schemas/SystemCurrencies'
        exchange_rate:
          anyOf:
            - type: number
            - 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
    PublicCustomerDepositListFilterSchema:
      properties:
        search:
          title: Search
          type: string
          nullable: true
        company_id:
          q: company_id__in
          title: Company Id
          items:
            type: integer
          type: array
          nullable: true
        number:
          q: number__in
          title: Number
          items:
            type: integer
          type: array
          nullable: true
        customer_id:
          q: customer_id__in
          title: Customer Id
          items:
            type: integer
          type: array
          nullable: true
        start_date:
          q: transaction__date__gte
          title: Start Date
          format: date
          type: string
          nullable: true
        end_date:
          q: transaction__date__lte
          title: End Date
          format: date
          type: string
          nullable: true
        transaction_currency:
          q: transaction__currency_iso_4217_code
          $ref: '#/components/schemas/SystemCurrencies'
          nullable: true
        record_status:
          q: transaction__record_status
          $ref: '#/components/schemas/RecordStatus'
          nullable: true
      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
          nullable: true
        customer_payment_number:
          title: Customer Payment Number
          type: integer
          nullable: true
        cash_sale_number:
          title: Cash Sale Number
          type: integer
          nullable: true
        vendor_refund_number:
          title: Vendor Refund Number
          type: integer
          nullable: true
        account_id:
          title: Account Id
          type: integer
          nullable: true
        description:
          title: Description
          type: string
          nullable: true
        customer_id:
          title: Customer Id
          type: integer
          nullable: true
        vendor_id:
          title: Vendor Id
          type: integer
          nullable: true
      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:
        attachments:
          default: []
          items:
            $ref: '#/components/schemas/PublicAttachmentSchemaOut'
          title: Attachments
          type: array
        created_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        updated_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        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:
          anyOf:
            - type: number
            - type: string
          title: Exchange Rate
        amount:
          anyOf:
            - type: number
            - type: string
          description: Total transaction amount
          title: Amount
        memo:
          title: Memo
          type: string
        items:
          items:
            $ref: '#/components/schemas/PublicCustomerDepositItemOut'
          title: Items
          type: array
        record_status:
          $ref: '#/components/schemas/RecordStatus'
      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
      title: PublicCustomerDepositSchemaOut
      type: object
    PublicCustomerDepositItemIn:
      description: >-
        Input schema for Customer Deposit line items in Public API.


        Items can reference:

        - A deposit source (cash_sale_number, customer_payment_number,
        customer_prepayment_number, vendor_refund_number)

        - OR account-based entry with account_number, customer_id, vendor_id,
        description
      properties:
        id:
          title: Id
          type: integer
          nullable: true
        position:
          title: Position
          type: integer
        cash_sale_number:
          title: Cash Sale Number
          type: integer
          nullable: true
        customer_payment_number:
          title: Customer Payment Number
          type: integer
          nullable: true
        customer_prepayment_number:
          title: Customer Prepayment Number
          type: integer
          nullable: true
        vendor_refund_number:
          title: Vendor Refund Number
          type: integer
          nullable: true
        account_number:
          title: Account Number
          type: integer
          nullable: true
        customer_id:
          title: Customer Id
          type: integer
          nullable: true
        vendor_id:
          title: Vendor Id
          type: integer
          nullable: true
        description:
          default: ''
          title: Description
          type: string
          nullable: true
        amount:
          anyOf:
            - type: number
            - 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
          nullable: true
        date:
          format: date
          title: Date
          type: string
        transaction_date:
          title: Transaction Date
          format: date
          type: string
          nullable: true
        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
            - 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
          nullable: true
        date:
          format: date
          title: Date
          type: string
        transaction_date:
          title: Transaction Date
          format: date
          type: string
          nullable: true
        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
            - 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
          nullable: true
        company_id:
          q: company_id__in
          title: Company Id
          items:
            type: integer
          type: array
          nullable: true
        number:
          q: number__in
          title: Number
          items:
            type: integer
          type: array
          nullable: true
        customer_id:
          q: customer_id__in
          title: Customer Id
          items:
            type: integer
          type: array
          nullable: true
        start_date:
          q: transaction__date__gte
          title: Start Date
          format: date
          type: string
          nullable: true
        end_date:
          q: transaction__date__lte
          title: End Date
          format: date
          type: string
          nullable: true
        transaction_currency:
          q: transaction__currency_iso_4217_code
          $ref: '#/components/schemas/SystemCurrencies'
          nullable: true
        record_status:
          q: transaction__record_status
          $ref: '#/components/schemas/RecordStatus'
          nullable: true
      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
          nullable: true
        customer_prepayment_number:
          title: Customer Prepayment Number
          type: integer
          nullable: true
        amount:
          anyOf:
            - type: number
            - type: string
          title: Amount
        position:
          title: Position
          type: integer
        bank_or_credit_card_amount:
          anyOf:
            - type: number
            - type: string
          title: Bank Or Credit Card Amount
      required:
        - amount
        - position
        - bank_or_credit_card_amount
      title: PublicCustomerRefundItemOut
      type: object
    PublicCustomerRefundSchemaOut:
      properties:
        classifications:
          default: []
          items:
            $ref: '#/components/schemas/PublicRecordClassificationsSchemaOut'
          title: Classifications
          type: array
        transaction_ids:
          items:
            type: integer
          title: Transaction Ids
          type: array
        created_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        updated_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        internal_id:
          title: Internal Id
          type: integer
        number:
          title: Number
          type: integer
        account_number:
          title: Account Number
          type: integer
          nullable: true
        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:
          anyOf:
            - type: number
            - type: string
          title: Exchange Rate
        bank_or_credit_card_amount:
          anyOf:
            - type: number
            - type: string
          title: Bank Or Credit Card Amount
        amount:
          anyOf:
            - type: number
            - type: string
          description: Total transaction amount
          title: Amount
        record_status:
          $ref: '#/components/schemas/core__models__base__RecordStatus'
        paper_check_status:
          $ref: >-
            #/components/schemas/core__models__paper_check__PaperCheck__RecordStatus
          nullable: true
      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
      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
          nullable: true
        customer_credit_number:
          title: Customer Credit Number
          type: integer
          nullable: true
        customer_prepayment_number:
          title: Customer Prepayment Number
          type: integer
          nullable: true
        amount:
          anyOf:
            - type: number
            - 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
          nullable: true
        date:
          format: date
          title: Date
          type: string
        transaction_date:
          title: Transaction Date
          format: date
          type: string
          nullable: true
        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
            - 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
              type: number
            - type: string
          default: '0.00'
          description: Bank or credit card amount
          title: Bank Or Credit Card Amount
        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
          nullable: true
        date:
          format: date
          title: Date
          type: string
        transaction_date:
          title: Transaction Date
          format: date
          type: string
          nullable: true
        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
            - 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
              type: number
            - type: string
          default: '0.00'
          description: Bank or credit card amount
          title: Bank Or Credit Card Amount
        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
          nullable: true
        company_id:
          q: company_id__in
          title: Company Id
          items:
            type: integer
          type: array
          nullable: true
        number:
          q: number__in
          title: Number
          items:
            type: integer
          type: array
          nullable: true
        customer_id:
          q: customer_id__in
          title: Customer Id
          items:
            type: integer
          type: array
          nullable: true
        start_date:
          q: transaction__date__gte
          title: Start Date
          format: date
          type: string
          nullable: true
        end_date:
          q: transaction__date__lte
          title: End Date
          format: date
          type: string
          nullable: true
        transaction_currency:
          q: transaction__currency_iso_4217_code__in
          title: Transaction Currency
          items:
            $ref: '#/components/schemas/SystemCurrencies'
          type: array
          nullable: true
        record_status:
          q: transaction__record_status__in
          title: Record Status
          items:
            $ref: '#/components/schemas/RecordStatus'
          type: array
          nullable: true
      title: PublicCustomerCreditListFilterSchema
      type: object
    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_id:
          title: Item Id
          type: integer
        quantity:
          anyOf:
            - type: number
            - type: string
          title: Quantity
        rate:
          anyOf:
            - type: number
            - type: string
          title: Rate
        position:
          title: Position
          type: integer
        memo:
          title: Memo
          type: string
      required:
        - item_id
        - quantity
        - rate
        - position
        - memo
      title: PublicCustomerCreditItemOut
      type: object
    PublicCustomerCreditSchemaOut:
      properties:
        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:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        updated_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        internal_id:
          title: Internal Id
          type: integer
        number:
          title: Number
          type: integer
        invoice_number:
          title: Invoice Number
          type: integer
          nullable: true
        cash_sale_number:
          title: Cash Sale Number
          type: integer
          nullable: true
        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
        customer_id:
          title: Customer Id
          type: integer
        customer_name:
          title: Customer Name
          type: string
        bill_to_address:
          title: Bill To Address
          type: string
        billing_address:
          $ref: '#/components/schemas/AddressSchemaIn'
          nullable: true
        ship_to_address:
          title: Ship To Address
          type: string
        shipping_address:
          $ref: '#/components/schemas/AddressSchemaIn'
          nullable: true
        currency_iso_4217_code:
          $ref: '#/components/schemas/SystemCurrencies'
          nullable: true
        exchange_rate:
          anyOf:
            - type: number
            - type: string
          title: Exchange Rate
        amount:
          anyOf:
            - type: number
            - type: string
          description: Total transaction amount
          title: Amount
        used_amount:
          anyOf:
            - type: number
            - type: string
          description: >-
            Amount that was already applied to Invoices through Customer Refunds
            or Customer Prepayment Applications
          title: Used Amount
        remaining_amount:
          anyOf:
            - type: number
            - type: string
          description: >-
            Amount that can be applied to Invoices through Customer Refunds or
            Customer Prepayment Applications
          title: Remaining Amount
        memo:
          title: Memo
          type: string
        items:
          items:
            $ref: '#/components/schemas/PublicCustomerCreditItemOut'
          title: Items
          type: array
        record_status:
          $ref: '#/components/schemas/RecordStatus'
      required:
        - transaction_ids
        - internal_id
        - number
        - invoice_number
        - cash_sale_number
        - date
        - transaction_date
        - company_id
        - company_name
        - company_currency
        - customer_id
        - customer_name
        - bill_to_address
        - ship_to_address
        - currency_iso_4217_code
        - exchange_rate
        - amount
        - used_amount
        - remaining_amount
        - memo
        - items
        - record_status
      title: PublicCustomerCreditSchemaOut
      type: object
    PublicCustomerCreditItemIn:
      description: Input schema for customer credit item lines.
      properties:
        id:
          title: Id
          type: integer
          nullable: true
        position:
          title: Position
          type: integer
        item_id:
          title: Item Id
          type: integer
        rate:
          anyOf:
            - type: number
            - type: string
          title: Rate
        quantity:
          anyOf:
            - type: number
            - type: string
          title: Quantity
        memo:
          default: ''
          title: Memo
          type: string
      required:
        - position
        - item_id
        - rate
        - quantity
      title: PublicCustomerCreditItemIn
      type: object
    PublicCustomerCreditSchemaCreateIn:
      description: Input schema for creating Customer Credit records.
      properties:
        custom_fields:
          title: Custom Fields
          items:
            additionalProperties: true
            type: object
          type: array
          nullable: true
        date:
          format: date
          title: Date
          type: string
        transaction_date:
          title: Transaction Date
          format: date
          type: string
          nullable: true
        invoice_number:
          title: Invoice Number
          type: integer
          nullable: true
        cash_sale_number:
          title: Cash Sale Number
          type: integer
          nullable: true
        customer_id:
          title: Customer Id
          type: integer
          nullable: true
        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
            - type: string
          title: Exchange Rate
        bill_to_address:
          default: ''
          title: Bill To Address
          type: string
          nullable: true
        billing_address:
          $ref: '#/components/schemas/AddressSchemaIn'
          nullable: true
        ship_to_address:
          default: ''
          title: Ship To Address
          type: string
          nullable: true
        shipping_address:
          $ref: '#/components/schemas/AddressSchemaIn'
          nullable: true
        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
      required:
        - date
        - company_id
        - currency_iso_4217_code
        - exchange_rate
      title: PublicCustomerCreditSchemaCreateIn
      type: object
    PublicCustomerCreditSchemaUpdateIn:
      description: Input schema for updating Customer Credit records.
      properties:
        custom_fields:
          title: Custom Fields
          items:
            additionalProperties: true
            type: object
          type: array
          nullable: true
        date:
          format: date
          title: Date
          type: string
        transaction_date:
          title: Transaction Date
          format: date
          type: string
          nullable: true
        invoice_number:
          title: Invoice Number
          type: integer
          nullable: true
        cash_sale_number:
          title: Cash Sale Number
          type: integer
          nullable: true
        customer_id:
          title: Customer Id
          type: integer
          nullable: true
        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
            - type: string
          title: Exchange Rate
        bill_to_address:
          default: ''
          title: Bill To Address
          type: string
          nullable: true
        billing_address:
          $ref: '#/components/schemas/AddressSchemaIn'
          nullable: true
        ship_to_address:
          default: ''
          title: Ship To Address
          type: string
          nullable: true
        shipping_address:
          $ref: '#/components/schemas/AddressSchemaIn'
          nullable: true
        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
      required:
        - date
        - company_id
        - currency_iso_4217_code
        - exchange_rate
      title: PublicCustomerCreditSchemaUpdateIn
      type: object
    PublicCashSaleListFilterSchema:
      properties:
        search:
          title: Search
          type: string
          nullable: true
        company_id:
          q: company_id__in
          title: Company Id
          items:
            type: integer
          type: array
          nullable: true
        number:
          q: number__in
          title: Number
          items:
            type: integer
          type: array
          nullable: true
        customer_id:
          q: customer_id__in
          title: Customer Id
          items:
            type: integer
          type: array
          nullable: true
        start_date:
          q: transaction__date__gte
          title: Start Date
          format: date
          type: string
          nullable: true
        end_date:
          q: transaction__date__lte
          title: End Date
          format: date
          type: string
          nullable: true
        transaction_currency:
          q: transaction__currency_iso_4217_code
          $ref: '#/components/schemas/SystemCurrencies'
          nullable: true
        record_status:
          q: transaction__record_status
          $ref: '#/components/schemas/RecordStatus'
          nullable: true
      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
        id:
          title: Id
          type: integer
        item_id:
          title: Item Id
          type: integer
        quantity:
          anyOf:
            - type: number
            - type: string
          title: Quantity
        rate:
          anyOf:
            - type: number
            - type: string
          title: Rate
        position:
          title: Position
          type: integer
        memo:
          title: Memo
          type: string
        bank_or_undeposited_account_amount:
          anyOf:
            - type: number
            - type: string
          title: Bank Or Undeposited Account Amount
      required:
        - id
        - item_id
        - quantity
        - rate
        - position
        - memo
        - bank_or_undeposited_account_amount
      title: PublicCashSaleItemOut
      type: object
    PublicCashSaleSchemaOut:
      properties:
        classifications:
          default: []
          items:
            $ref: '#/components/schemas/PublicRecordClassificationsSchemaOut'
          title: Classifications
          type: array
        transaction_ids:
          items:
            type: integer
          title: Transaction Ids
          type: array
        created_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        updated_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        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
          nullable: true
        amount:
          anyOf:
            - type: number
            - type: string
          description: Total transaction amount
          title: Amount
        memo:
          title: Memo
          type: string
        bill_to_address:
          title: Bill To Address
          type: string
        ship_to_address:
          title: Ship To Address
          type: string
        billing_address:
          $ref: '#/components/schemas/AddressSchemaIn'
          nullable: true
        shipping_address:
          $ref: '#/components/schemas/AddressSchemaIn'
          nullable: true
        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:
          anyOf:
            - type: number
            - type: string
          title: Exchange Rate
        undeposited_funds_currency:
          $ref: '#/components/schemas/SystemCurrencies'
          nullable: true
        bank_or_undeposited_account_amount:
          anyOf:
            - type: number
            - type: string
          title: Bank Or Undeposited Account Amount
        record_status:
          $ref: '#/components/schemas/RecordStatus'
      required:
        - transaction_ids
        - internal_id
        - number
        - items
        - company_id
        - company_name
        - company_currency
        - customer_id
        - customer_name
        - account_number
        - amount
        - memo
        - bill_to_address
        - ship_to_address
        - check_number
        - date
        - transaction_date
        - currency_iso_4217_code
        - exchange_rate
        - undeposited_funds_currency
        - bank_or_undeposited_account_amount
        - record_status
      title: PublicCashSaleSchemaOut
      type: object
    PublicCashSaleItemIn:
      properties:
        id:
          title: Id
          type: integer
          nullable: true
        item_id:
          title: Item Id
          type: integer
        quantity:
          anyOf:
            - type: number
            - type: string
          title: Quantity
        rate:
          anyOf:
            - type: number
            - 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
        tax:
          $ref: '#/components/schemas/ItemTaxData'
          nullable: true
      required:
        - item_id
        - quantity
        - rate
        - position
        - memo
      title: PublicCashSaleItemIn
      type: object
    PublicCashSaleSchemaCreateIn:
      properties:
        custom_fields:
          title: Custom Fields
          items:
            additionalProperties: true
            type: object
          type: array
          nullable: true
        date:
          format: date
          title: Date
          type: string
        transaction_date:
          title: Transaction Date
          format: date
          type: string
          nullable: true
        items:
          default: []
          items:
            $ref: '#/components/schemas/PublicCashSaleItemIn'
          title: Items
          type: array
        memo:
          default: ''
          title: Memo
          type: string
        bill_to_address:
          default: ''
          title: Bill To Address
          type: string
          nullable: true
        billing_address:
          $ref: '#/components/schemas/AddressSchemaIn'
          nullable: true
        ship_to_address:
          default: ''
          title: Ship To Address
          type: string
          nullable: true
        shipping_address:
          $ref: '#/components/schemas/AddressSchemaIn'
          nullable: true
        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
          nullable: true
        currency_iso_4217_code:
          $ref: '#/components/schemas/SystemCurrencies'
        exchange_rate:
          anyOf:
            - type: number
            - type: string
          title: Exchange Rate
        bank_or_undeposited_account_amount:
          anyOf:
            - type: number
            - type: string
          title: Bank Or Undeposited Account Amount
        undeposited_funds_currency:
          $ref: '#/components/schemas/SystemCurrencies'
          nullable: true
        attachments:
          default: []
          items:
            $ref: '#/components/schemas/AttachmentSchemaOut'
          title: Attachments
          type: array
        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:
        custom_fields:
          title: Custom Fields
          items:
            additionalProperties: true
            type: object
          type: array
          nullable: true
        date:
          format: date
          title: Date
          type: string
        transaction_date:
          title: Transaction Date
          format: date
          type: string
          nullable: true
        items:
          default: []
          items:
            $ref: '#/components/schemas/PublicCashSaleItemIn'
          title: Items
          type: array
        memo:
          default: ''
          title: Memo
          type: string
        bill_to_address:
          default: ''
          title: Bill To Address
          type: string
          nullable: true
        billing_address:
          $ref: '#/components/schemas/AddressSchemaIn'
          nullable: true
        ship_to_address:
          default: ''
          title: Ship To Address
          type: string
          nullable: true
        shipping_address:
          $ref: '#/components/schemas/AddressSchemaIn'
          nullable: true
        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
          nullable: true
        currency_iso_4217_code:
          $ref: '#/components/schemas/SystemCurrencies'
        exchange_rate:
          anyOf:
            - type: number
            - type: string
          title: Exchange Rate
        bank_or_undeposited_account_amount:
          anyOf:
            - type: number
            - type: string
          title: Bank Or Undeposited Account Amount
        undeposited_funds_currency:
          $ref: '#/components/schemas/SystemCurrencies'
          nullable: true
        attachments:
          default: []
          items:
            $ref: '#/components/schemas/AttachmentSchemaOut'
          title: Attachments
          type: array
        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
          nullable: true
        company_id:
          q: company_id__in
          title: Company Id
          items:
            type: integer
          type: array
          nullable: true
        number:
          q: number__in
          title: Number
          items:
            type: integer
          type: array
          nullable: true
        customer_id:
          title: Customer Id
          items:
            type: integer
          type: array
          nullable: true
        start_date:
          q: transaction__date__gte
          title: Start Date
          format: date
          type: string
          nullable: true
        end_date:
          q: transaction__date__lte
          title: End Date
          format: date
          type: string
          nullable: true
        transaction_currency:
          q: transaction__currency_iso_4217_code
          $ref: '#/components/schemas/SystemCurrencies'
          nullable: true
        record_status:
          q: transaction__record_status
          $ref: '#/components/schemas/RecordStatus'
          nullable: true
        invoice_number:
          q: customer_payment_lines__invoice__number__in
          title: Invoice Number
          items:
            type: integer
          type: array
          nullable: true
        customer_credit_number:
          q: customer_payment_lines__customer_credit__number__in
          title: Customer Credit Number
          items:
            type: integer
          type: array
          nullable: true
      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
          nullable: true
        customer_credit_number:
          title: Customer Credit Number
          type: integer
          nullable: true
        amount:
          anyOf:
            - type: number
            - type: string
          title: Amount
        position:
          title: Position
          type: integer
        bank_or_undeposited_account_amount:
          anyOf:
            - type: number
            - type: string
          title: Bank Or Undeposited Account Amount
      required:
        - amount
        - position
        - bank_or_undeposited_account_amount
      title: PublicCustomerPaymentItemOut
      type: object
    PublicCustomerPaymentSchemaOut:
      properties:
        classifications:
          default: []
          items:
            $ref: '#/components/schemas/PublicRecordClassificationsSchemaOut'
          title: Classifications
          type: array
        transaction_ids:
          items:
            type: integer
          title: Transaction Ids
          type: array
        created_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        updated_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        internal_id:
          title: Internal Id
          type: integer
        number:
          title: Number
          type: integer
        account_number:
          title: Account Number
          type: integer
          nullable: true
        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
          nullable: true
        customer_name:
          title: Customer Name
          type: string
          nullable: true
        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:
          anyOf:
            - type: number
            - type: string
          title: Exchange Rate
        undeposited_funds_currency:
          $ref: '#/components/schemas/SystemCurrencies'
          nullable: true
        bank_or_undeposited_account_amount:
          anyOf:
            - type: number
            - type: string
          title: Bank Or Undeposited Account Amount
        amount:
          anyOf:
            - type: number
            - type: string
          title: Amount
        unassigned_amount:
          anyOf:
            - type: number
            - type: string
          title: Unassigned Amount
        record_status:
          $ref: '#/components/schemas/core__models__base__RecordStatus'
        customer_deposits:
          default: []
          items:
            additionalProperties: true
            type: object
          title: Customer Deposits
          type: array
        paper_check_status:
          $ref: >-
            #/components/schemas/core__models__paper_check__PaperCheck__RecordStatus
          nullable: true
      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
      title: PublicCustomerPaymentSchemaOut
      type: object
    PublicCustomerPaymentItemIn:
      properties:
        id:
          title: Id
          type: integer
          nullable: true
        invoice_number:
          title: Invoice Number
          type: integer
          nullable: true
        customer_credit_number:
          title: Customer Credit Number
          type: integer
          nullable: true
        amount:
          anyOf:
            - type: number
            - 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
          nullable: true
        date:
          format: date
          title: Date
          type: string
        transaction_date:
          title: Transaction Date
          format: date
          type: string
          nullable: true
        company_id:
          title: Company Id
          type: integer
        customer_id:
          title: Customer Id
          type: integer
          nullable: true
        check_number:
          title: Check Number
          type: string
        account_number:
          title: Account Number
          type: integer
          nullable: true
        currency_iso_4217_code:
          $ref: '#/components/schemas/SystemCurrencies'
        exchange_rate:
          anyOf:
            - type: number
            - type: string
          title: Exchange Rate
        undeposited_funds_currency:
          $ref: '#/components/schemas/SystemCurrencies'
          nullable: true
        unassigned_amount:
          anyOf:
            - minimum: 0
              type: number
            - 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
        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
          nullable: true
        date:
          format: date
          title: Date
          type: string
        transaction_date:
          title: Transaction Date
          format: date
          type: string
          nullable: true
        company_id:
          title: Company Id
          type: integer
        customer_id:
          title: Customer Id
          type: integer
          nullable: true
        check_number:
          title: Check Number
          type: string
        account_number:
          title: Account Number
          type: integer
          nullable: true
        currency_iso_4217_code:
          $ref: '#/components/schemas/SystemCurrencies'
        exchange_rate:
          anyOf:
            - type: number
            - type: string
          title: Exchange Rate
        undeposited_funds_currency:
          $ref: '#/components/schemas/SystemCurrencies'
          nullable: true
        unassigned_amount:
          anyOf:
            - minimum: 0
              type: number
            - 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
        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
    PublicVendorPaymentListFilterSchema:
      properties:
        search:
          title: Search
          type: string
          nullable: true
        company_id:
          q: company_id__in
          title: Company Id
          items:
            type: integer
          type: array
          nullable: true
        number:
          q: number__in
          title: Number
          items:
            type: integer
          type: array
          nullable: true
        vendor_id:
          title: Vendor Id
          items:
            type: integer
          type: array
          nullable: true
        start_date:
          q: transaction__date__gte
          title: Start Date
          format: date
          type: string
          nullable: true
        end_date:
          q: transaction__date__lte
          title: End Date
          format: date
          type: string
          nullable: true
        transaction_currency:
          q: transaction__currency_iso_4217_code
          $ref: '#/components/schemas/SystemCurrencies'
          nullable: true
        record_status:
          q: transaction__record_status
          $ref: '#/components/schemas/RecordStatus'
          nullable: true
        bill_number:
          q: vendor_payment_lines__bill__number__in
          title: Bill Number
          items:
            type: integer
          type: array
          nullable: true
        vendor_credit_number:
          q: vendor_payment_lines__vendor_credit__number__in
          title: Vendor Credit Number
          items:
            type: integer
          type: array
          nullable: true
      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
          nullable: true
        vendor_credit_number:
          title: Vendor Credit Number
          type: integer
          nullable: true
        journal_entry_line_id:
          title: Journal Entry Line Id
          type: integer
          nullable: true
        intercompany_journal_entry_line_id:
          title: Intercompany Journal Entry Line Id
          type: integer
          nullable: true
        amount:
          anyOf:
            - type: number
            - type: string
          title: Amount
        position:
          title: Position
          type: integer
        bank_or_credit_card_amount:
          anyOf:
            - type: number
            - type: string
          title: Bank Or Credit Card Amount
      required:
        - amount
        - position
        - bank_or_credit_card_amount
      title: PublicVendorPaymentItemOut
      type: object
    PublicVendorPaymentSchemaOut:
      properties:
        classifications:
          default: []
          items:
            $ref: '#/components/schemas/PublicRecordClassificationsSchemaOut'
          title: Classifications
          type: array
        transaction_ids:
          items:
            type: integer
          title: Transaction Ids
          type: array
        created_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        updated_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        internal_id:
          title: Internal Id
          type: integer
        number:
          title: Number
          type: integer
        account_number:
          title: Account Number
          type: integer
          nullable: true
        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
          nullable: true
        vendor_name:
          title: Vendor Name
          type: string
          nullable: true
        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:
          anyOf:
            - type: number
            - type: string
          title: Exchange Rate
        bank_or_credit_card_amount:
          anyOf:
            - type: number
            - type: string
          title: Bank Or Credit Card Amount
        amount:
          anyOf:
            - type: number
            - type: string
          title: Amount
        record_status:
          $ref: '#/components/schemas/core__models__base__RecordStatus'
        paper_check_status:
          $ref: >-
            #/components/schemas/core__models__paper_check__PaperCheck__RecordStatus
          nullable: true
      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
      title: PublicVendorPaymentSchemaOut
      type: object
    PublicVendorPaymentItemIn:
      properties:
        id:
          title: Id
          type: integer
          nullable: true
        bill_number:
          title: Bill Number
          type: integer
          nullable: true
        vendor_credit_number:
          title: Vendor Credit Number
          type: integer
          nullable: true
        journal_entry_line_id:
          title: Journal Entry Line Id
          type: integer
          nullable: true
        intercompany_journal_entry_line_id:
          title: Intercompany Journal Entry Line Id
          type: integer
          nullable: true
        amount:
          anyOf:
            - type: number
            - 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
          nullable: true
        date:
          format: date
          title: Date
          type: string
        transaction_date:
          title: Transaction Date
          format: date
          type: string
          nullable: true
        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
            - 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
              type: number
            - type: string
          default: '0.00'
          description: Bank or credit card amount
          title: Bank Or Credit Card Amount
        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
          nullable: true
        date:
          format: date
          title: Date
          type: string
        transaction_date:
          title: Transaction Date
          format: date
          type: string
          nullable: true
        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
            - 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
              type: number
            - type: string
          default: '0.00'
          description: Bank or credit card amount
          title: Bank Or Credit Card Amount
        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
    PublicVendorCreditListFilterSchema:
      description: Filter schema for listing Vendor Credits.
      properties:
        search:
          title: Search
          type: string
          nullable: true
        company_id:
          q: company_id__in
          title: Company Id
          items:
            type: integer
          type: array
          nullable: true
        number:
          q: number__in
          title: Number
          items:
            type: integer
          type: array
          nullable: true
        vendor_id:
          q: vendor_id__in
          title: Vendor Id
          items:
            type: integer
          type: array
          nullable: true
        start_date:
          q: transaction__date__gte
          title: Start Date
          format: date
          type: string
          nullable: true
        end_date:
          q: transaction__date__lte
          title: End Date
          format: date
          type: string
          nullable: true
        transaction_currency:
          q: transaction__currency_iso_4217_code
          $ref: '#/components/schemas/SystemCurrencies'
          nullable: true
        record_status:
          q: transaction__record_status
          $ref: '#/components/schemas/RecordStatus'
          nullable: true
        bill_number:
          title: Bill Number
          items:
            type: integer
          type: array
          nullable: true
      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:
        id:
          title: Id
          type: integer
        account_number:
          title: Account Number
          type: integer
          nullable: true
        account_name:
          title: Account Name
          type: string
          nullable: true
        quantity:
          anyOf:
            - type: number
            - type: string
          title: Quantity
        rate:
          anyOf:
            - type: number
            - type: string
          title: Rate
        position:
          title: Position
          type: integer
        expense_description:
          title: Expense Description
          type: string
        amount:
          anyOf:
            - type: number
            - type: string
          title: Amount
      required:
        - id
        - quantity
        - rate
        - position
        - expense_description
        - amount
      title: PublicVendorCreditExpenseOut
      type: object
    PublicVendorCreditItemOut:
      description: Output schema for vendor credit item lines.
      properties:
        id:
          title: Id
          type: integer
        position:
          title: Position
          type: integer
        item_id:
          title: Item Id
          type: integer
          nullable: true
        item_name:
          title: Item Name
          type: string
          nullable: true
        rate:
          anyOf:
            - type: number
            - type: string
          title: Rate
        quantity:
          anyOf:
            - type: number
            - type: string
          title: Quantity
        amount:
          anyOf:
            - type: number
            - type: string
          title: Amount
        memo:
          title: Memo
          type: string
      required:
        - id
        - position
        - rate
        - quantity
        - amount
        - memo
      title: PublicVendorCreditItemOut
      type: object
    PublicVendorCreditSchemaOut:
      description: Output schema for Vendor Credit records.
      properties:
        classifications:
          default: []
          items:
            $ref: '#/components/schemas/PublicRecordClassificationsSchemaOut'
          title: Classifications
          type: array
        transaction_ids:
          items:
            type: integer
          title: Transaction Ids
          type: array
        created_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        updated_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        internal_id:
          title: Internal Id
          type: integer
        number:
          title: Number
          type: integer
        bill_number:
          title: Bill Number
          type: integer
          nullable: true
        direct_expense_number:
          title: Direct Expense Number
          type: integer
          nullable: true
        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
          nullable: true
        exchange_rate:
          anyOf:
            - type: number
            - type: string
          title: Exchange Rate
        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:
          anyOf:
            - type: number
            - type: string
          description: Total transaction amount
          title: Amount
        used_amount:
          anyOf:
            - type: number
            - type: string
          description: >-
            Amount that was already applied to Bills through Vendor Refunds or
            Vendor Prepayment Applications
          title: Used Amount
        remaining_amount:
          anyOf:
            - type: number
            - type: string
          description: >-
            Amount that can be applied to Bills through Vendor Refunds or Vendor
            Prepayment Applications
          title: Remaining Amount
        attachments:
          default: []
          items:
            $ref: '#/components/schemas/AttachmentSchemaOut'
          title: Attachments
          type: array
        record_status:
          $ref: '#/components/schemas/RecordStatus'
      required:
        - 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
      title: PublicVendorCreditSchemaOut
      type: object
    PublicVendorCreditExpenseIn:
      description: Input schema for vendor credit expense lines (for direct expenses).
      properties:
        id:
          title: Id
          type: integer
          nullable: true
        account_number:
          title: Account Number
          type: integer
        quantity:
          anyOf:
            - type: number
            - type: string
          title: Quantity
        rate:
          anyOf:
            - type: number
            - type: string
          title: Rate
        position:
          title: Position
          type: integer
        expense_description:
          default: ''
          title: Expense Description
          type: string
      required:
        - account_number
        - quantity
        - rate
        - position
      title: PublicVendorCreditExpenseIn
      type: object
    PublicVendorCreditItemIn:
      description: Input schema for vendor credit item lines (for products/services).
      properties:
        id:
          title: Id
          type: integer
          nullable: true
        position:
          title: Position
          type: integer
        item_id:
          title: Item Id
          type: integer
        rate:
          anyOf:
            - type: number
            - type: string
          title: Rate
        quantity:
          anyOf:
            - type: number
            - type: string
          title: Quantity
        memo:
          default: ''
          title: Memo
          type: string
      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
          nullable: true
        date:
          format: date
          title: Date
          type: string
        transaction_date:
          title: Transaction Date
          format: date
          type: string
          nullable: true
        bill_number:
          title: Bill Number
          type: integer
          nullable: true
        direct_expense_number:
          title: Direct Expense Number
          type: integer
          nullable: true
        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
            - 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
          nullable: true
        date:
          format: date
          title: Date
          type: string
        transaction_date:
          title: Transaction Date
          format: date
          type: string
          nullable: true
        bill_number:
          title: Bill Number
          type: integer
          nullable: true
        direct_expense_number:
          title: Direct Expense Number
          type: integer
          nullable: true
        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
            - 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
          nullable: true
        company_id:
          q: company_id__in
          title: Company Id
          items:
            type: integer
          type: array
          nullable: true
        number:
          q: number__in
          title: Number
          items:
            type: integer
          type: array
          nullable: true
        vendor_id:
          q: vendor_id__in
          title: Vendor Id
          items:
            type: integer
          type: array
          nullable: true
        start_date:
          q: transaction__date__gte
          title: Start Date
          format: date
          type: string
          nullable: true
        end_date:
          q: transaction__date__lte
          title: End Date
          format: date
          type: string
          nullable: true
        transaction_currency:
          q: transaction__currency_iso_4217_code
          $ref: '#/components/schemas/SystemCurrencies'
          nullable: true
        record_status:
          q: transaction__record_status
          $ref: '#/components/schemas/RecordStatus'
          nullable: true
      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
          nullable: true
        vendor_prepayment_number:
          title: Vendor Prepayment Number
          type: integer
          nullable: true
        amount:
          anyOf:
            - type: number
            - type: string
          title: Amount
        position:
          title: Position
          type: integer
        bank_or_credit_card_amount:
          anyOf:
            - type: number
            - type: string
          title: Bank Or Credit Card Amount
      required:
        - amount
        - position
        - bank_or_credit_card_amount
      title: PublicVendorRefundItemOut
      type: object
    PublicVendorRefundSchemaOut:
      properties:
        classifications:
          default: []
          items:
            $ref: '#/components/schemas/PublicRecordClassificationsSchemaOut'
          title: Classifications
          type: array
        transaction_ids:
          items:
            type: integer
          title: Transaction Ids
          type: array
        created_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        updated_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        internal_id:
          title: Internal Id
          type: integer
        number:
          title: Number
          type: integer
        account_number:
          title: Account Number
          type: integer
          nullable: true
        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:
          anyOf:
            - type: number
            - type: string
          title: Exchange Rate
        bank_or_credit_card_amount:
          anyOf:
            - type: number
            - type: string
          title: Bank Or Credit Card Amount
        amount:
          anyOf:
            - type: number
            - type: string
          description: Total transaction amount
          title: Amount
        record_status:
          $ref: '#/components/schemas/core__models__base__RecordStatus'
        paper_check_status:
          $ref: >-
            #/components/schemas/core__models__paper_check__PaperCheck__RecordStatus
          nullable: true
      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
      title: PublicVendorRefundSchemaOut
      type: object
    PublicVendorRefundItemIn:
      properties:
        id:
          title: Id
          type: integer
          nullable: true
        vendor_credit_number:
          title: Vendor Credit Number
          type: integer
          nullable: true
        vendor_prepayment_number:
          title: Vendor Prepayment Number
          type: integer
          nullable: true
        amount:
          anyOf:
            - type: number
            - 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
          nullable: true
        date:
          format: date
          title: Date
          type: string
        transaction_date:
          title: Transaction Date
          format: date
          type: string
          nullable: true
        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
            - 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
              type: number
            - type: string
          default: '0.00'
          description: Bank or credit card amount
          title: Bank Or Credit Card Amount
        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
          nullable: true
        date:
          format: date
          title: Date
          type: string
        transaction_date:
          title: Transaction Date
          format: date
          type: string
          nullable: true
        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
            - 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
              type: number
            - type: string
          default: '0.00'
          description: Bank or credit card amount
          title: Bank Or Credit Card Amount
        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
    PublicRecurringInvoiceListFilterSchema:
      properties:
        search:
          title: Search
          type: string
          nullable: true
        company_id:
          q: company_id__in
          title: Company Id
          items:
            type: integer
          type: array
          nullable: true
        number:
          q: number__in
          title: Number
          items:
            type: integer
          type: array
          nullable: true
        recurring_type:
          q: recurring_type__in
          title: Recurring Type
          items:
            $ref: '#/components/schemas/RecurringType'
          type: array
          nullable: true
      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:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        updated_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        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
          nullable: true
        last_generated:
          title: Last Generated
          format: date-time
          type: string
          nullable: true
        recurring_type:
          $ref: '#/components/schemas/RecurringType'
        records:
          items:
            $ref: '#/components/schemas/PublicRecurringRecordSchemaOut'
          title: Records
          type: array
      required:
        - internal_id
        - number
        - name
        - memo
        - date
        - company_id
        - company_name
        - company_currency
        - status
        - record_payload
        - rrule
        - next_occurrence
        - last_generated
        - recurring_type
        - records
      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:
          anyOf:
            - type: number
            - type: string
          title: Amount
        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
          nullable: true
        company_id:
          q: company_id__in
          title: Company Id
          items:
            type: integer
          type: array
          nullable: true
        number:
          q: number__in
          title: Number
          items:
            type: integer
          type: array
          nullable: true
        recurring_type:
          q: recurring_type__in
          title: Recurring Type
          items:
            $ref: '#/components/schemas/RecurringType'
          type: array
          nullable: true
      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:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        updated_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        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
          nullable: true
        last_generated:
          title: Last Generated
          format: date-time
          type: string
          nullable: true
        recurring_type:
          $ref: '#/components/schemas/RecurringType'
        records:
          items:
            $ref: '#/components/schemas/PublicRecurringRecordSchemaOut'
          title: Records
          type: array
      required:
        - internal_id
        - number
        - name
        - memo
        - date
        - company_id
        - company_name
        - company_currency
        - status
        - record_payload
        - rrule
        - next_occurrence
        - last_generated
        - recurring_type
        - records
      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
          nullable: true
        company_id:
          q: company_id__in
          title: Company Id
          items:
            type: integer
          type: array
          nullable: true
        number:
          q: number__in
          title: Number
          items:
            type: integer
          type: array
          nullable: true
        recurring_type:
          q: recurring_type__in
          title: Recurring Type
          items:
            $ref: '#/components/schemas/RecurringType'
          type: array
          nullable: true
      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:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        updated_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        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
          nullable: true
        last_generated:
          title: Last Generated
          format: date-time
          type: string
          nullable: true
        recurring_type:
          $ref: '#/components/schemas/RecurringType'
        records:
          items:
            $ref: '#/components/schemas/PublicRecurringRecordSchemaOut'
          title: Records
          type: array
      required:
        - internal_id
        - number
        - name
        - memo
        - date
        - company_id
        - company_name
        - company_currency
        - status
        - record_payload
        - rrule
        - next_occurrence
        - last_generated
        - recurring_type
        - records
      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
    CompanySchemaOut:
      properties:
        created_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        updated_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        id:
          title: Id
          type: integer
        name:
          title: Name
          type: string
        parent_company_id:
          title: Parent Company Id
          type: integer
          nullable: true
        currency_iso_4217_code:
          $ref: '#/components/schemas/SystemCurrencies'
          description: The ISO 4217 code of the currency of the company.
      required:
        - id
        - name
        - parent_company_id
        - currency_iso_4217_code
      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
    AccountTypes:
      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
      title: AccountTypes
      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_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        updated_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        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
          nullable: true
        account_type:
          $ref: '#/components/schemas/AccountTypes'
        currency_iso_4217_code:
          description: >-
            The ISO 4217 code of the currency of the account. Only available for
            bank type accounts.
          $ref: '#/components/schemas/SystemCurrencies'
          nullable: true
        category_1099:
          anyOf:
            - $ref: '#/components/schemas/Category1099'
            - const: ''
              type: string
          title: Category 1099
      required:
        - id
        - name
        - number
        - description
        - is_active
        - is_system
        - company_id
        - account_type
        - currency_iso_4217_code
        - category_1099
      title: PublicAccountSchemaOut
      type: object
    CustomerListFilterSchema:
      properties:
        search:
          title: Search
          type: string
          nullable: true
        id:
          q: id__in
          title: Id
          items:
            type: integer
          type: array
          nullable: true
        customer_type:
          q: customer_type__in
          title: Customer Type
          items:
            type: string
          type: array
          nullable: true
        name:
          q: name__icontains
          title: Name
          type: string
          nullable: true
        email:
          q: email__icontains
          title: Email
          type: string
          nullable: true
        website:
          q: website__icontains
          title: Website
          type: string
          nullable: true
        address:
          q: address__icontains
          title: Address
          type: string
          nullable: true
        country:
          q: country__icontains
          title: Country
          type: string
          nullable: true
        state:
          q: address_obj__state__icontains
          title: State
          type: string
          nullable: true
        phone:
          q: phone__icontains
          title: Phone
          type: string
          nullable: true
      title: CustomerListFilterSchema
      type: object
    DynamicInput:
      properties:
        ordering:
          default: updated_at,name
          title: Ordering
          type: string
          nullable: true
      title: DynamicInput
      type: object
    CustomerListSchemaOut:
      properties:
        created_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        updated_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        id:
          title: Id
          type: integer
        full_address:
          $ref: '#/components/schemas/AddressSchemaIn'
          nullable: true
        name:
          title: Name
          type: string
        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:
        - id
        - full_address
        - name
        - 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_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        updated_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        id:
          title: Id
          type: integer
        address:
          title: Address
          type: string
        country:
          title: Country
          type: string
        name:
          title: Name
          type: string
        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
      required:
        - id
        - address
        - country
        - name
        - website
        - email
        - customer_type
        - is_active
        - phone
        - record_status
        - is_taxable
        - default_tax_code
        - tax_registration_number
      title: CustomerSchemaOut
      type: object
    CustomerSchemaCreateIn:
      properties:
        name:
          title: Name
          type: string
        email:
          title: Email
          type: string
        address:
          title: Address
          type: string
        country:
          title: Country
          type: string
        phone:
          title: Phone
          type: string
        website:
          title: Website
          type: string
        full_address:
          $ref: '#/components/schemas/AddressSchemaIn'
          nullable: true
      required:
        - name
        - email
        - address
        - country
        - phone
        - website
      title: CustomerSchemaCreateIn
      type: object
    CustomerSchemaUpdateIn:
      properties:
        name:
          title: Name
          type: string
        email:
          title: Email
          type: string
        address:
          title: Address
          type: string
        country:
          title: Country
          type: string
        phone:
          title: Phone
          type: string
        website:
          title: Website
          type: string
        full_address:
          $ref: '#/components/schemas/AddressSchemaIn'
          nullable: true
      required:
        - name
        - email
        - address
        - country
        - phone
        - website
      title: CustomerSchemaUpdateIn
      type: object
    ItemTypes:
      enum:
        - good
        - service
        - discount
      title: ItemTypes
      type: string
    PublicItemListFilterSchema:
      properties:
        search:
          title: Search
          type: string
          nullable: true
        id:
          q: id__in
          title: Id
          items:
            type: integer
          type: array
          nullable: true
        name:
          q: name__icontains
          title: Name
          type: string
          nullable: true
        item_type:
          q: item_type__in
          title: Item Type
          items:
            $ref: '#/components/schemas/ItemTypes'
          type: array
          nullable: true
        no_income_account:
          q: income_account__isnull
          title: No Income Account
          type: boolean
          nullable: true
        no_expense_account:
          q: expense_account__isnull
          title: No Expense Account
          type: boolean
          nullable: true
        no_deferral_account:
          q: deferral_account__isnull
          title: No Deferral Account
          type: boolean
          nullable: true
        no_asset_account:
          q: asset_account__isnull
          title: No Asset Account
          type: boolean
          nullable: true
        expense_account_id:
          q: expense_account_id__in
          title: Expense Account Id
          items:
            type: integer
          type: array
          nullable: true
        income_account_id:
          q: income_account_id__in
          title: Income Account Id
          items:
            type: integer
          type: array
          nullable: true
        deferral_account_id:
          q: deferral_account_id__in
          title: Deferral Account Id
          items:
            type: integer
          type: array
          nullable: true
        asset_account_id:
          q: asset_account_id__in
          title: Asset Account Id
          items:
            type: integer
          type: array
          nullable: true
        is_active:
          q: is_active
          title: Is Active
          type: boolean
          nullable: true
        record_status:
          q: record_status__in
          title: Record Status
          items:
            $ref: '#/components/schemas/RecordStatus'
          type: array
          nullable: true
      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_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        updated_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        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'
        expense_account_id:
          title: Expense Account Id
          type: integer
          nullable: true
        income_account_id:
          title: Income Account Id
          type: integer
          nullable: true
        deferral_account_id:
          title: Deferral Account Id
          type: integer
          nullable: true
        asset_account_id:
          title: Asset Account Id
          type: integer
          nullable: true
      required:
        - id
        - name
        - sku
        - description
        - item_type
        - is_active
        - record_status
        - expense_account_id
        - income_account_id
        - deferral_account_id
        - asset_account_id
      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
        expense_account_id:
          title: Expense Account Id
          type: integer
          nullable: true
        income_account_id:
          title: Income Account Id
          type: integer
          nullable: true
        deferral_account_id:
          title: Deferral Account Id
          type: integer
          nullable: true
        asset_account_id:
          title: Asset Account Id
          type: integer
          nullable: true
      required:
        - name
        - is_active
        - sku
        - item_type
        - expense_account_id
        - income_account_id
        - deferral_account_id
        - asset_account_id
      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
        expense_account_id:
          title: Expense Account Id
          type: integer
          nullable: true
        income_account_id:
          title: Income Account Id
          type: integer
          nullable: true
        deferral_account_id:
          title: Deferral Account Id
          type: integer
          nullable: true
        asset_account_id:
          title: Asset Account Id
          type: integer
          nullable: true
      required:
        - name
        - is_active
        - sku
        - item_type
        - expense_account_id
        - income_account_id
        - deferral_account_id
        - asset_account_id
      title: PublicItemSchemaUpdateIn
      type: object
    PublicVendorListFilterSchema:
      properties:
        search:
          title: Search
          type: string
          nullable: true
        id:
          q: id__in
          title: Id
          items:
            type: integer
          type: array
          nullable: true
        vendor_type:
          q: vendor_type__in
          title: Vendor Type
          items:
            type: string
          type: array
          nullable: true
        name:
          q: name__icontains
          title: Name
          type: string
          nullable: true
        email:
          q: email__icontains
          title: Email
          type: string
          nullable: true
        website:
          q: website__icontains
          title: Website
          type: string
          nullable: true
        single_address:
          q: single_address__icontains
          title: Single Address
          type: string
          nullable: true
        country:
          q: country__icontains
          title: Country
          type: string
          nullable: true
        state:
          q: address__state__icontains
          title: State
          type: string
          nullable: true
        phone:
          q: phone__icontains
          title: Phone
          type: string
          nullable: true
        is_active:
          title: Is Active
          type: boolean
          nullable: true
        is_1099_eligible:
          title: Is 1099 Eligible
          type: boolean
          nullable: true
        record_status:
          q: record_status
          $ref: '#/components/schemas/RecordStatus'
          nullable: true
        company_id:
          q: company__id__in
          title: Company Id
          items:
            type: integer
          type: array
          nullable: true
        exclude_company_id:
          title: Exclude Company Id
          items:
            type: integer
          type: array
          nullable: true
        names:
          q: name__in
          title: Names
          items:
            type: string
          type: array
          nullable: true
      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_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        updated_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        id:
          title: Id
          type: integer
        address:
          $ref: '#/components/schemas/PublicVendorListAddressSchemaOut'
          nullable: true
        company_id:
          title: Company Id
          type: integer
          nullable: true
        company_name:
          title: Company Name
          type: string
          nullable: true
        single_address:
          title: Single Address
          maxLength: 2048
          type: string
          nullable: true
        country:
          title: Country
          maxLength: 2
          type: string
          nullable: true
        name:
          maxLength: 128
          title: Name
          type: string
        website:
          title: Website
          maxLength: 128
          type: string
          nullable: true
        email:
          title: Email
          maxLength: 128
          type: string
          nullable: true
        vendor_type:
          default: company
          maxLength: 50
          title: Vendor Type
          type: string
        is_active:
          default: true
          title: Is Active
          type: boolean
        phone:
          title: Phone
          maxLength: 25
          type: string
          nullable: true
        is_1099_eligible:
          default: false
          title: Is 1099 Eligible
          type: boolean
        tin:
          title: Tin
          type: string
          nullable: true
        tin_type:
          default: ''
          title: Tin Type
          type: string
          nullable: true
        record_status:
          default: posted
          title: Record Status
          type: string
      required:
        - id
        - address
        - name
      title: PublicVendorListSchemaOut
      type: object
    PublicVendorSchemaOut:
      properties:
        term_id:
          title: Term Id
          type: integer
          nullable: true
        term_name:
          title: Term Name
          type: string
        created_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        updated_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        id:
          title: Id
          type: integer
        address:
          $ref: '#/components/schemas/AddressSchemaIn'
          nullable: true
        company_id:
          title: Company Id
          type: integer
          nullable: true
        company_name:
          title: Company Name
          type: string
          nullable: true
        attachments:
          default: []
          items:
            $ref: '#/components/schemas/AttachmentSchemaOut'
          title: Attachments
          type: array
        single_address:
          title: Single Address
          maxLength: 2048
          type: string
          nullable: true
        country:
          title: Country
          maxLength: 2
          type: string
          nullable: true
        name:
          maxLength: 128
          title: Name
          type: string
        website:
          title: Website
          maxLength: 128
          type: string
          nullable: true
        email:
          title: Email
          maxLength: 128
          type: string
          nullable: true
        vendor_type:
          default: company
          maxLength: 50
          title: Vendor Type
          type: string
        is_active:
          default: true
          title: Is Active
          type: boolean
        phone:
          title: Phone
          maxLength: 25
          type: string
          nullable: true
        is_1099_eligible:
          default: false
          title: Is 1099 Eligible
          type: boolean
        tin:
          title: Tin
          type: string
          nullable: true
        tin_type:
          default: ''
          title: Tin Type
          type: string
          nullable: true
        record_status:
          default: posted
          title: Record Status
          type: string
      required:
        - term_id
        - term_name
        - id
        - address
        - name
      title: PublicVendorSchemaOut
      type: object
    PublicVendorSchemaCreateIn:
      properties:
        is_active:
          title: Is Active
          type: boolean
        vendor_type:
          $ref: '#/components/schemas/VendorTypes'
        name:
          maxLength: 128
          minLength: 2
          title: Name
          type: string
        email:
          maxLength: 128
          title: Email
          type: string
        phone:
          maxLength: 16
          title: Phone
          type: string
        website:
          maxLength: 128
          title: Website
          type: string
        single_address:
          default: ''
          title: Single Address
          maxLength: 2048
          type: string
          nullable: true
        country:
          anyOf:
            - const: ''
              type: string
            - $ref: '#/components/schemas/SystemCountries'
          default: ''
          title: Country
        is_1099_eligible:
          default: false
          title: Is 1099 Eligible
          type: boolean
        address:
          $ref: '#/components/schemas/AddressSchemaIn'
          nullable: true
        tin:
          default: ''
          title: Tin
          maxLength: 11
          type: string
          nullable: true
        tin_type:
          default: ''
          $ref: '#/components/schemas/TINType'
          maxLength: 3
          nullable: true
        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
          nullable: true
      required:
        - is_active
        - vendor_type
        - name
        - email
        - phone
        - website
      title: PublicVendorSchemaCreateIn
      type: object
    TINType:
      enum:
        - ein
        - ssn
      title: TINType
      type: string
    VendorTypes:
      enum:
        - individual
        - company
        - intercompany
        - tax_agency
      title: VendorTypes
      type: string
    PublicVendorSchemaUpdateIn:
      properties:
        is_active:
          title: Is Active
          type: boolean
        vendor_type:
          $ref: '#/components/schemas/VendorTypes'
        name:
          maxLength: 128
          minLength: 2
          title: Name
          type: string
        email:
          maxLength: 128
          title: Email
          type: string
        phone:
          maxLength: 16
          title: Phone
          type: string
        website:
          maxLength: 128
          title: Website
          type: string
        single_address:
          default: ''
          title: Single Address
          maxLength: 2048
          type: string
          nullable: true
        country:
          anyOf:
            - const: ''
              type: string
            - $ref: '#/components/schemas/SystemCountries'
          default: ''
          title: Country
        is_1099_eligible:
          default: false
          title: Is 1099 Eligible
          type: boolean
        address:
          $ref: '#/components/schemas/AddressSchemaIn'
          nullable: true
        tin:
          default: ''
          title: Tin
          maxLength: 11
          type: string
          nullable: true
        tin_type:
          default: ''
          $ref: '#/components/schemas/TINType'
          maxLength: 3
          nullable: true
        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
          nullable: true
      required:
        - is_active
        - vendor_type
        - name
        - email
        - phone
        - website
      title: PublicVendorSchemaUpdateIn
      type: object
    PublicClassificationListFilterSchema:
      properties:
        search:
          title: Search
          type: string
          nullable: true
        id:
          q: id__in
          title: Id
          items:
            type: integer
          type: array
          nullable: true
        name:
          q: name__icontains
          title: Name
          type: string
          nullable: true
        is_active:
          title: Is Active
          type: boolean
          nullable: true
        is_required:
          title: Is Required
          type: boolean
          nullable: true
      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
      title: PublicClassifiableRecords
      type: string
    PublicClassificationSchemaOut:
      properties:
        created_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        updated_by:
          $ref: '#/components/schemas/AuditActorSchemaOut'
          nullable: true
        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
          nullable: true
        parent_name:
          title: Parent Name
          type: string
          nullable: true
        name:
          maxLength: 128
          title: Name
          type: string
        is_active:
          default: true
          title: Is Active
          type: boolean
      required:
        - 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
          nullable: true
        parent_name:
          title: Parent Name
          type: string
          nullable: true
      required:
        - id
        - name
        - is_active
        - parent_id
        - parent_name
      title: PublicSelectionItemOut
      type: object
    PublicClassificationSchemaCreateIn:
      properties:
        id:
          title: Id
          type: integer
          nullable: true
        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
          nullable: true
      required:
        - name
        - is_active
        - selections
        - required_for_records
        - parent_id
      title: PublicClassificationSchemaCreateIn
      type: object
    PublicSelectionItemIn:
      properties:
        id:
          title: Id
          type: integer
          nullable: true
        name:
          maxLength: 128
          minLength: 2
          title: Name
          type: string
        is_active:
          title: Is Active
          type: boolean
        parent_id:
          title: Parent Id
          type: integer
          nullable: true
      required:
        - name
        - is_active
        - parent_id
      title: PublicSelectionItemIn
      type: object
    PublicClassificationSchemaUpdateIn:
      properties:
        id:
          title: Id
          type: integer
          nullable: true
        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
          nullable: true
      required:
        - name
        - is_active
        - selections
        - required_for_records
        - parent_id
      title: PublicClassificationSchemaUpdateIn
      type: object
    PublicClassificationLineListFilterSchema:
      properties:
        search:
          title: Search
          type: string
          nullable: true
        id:
          q: id__in
          title: Id
          items:
            type: integer
          type: array
          nullable: true
        name:
          q: name__icontains
          title: Name
          type: string
          nullable: true
        is_active:
          title: Is Active
          type: boolean
          nullable: true
        classification_id:
          q: classification_id__in
          title: Classification Id
          items:
            type: integer
          type: array
          nullable: true
      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
    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.


        All filters are optional and can be combined. Multiple values for the
        same

        filter are treated as OR conditions.
      properties:
        id:
          description: Filter by paper check IDs
          q: id__in
          title: Id
          items:
            type: integer
          type: array
          nullable: true
        record_status:
          description: 'Filter by status: ''not_printed'', ''printed'', or ''archived'''
          q: record_status__in
          title: Record Status
          items:
            type: string
          type: array
          nullable: true
        company_id:
          description: Filter by company IDs
          q: transaction__company_id__in
          title: Company Id
          items:
            type: integer
          type: array
          nullable: true
        transaction_type:
          description: >-
            Filter by transaction type: 'direct_expense', 'vendor_payment',
            'vendor_prepayment', 'customer_refund'
          q: transaction__transaction_type__in
          title: Transaction Type
          items:
            $ref: '#/components/schemas/PaperCheckSourceRecordType'
          type: array
          nullable: true
        vendor_id:
          description: Filter by vendor IDs (for vendor-related checks)
          title: Vendor Id
          items:
            type: integer
          type: array
          nullable: true
        customer_id:
          description: Filter by customer IDs (for customer refund checks)
          title: Customer Id
          items:
            type: integer
          type: array
          nullable: true
        account_id:
          description: Filter by bank account IDs
          title: Account Id
          items:
            type: integer
          type: array
          nullable: true
        start_date:
          description: Filter checks created on or after this date (YYYY-MM-DD)
          q: created_at__date__gte
          title: Start Date
          format: date
          type: string
          nullable: true
        end_date:
          description: Filter checks created on or before this date (YYYY-MM-DD)
          q: created_at__date__lte
          title: End Date
          format: date
          type: string
          nullable: true
      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.


        A paper check represents a physical check that can be printed for
        payments.

        Paper checks are associated with transactions such as vendor payments,

        direct 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:
          anyOf:
            - type: number
            - type: string
          description: Amount of the check
          example: '1500.00'
          title: Amount
        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
          nullable: true
        customer_id:
          description: ID of the customer if this is a customer refund check
          example: 567
          title: Customer Id
          type: integer
          nullable: true
        customer_name:
          description: Name of the customer if this is a customer refund check
          example: John Smith
          title: Customer Name
          type: string
          nullable: true
        vendor_id:
          description: ID of the vendor if this is a vendor payment check
          example: 890
          title: Vendor Id
          type: integer
          nullable: true
        vendor_name:
          description: Name of the vendor if this is a vendor payment check
          example: ABC Suppliers Inc.
          title: Vendor Name
          type: string
          nullable: true
        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.


        Returned when immediately printing a check. Contains both the paper
        check

        details 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.

        Use this endpoint when you need to print a single check right away.
        The 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
          nullable: true
      required:
        - transaction_id
      title: PublicPrintNowPayload
      type: object
    PublicPrintLaterPayload:
      description: |-
        Request body for queuing checks for later batch printing.

        Use this endpoint when you want to queue multiple checks to be printed
        together 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.


        Contains 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.

        Use this endpoint to print multiple queued checks at once. Check numbers
        will 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:
          default: 1
          description: >-
            Starting check number for this batch. Subsequent checks will be
            numbered sequentially.
          example: 10001
          minimum: 1
          title: First Check Number
          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
          nullable: true
      required:
        - paper_check_ids
      title: PublicPrintBatchPayload
      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: 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: 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: 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: 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 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.
x-tagGroups:
  - name: Monitoring
    tags:
      - Health
  - name: Accounting Setup
    tags:
      - Accounts
      - Items
      - Classifications
      - Classifications Lines
  - name: Organization
    tags:
      - Companies
  - name: Transactions
    tags:
      - Journal Entries
      - Recurring Journal Entries
  - name: Money In
    tags:
      - Invoices
      - 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
      - Vendors
      - Vendor Payments
      - Vendor Credits
      - Vendor Refunds
      - Paper Checks
