FlowAccount Employee API

The Employee API from FlowAccount — 3 operation(s) for employee.

OpenAPI Specification

flowaccount-employee-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: FlowAccount Open BatchImport Employee API
  version: 1.0.0
servers:
- url: https://openapi.flowaccount.com/sandbox
  description: The sandbox server
- url: https://openapi.flowaccount.com/v3-alpha
  description: The prod server
security:
- bearer: []
tags:
- name: Employee
paths:
  /Employee/{id}:
    get:
      tags:
      - Employee
      summary: Get employee by Id
      operationId: Employee_GetById
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
        x-position: 1
      responses:
        '200':
          description: ''
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
      security:
      - bearer: []
    delete:
      tags:
      - Employee
      summary: Delete/Remove Employee by Id
      operationId: Employee_Remove
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
        x-position: 1
      responses:
        '200':
          description: ''
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
      security:
      - bearer: []
  /Employee:
    get:
      tags:
      - Employee
      summary: Get employee list with payrollQuery model
      operationId: Employee_GetList
      requestBody:
        x-name: queryStringModel
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PayrollQuery'
        required: true
        x-position: 1
      responses:
        '200':
          description: ''
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
      security:
      - bearer: []
    post:
      tags:
      - Employee
      summary: Create Employee
      operationId: Employee_Create
      requestBody:
        x-name: employee
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmployeeModel'
        required: true
        x-position: 1
      responses:
        '200':
          description: ''
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
      security:
      - bearer: []
    put:
      tags:
      - Employee
      summary: Update Employee
      operationId: Employee_Edit
      requestBody:
        x-name: employee
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmployeeModel'
        required: true
        x-position: 1
      responses:
        '200':
          description: ''
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
      security:
      - bearer: []
  /Employee/count:
    get:
      tags:
      - Employee
      summary: Count employees
      operationId: Employee_Count
      responses:
        '200':
          description: ''
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
      security:
      - bearer: []
components:
  schemas:
    ReportTypes:
      type: integer
      description: '10 = Sales

        11 = SalesTeamReport

        12 = SalesTax

        13 = SimpleSales

        14 = AccountReceivable

        15 = AccountReceivableAging

        20 = Purchase

        21 = PurchaseTax

        22 = AccountPayable

        23 = AccountPayableAging

        24 = PurchaseByProduct

        25 = PurchaseByProductAdvance

        30 = Clients

        40 = Vendor

        50 = PaymentCollection

        60 = SalesByProduct

        61 = SalesByProductAdvance

        62 = SalesByPerson

        63 = SalesByPersonAdvance

        64 = SalesByCustomer

        65 = SalesByCustomerAdvance

        70 = Quotation

        80 = BillingNote

        90 = ReceiveInventory

        91 = StocksReport

        92 = GroupStockReport

        100 = Expense

        110 = WithHoldingTax

        120 = ProfitAndLossOneMonth

        121 = ProfitAndLossMultipleMonth

        130 = Receipt

        140 = CreditNote

        150 = DebitNote

        160 = TaxInvoice

        170 = Payroll

        171 = PayrollSummary

        172 = PayrollGroup

        173 = PayrollSscSummary

        180 = ContactGrid

        190 = ProductGrid

        200 = ExportContact

        210 = ExportProduct

        220 = Receivables

        240 = Payables

        260 = GeneralLedger

        270 = JournalEntry

        280 = Payment

        290 = InputTax

        291 = OutputTax

        292 = FixedAsset

        293 = Depreciation

        300 = PaymentSlip'
      x-enumNames:
      - Sales
      - SalesTeamReport
      - SalesTax
      - SimpleSales
      - AccountReceivable
      - AccountReceivableAging
      - Purchase
      - PurchaseTax
      - AccountPayable
      - AccountPayableAging
      - PurchaseByProduct
      - PurchaseByProductAdvance
      - Clients
      - Vendor
      - PaymentCollection
      - SalesByProduct
      - SalesByProductAdvance
      - SalesByPerson
      - SalesByPersonAdvance
      - SalesByCustomer
      - SalesByCustomerAdvance
      - Quotation
      - BillingNote
      - ReceiveInventory
      - StocksReport
      - GroupStockReport
      - Expense
      - WithHoldingTax
      - ProfitAndLossOneMonth
      - ProfitAndLossMultipleMonth
      - Receipt
      - CreditNote
      - DebitNote
      - TaxInvoice
      - Payroll
      - PayrollSummary
      - PayrollGroup
      - PayrollSscSummary
      - ContactGrid
      - ProductGrid
      - ExportContact
      - ExportProduct
      - Receivables
      - Payables
      - GeneralLedger
      - JournalEntry
      - Payment
      - InputTax
      - OutputTax
      - FixedAsset
      - Depreciation
      - PaymentSlip
      enum:
      - 10
      - 11
      - 12
      - 13
      - 14
      - 15
      - 20
      - 21
      - 22
      - 23
      - 24
      - 25
      - 30
      - 40
      - 50
      - 60
      - 61
      - 62
      - 63
      - 64
      - 65
      - 70
      - 80
      - 90
      - 91
      - 92
      - 100
      - 110
      - 120
      - 121
      - 130
      - 140
      - 150
      - 160
      - 170
      - 171
      - 172
      - 173
      - 180
      - 190
      - 200
      - 210
      - 220
      - 240
      - 260
      - 270
      - 280
      - 290
      - 291
      - 292
      - 293
      - 300
    PayrollPreferences:
      type: object
      additionalProperties: false
      properties:
        companyId:
          type: integer
          format: int64
        isSocialSecurityRegistered:
          type: boolean
        employerAccountNumber:
          type: string
          nullable: true
        employerAccountBranch:
          type: string
          nullable: true
        kCorporateClientCode:
          type: string
          nullable: true
        kCorporateAccountNumber:
          type: string
          nullable: true
        payrollBankAccountId:
          type: integer
          format: int64
          nullable: true
        kConnect_ProductCode:
          $ref: '#/components/schemas/KConnectProductCode'
        overtimePND:
          type: integer
          format: int32
          nullable: true
        commissionPND:
          type: integer
          format: int32
          nullable: true
        bonusPND:
          type: integer
          format: int32
          nullable: true
        allowancePND:
          type: integer
          format: int32
          nullable: true
        colaPND:
          type: integer
          format: int32
          nullable: true
        medicalExpensePND:
          type: integer
          format: int32
          nullable: true
        accommodationPND:
          type: integer
          format: int32
          nullable: true
        directorRemunerationPND:
          type: integer
          format: int32
          nullable: true
        otherAdditionPND:
          type: integer
          format: int32
          nullable: true
        accessKConnect:
          type: boolean
    ExpenseList:
      allOf:
      - $ref: '#/components/schemas/Document2'
      - type: object
        additionalProperties: false
        required:
        - collected
        - outstanding
        - paymentWithHeld
        properties:
          id:
            type: integer
            format: int64
          vendorCompanyId:
            type: integer
            format: int64
            nullable: true
          companyId:
            type: integer
            format: int64
          status:
            $ref: '#/components/schemas/ExpenseStatus'
          receiptImage:
            type: string
            nullable: true
          value:
            type: number
            format: decimal
          description:
            type: string
            nullable: true
          expenseCategoryId:
            type: integer
            format: int64
          documentSerial:
            type: string
            nullable: true
          documentId:
            type: string
            nullable: true
          publishedOn:
            type: string
            format: date-time
          expenseDate:
            type: string
            format: date-time
          documentDate:
            type: string
            format: date-time
          createdOn:
            type: string
            format: date-time
          createdBy:
            type: integer
            format: int64
          modifiedOn:
            type: string
            format: date-time
          published:
            type: boolean
          approved:
            type: boolean
          approvedBy:
            type: integer
            format: int64
          remarks:
            type: string
            nullable: true
          isTax:
            type: boolean
          isDelete:
            type: boolean
          taxRefundable:
            type: boolean
          galleryId:
            type: integer
            format: int64
            nullable: true
          reconciled:
            type: boolean
          nullableContactId:
            type: integer
            format: int64
            nullable: true
          bankAccountNumber:
            type: string
            maxLength: 50
            minLength: 0
            nullable: true
          isVatInclusive:
            type: boolean
          methodPayment:
            nullable: true
            oneOf:
            - $ref: '#/components/schemas/PaymentMethod'
          vendorName:
            type: string
            nullable: true
          addressLocal:
            type: string
            nullable: true
          addressLocalLine2:
            type: string
            nullable: true
          addressLocalLine3:
            type: string
            nullable: true
          companyTaxId:
            type: string
            nullable: true
          branch:
            type: string
            nullable: true
          vatRate:
            type: integer
            format: int32
          tax:
            type: number
            format: decimal
            nullable: true
          valueIncludeVat:
            type: number
            format: decimal
          vatAmount:
            type: number
            format: decimal
            nullable: true
          documentSerialNoPrefix:
            type: integer
            format: int64
            nullable: true
          withholding:
            type: integer
            format: int32
            nullable: true
          charge:
            type: number
            format: decimal
            nullable: true
          datePayment:
            type: string
            format: date-time
            nullable: true
          checkNumber:
            type: string
            maxLength: 50
            minLength: 0
            nullable: true
          checkBankId:
            type: string
            maxLength: 2147483647
            minLength: 0
            nullable: true
          checkDatePaid:
            type: string
            format: date-time
            nullable: true
          transferBankId:
            type: string
            maxLength: 2147483647
            minLength: 0
            nullable: true
          collected:
            type: number
            format: decimal
            default: 0
          outstanding:
            type: number
            format: decimal
            default: 0
          paymentWithHeld:
            type: number
            format: decimal
            default: 0
          resetTransactionId:
            type: integer
            format: int64
            nullable: true
          bankAccountId:
            type: integer
            format: int64
            nullable: true
          ruleCompileStatus:
            $ref: '#/components/schemas/RuleCompileStatus'
          remainingCollected:
            type: number
            format: decimal
            nullable: true
          remainingCollectedType:
            nullable: true
            oneOf:
            - $ref: '#/components/schemas/RemainingCollectedType'
          company:
            nullable: true
            oneOf:
            - $ref: '#/components/schemas/Company'
          vendorCompany:
            nullable: true
            oneOf:
            - $ref: '#/components/schemas/Company'
          expenseCategory:
            nullable: true
            oneOf:
            - $ref: '#/components/schemas/ExpenseCategory'
          gallery:
            nullable: true
            oneOf:
            - $ref: '#/components/schemas/Gallery'
          contact:
            nullable: true
            oneOf:
            - $ref: '#/components/schemas/Contact'
          runningNumberType:
            type: integer
            format: int32
          runningModifiedOn:
            type: string
            format: date-time
            nullable: true
          isForeignCurrency:
            type: boolean
          foreignCurrency:
            nullable: true
            oneOf:
            - $ref: '#/components/schemas/Currency'
          exchangeRate:
            type: number
            format: decimal
            nullable: true
          foreignValue:
            type: number
            format: decimal
            nullable: true
          exemptAmount:
            type: number
            format: decimal
          vatableAmount:
            type: number
            format: decimal
          totalAfterDiscount:
            type: number
            format: decimal
          dueDate:
            type: string
            format: date-time
            nullable: true
          subTotal:
            type: number
            format: decimal
          payrollDetail:
            type: array
            nullable: true
            items:
              $ref: '#/components/schemas/PayrollDetail'
          batchTaxFilingId:
            type: integer
            format: int64
            nullable: true
          batchTaxFiling:
            nullable: true
            oneOf:
            - $ref: '#/components/schemas/BatchTaxFiling'
          supplierInvoiceStatus:
            nullable: true
            oneOf:
            - $ref: '#/components/schemas/SupplierInvoiceStatus'
          saleAndPurchaseChannel:
            type: string
            nullable: true
          pettyCashName:
            type: string
            nullable: true
          pettyCashId:
            type: integer
            format: int64
            nullable: true
          chequeId:
            type: integer
            format: int64
            nullable: true
          creditCardId:
            type: integer
            format: int64
            nullable: true
          otherChannelId:
            type: integer
            format: int64
            nullable: true
          chequeCashingDate:
            type: string
            format: date-time
            nullable: true
          autoCreateWithholdingTax:
            type: boolean
            nullable: true
          withholdingTaxIncomeType:
            nullable: true
            oneOf:
            - $ref: '#/components/schemas/IncomeType'
          withholdingTaxIncomeDescription:
            type: string
            nullable: true
          withholdingTaxEntity:
            nullable: true
            oneOf:
            - $ref: '#/components/schemas/Entity'
          exchangeRatio:
            type: number
            format: decimal
            nullable: true
          isManualRate:
            type: boolean
            nullable: true
          exchangeRateDate:
            type: string
            format: date-time
            nullable: true
          companyCurrencyId:
            type: integer
            format: int64
            nullable: true
          foreignInlineVatValue:
            type: number
            format: decimal
            nullable: true
          foreignInlineDiscountValue:
            type: number
            format: decimal
            nullable: true
          foreignVatAmount:
            type: number
            format: decimal
            nullable: true
          foreignDeductionAmount:
            type: number
            format: decimal
            nullable: true
          projectId:
            type: integer
            format: int64
            nullable: true
          isManualVat:
            type: boolean
            nullable: true
          externalDocumentId:
            type: string
            maxLength: 36
            nullable: true
          batchId:
            type: string
            maxLength: 36
            nullable: true
          documentReferences:
            type: array
            nullable: true
            items:
              $ref: '#/components/schemas/IDocumentReference'
          referencedToMe:
            type: array
            nullable: true
            items:
              $ref: '#/components/schemas/IDocumentReference'
          referencedByMe:
            type: array
            nullable: true
            items:
              $ref: '#/components/schemas/IDocumentReference'
          statusInt:
            type: integer
            format: int32
          partialPaymentMethod:
            nullable: true
            oneOf:
            - $ref: '#/components/schemas/PartialPaymentMethod'
          refDocumentStatus:
            type: integer
            format: int32
          refDocumentStatusString:
            type: string
            nullable: true
          isReCalculate:
            type: boolean
          inlineVatValue:
            type: number
            format: decimal
          inlineDiscountValue:
            type: number
            format: decimal
          isMigrate:
            type: boolean
          vatValue:
            type: number
            format: decimal
            nullable: true
          deductionAmount:
            type: number
            format: decimal
            nullable: true
          paymentDeductionType:
            nullable: true
            oneOf:
            - $ref: '#/components/schemas/DeductionType'
          documentDeductionType:
            nullable: true
            oneOf:
            - $ref: '#/components/schemas/DeductionType'
          isInlineDiscount:
            type: boolean
          isInlineVat:
            type: boolean
          contactId:
            type: integer
            format: int64
          valueExcludeVat:
            type: number
            format: decimal
          roundingAdjustment:
            type: number
            format: decimal
          name:
            type: string
            nullable: true
          internalNotes:
            type: string
            nullable: true
          projectName:
            type: string
            nullable: true
          projectNameAndProjectDeatil:
            type: string
            nullable: true
    ReconciledDocument:
      type: object
      additionalProperties: false
      required:
      - accountNumber
      properties:
        documentId:
          type: integer
          format: int64
        documentType:
          $ref: '#/components/schemas/DocumentTypes'
        transactionId:
          type: string
          maxLength: 255
          minLength: 0
          nullable: true
        amount:
          type: number
          format: decimal
        fromAccount:
          type: string
          nullable: true
        channel:
          type: string
          nullable: true
        description:
          type: string
          nullable: true
        accountNumber:
          type: string
          maxLength: 255
          minLength: 0
        bankId:
          type: integer
          format: int32
        companyId:
          type: integer
          format: int64
        bank:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/Bank'
        company:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/Company'
    Contact:
      type: object
      additionalProperties: false
      properties:
        id:
          type: integer
          format: int64
        nameLocal:
          type: string
          nullable: true
        nameForeign:
          type: string
          nullable: true
        addressLocal:
          type: string
          nullable: true
        addressForeign:
          type: string
          nullable: true
        addressLocalLine2:
          type: string
          nullable: true
        addressForeignLine2:
          type: string
          nullable: true
        addressLocalLine3:
          type: string
          nullable: true
        addressForeignLine3:
          type: string
          nullable: true
        branch:
          type: string
          nullable: true
        branchForeign:
          type: string
          nullable: true
        companyTaxId:
          type: string
          nullable: true
        fax:
          type: string
          nullable: true
        phone1:
          type: string
          nullable: true
        phone2:
          type: string
          nullable: true
        phone3:
          type: string
          nullable: true
        websites:
          type: string
          nullable: true
        createdOn:
          type: string
          format: date-time
        modifiedOn:
          type: string
          format: date-time
        modifiedBy:
          type: integer
          format: int64
        isDelete:
          type: boolean
        isDefault:
          type: boolean
        logoImage:
          type: string
          nullable: true
        defaultCreditDays:
          type: integer
          format: int32
          nullable: true
        vatRate:
          type: integer
          format: int32
        email:
          type: string
          nullable: true
        contactPerson:
          type: string
          nullable: true
        isActive:
          type: boolean
        contactType:
          $ref: '#/components/schemas/ContactTypes'
        contactGroup:
          $ref: '#/components/schemas/ContactGroups'
        remarks:
          type: string
          nullable: true
        galleryId:
          type: integer
          format: int64
          nullable: true
        branchCode:
          type: string
          maxLength: 50
          minLength: 0
          nullable: true
        transactionId:
          type: string
          maxLength: 50
          minLength: 0
          nullable: true
        resetTransactionId:
          type: integer
          format: int64
          nullable: true
        contactCode:
          type: string
          nullable: true
        internalNotes:
          type: string
          nullable: true
        shippingAddress:
          type: string
          nullable: true
        zipCode:
          type: string
          nullable: true
        swiftCode:
          type: string
          nullable: true
        bankAddress:
          type: string
          nullable: true
        useForeignBank:
          type: boolean
          nullable: true
        isMigrate:
          type: boolean
    BankAccount:
      type: object
      additionalProperties: false
      required:
      - companyId
      properties:
        id:
          type: integer
          format: int64
        companyId:
          type: integer
          format: int64
        accountNumber:
          type: string
          maxLength: 50
          minLength: 0
          nullable: true
        bankId:
          type: integer
          format: int32
        branch:
          type: string
          nullable: true
        accountName:
          type: string
          nullable: true
        accountType:
          type: integer
          format: int32
        lastReconciledDate:
          type: string
          format: date-time
          nullable: true
        lastOutstandingBalanceDate:
          type: string
          format: date-time
          nullable: true
        lastStatementDate:
          type: string
          format: date-time
          nullable: true
        lastStatementDocumentId:
          type: string
          nullable: true
        synced:
          type: boolean
        outstandingBalance:
          type: number
          format: decimal
        createdOn:
          type: string
          format: date-time
        modifiedOn:
          type: string
          format: date-time
        isDefault:
          type: boolean
        isDelete:
          type: boolean
          default: false
        lastAvailableBalance:
          type: number
          format: decimal
        lastOutstandingBalance:
          type: number
          format: decimal
        chartOfAccountId:
          type: integer
          format: int64
          nullable: true
        chartOfAccount:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/ChartOfAccount'
        bank:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/Bank'
        company:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/Company'
        status:
          $ref: '#/components/schemas/BankingChannelsStatus'
        bankName:
          type: string
          nullable: true
        qrCode:
          type: string
          nullable: true
    BatchTaxFilingStatus:
      type: integer
      description: '1 = Awaiting

        3 = Refunded'
      x-enumNames:
      - Awaiting
      - Refunded
      enum:
      - 1
      - 3
    PayrollDetailStatus:
      type: integer
      description: '0 = Draft

        1 = Awaiting

        2 = Reset

        3 = Paid

        4 = Partial

        5 = Rejected

        7 = Approved

        11 = PushPayAwaiting

        13 = PushPayProcessed

        15 = PushPayRejected

        17 = PushPayPartial

        19 = PushPayPendingPayments

        50 = KConnectAwaiting

        52 = KConnectProcessed

        54 = KConnectRejected

        56 = KConnectPendingPayments

        58 = KConnectPartialPayments'
      x-enumNames:
      - Draft
      - Awaiting
      - Reset
      - Paid
      - Partial
      - Rejected
      - Approved
      - PushPayAwaiting
      - PushPayProcessed
      - PushPayRejected
      - PushPayPartial
      - PushPayPendingPayments
      - KConnectAwaiting
      - KConnectProcessed
      - KConnectRejected
      - KConnectPendingPayments
      - KConnectPartialPayments
      enum:
      - 0
      - 1
      - 2
      - 3
      - 4
      - 5
      - 7
      - 11
      - 13
      - 15
      - 17
      - 19
      - 50
      - 52
      - 54
      - 56
      - 58
    Entity:
      type: integer
      description: '1 = PND3

        3 = PND53

        5 = PND1K

        7 = PND1KSpecial

        9 = PND2

        11 = PND2K

        13 = PND3K

        15 = PND1'
      x-enumNames:
      - PND3
      - PND53
      - PND1K
      - PND1KSpecial
      - PND2
      - PND2K
      - PND3K
      - PND1
      enum:
      - 1
      - 3
      - 5
      - 7
      - 9
      - 11
      - 13
      - 15
    OrderBy:
      type: integer
      description: '1 = Asc

        3 = Desc'
      x-enumNames:
      - Asc
      - Desc
      enum:
      - 1
      - 3
    DocumentReferenceTypes:
      type: integer
      description: '1 = ImportDocument

        3 = PartialPayments

        5 = Batch

        7 = Etax

        9 = MiigratePartialPayments

        11 = BatchPartialPayments

        13 = DepositFirst

        15 = DepositLast'
      x-enumNames:
      - ImportDocument
      - PartialPayments
      - Batch
      - Etax
      - MiigratePartialPayments
      - BatchPartialPayments
      - DepositFirst
      - DepositLast
      enum:
      - 1
      - 3
      - 5
      - 7
      - 9
      - 11
      - 13
      - 15
    JournalEntryTemplateType:
      type: integer
      description: '1 = Default

        3 = DocumentCreated

        5 = Payment

        7 = ChequeDate

        9 = TaxNoRefund

        11 = VATManagementHistory'
      x-enumNames:
      - Default
      - DocumentCreated
      - Payment
      - ChequeDate
      - TaxNoRefund
      - VATManagementHistory
      enum:
      - 1
      - 3
      - 5
      - 7
      - 9
      - 11
    PackageList:
      type: object
      additionalProperties: false
      required:
      - packageName
      - configuration
      properties:
        id:
          type: integer
          format: int32
        packageName:
          type: string
          minLength: 1
        description:
          type: string
          nullable: true
        configuration:
          type: string
          minLength: 1
        remarks:
          type: string
          nullable: true
        displayNameTH:
          type: string
          nullable: true
        displayNameEN:
          type: string
          nullable: true
    RunningNumberType:
      type: integer
      description: '1 = Default

        3 = YearMonth

        5 = Month

        7 = Year

        9 = FreeHand'
      x-enumNames:
      - Default
      - YearMonth
      - Month
      - Year
      - FreeHand
      enum:
      - 1
      - 3
      - 5
      - 7
      - 9
    SupplierInvoice:
      type: object
      additionalProperties: false
      required:
      - companyId
      - documentDate
      - createdOn
      - modifiedOn
      properties:
        id:
          type: integer
          format: int64
        companyId:
          type: integer
          format: int64
        documentDate:
          type: string
          format: date-time
          default: CURRENT_TIMESTAMP
          minLength: 1
        documentSerial:
          type: string
          nullable: true
        contactName:
          type: string
          nullable: true
        contactTaxId:
          type: string
          nullable: true
        contactBranch:
          type: string
          nullable: true
        isDelete:
          type: boolean
        galleryId:
          type: integer
          format: int64
          nullable: true
        referenceDocumentId:
          type: integer
          format: int64
        referenceDocumentType:
          $ref: '#/components/schemas/DocumentTypes'
        createdBy:
          type: integer
          format: int64
        modifiedBy:
          type: integer
          format: int64
        createdOn:
          type: string
          format: date-time
          default: CURRENT_TIMESTAMP
          minLength: 1
        modifiedOn:
          type: string
          format: date-time
          default: CURRENT_TIMESTAMP
          minLength: 1
        company:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/Company'
        createdByUser:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/User'
        modifiedByUser:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/User'
        gallery:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/Gallery'
    JournalEntry:
      type: object
      additionalProperties: false
      required:
      - documentType
      - status
      - documentDate
      - isSystemDocument
      properties:
        id:
          type: integer
          format: int64
        companyId:
          type: integer
          format: int64
        documentSerial:
          type: string
          maxLength: 100
          minLength: 0
          nullable: true
        documentType:
          $ref: '#/components/schemas/DocumentTypes'
        status:
          $ref: '#/components/schemas/Journal

# --- truncated at 32 KB (140 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/flowaccount/refs/heads/main/openapi/flowaccount-employee-api-openapi.yml