""" Henda v2.0.0 — Multi-Tenant Headless General Ledger, Subledger & Graph API Schema Supports 1..10 Chart of Accounts Segments, Parent/Child Accounts & Segment Values, Double-Entry Journals, Budgets & Forecasts, Accounts Receivable (AR), and Cash Management (CE). """ enum SegmentQualifier { BALANCING NATURAL_ACCOUNT COST_CENTER INTERCOMPANY CUSTOM } enum AccountCategory { ASSET LIABILITY OWNERS_EQUITY REVENUE EXPENSE } enum AccountSubType { STANDARD BANK_CASH CREDIT_CARD BANK_CLEARING AR_CONTROL AP_CONTROL } enum PeriodStatus { NEVER_OPENED FUTURE_ENTERABLE OPEN CLOSED PERMANENTLY_CLOSED } type GlCoaSegment { segment_id: ID! coa_structure_id: ID! segment_num: Int! segment_name: String! qualifier: SegmentQualifier! exact_length: Int! numeric_only: Boolean! } type GlSegmentValue { value_id: ID! segment_num: Int! segment_name: String! qualifier: SegmentQualifier! code: String! account_name: String! description: String! hidden_description: String account_category: AccountCategory account_sub_type: AccountSubType! default_tax_rate_code: String parent_code: String is_summary: Boolean! allow_posting: Boolean! is_active: Boolean! } type GlLedger { sob_id: Int! ledger_id: ID! name: String! functional_currency: String! coa_structure_id: ID! description: String my_accountant_md: String bank_recon_posting_mode: String } input CoaSegmentDefInput { segment_num: Int segment_name: String! qualifier: SegmentQualifier exact_length: Int numeric_only: Boolean } input GlSegmentValueInput { code: String! account_name: String description: String hidden_description: String account_category: AccountCategory account_sub_type: AccountSubType default_tax_rate_code: String segment_num: Int parent_code: String is_summary: Boolean allow_posting: Boolean is_active: Boolean } input CreateGlLedgerInput { name: String! functional_currency: String! description: String my_accountant_md: String initial_open_period_name: String sob_id: Int company_code: String company_name: String isolated_coa: Boolean copy_template_accounts: Boolean bank_recon_posting_mode: String bank_recon_match_days_tolerance: Int segments: [CoaSegmentDefInput!] accounts: [GlSegmentValueInput!] } type Query { glLedgers: [GlLedger!]! glCoaSegments(sobId: Int): [GlCoaSegment!]! glAccounts(sobId: Int, segmentNum: Int, accountCategory: AccountCategory, accountSubType: AccountSubType, search: String): [GlSegmentValue!]! glSegmentValues(sobId: Int, segmentNum: Int, accountCategory: AccountCategory, accountSubType: AccountSubType, search: String): [GlSegmentValue!]! glPeriods(sobId: Int): JSON! glBudgets(sobId: Int): JSON! trialBalance(sobId: Int, periodName: String, actualFlag: String, budgetName: String, compareBudgetName: String): JSON! pnl(sobId: Int, periodName: String, actualFlag: String, budgetName: String, compareBudgetName: String): JSON! balanceSheet(sobId: Int, periodName: String, actualFlag: String, budgetName: String, compareBudgetName: String): JSON! accountantBrain(sobId: Int): JSON! arSetup(sobId: Int): JSON! arTaxRates(sobId: Int): JSON! arContacts(sobId: Int, contactType: String, search: String): JSON! arProducts(sobId: Int, search: String, includeInactive: Boolean): JSON! arInvoices(sobId: Int, status: String, glPostingStatus: String, search: String): JSON! arInvoiceLayouts(sobId: Int): JSON! bankAccounts(sobId: Int): JSON! bankReconciliation(sobId: Int, periodName: String, bankAccountId: String): JSON! glWandBatchBalances(balanceQueries: [JSON!]): [JSON!]! glWandBatchDescriptions(descriptionQueries: [JSON!]): [JSON!]! } type Mutation { createGlLedgers(ledgers: [CreateGlLedgerInput!]!): [JSON!]! createGlAccounts(sobId: Int, accounts: [GlSegmentValueInput!]!): JSON! updateGlAccounts(sobId: Int, accounts: [GlSegmentValueInput!]!): JSON! createGlSegmentValues(sobId: Int, segmentValues: [GlSegmentValueInput!]!): JSON! updateGlSegmentValues(sobId: Int, segmentValues: [GlSegmentValueInput!]!): JSON! deleteGlAccounts(sobId: Int, deleteCodes: [String!]!, segmentNum: Int): JSON! manageGlPeriods(sobId: Int, periods: [JSON!]!): JSON! createGlJournals(sobId: Int, actualFlag: String, budgetName: String, journals: [JSON!]!): JSON! createGlBudgets(sobId: Int, budgets: [JSON!]!): [JSON!]! injectGlBudgetBalances(sobId: Int, budgetName: String, mode: String, budgetEntries: [JSON!]!): JSON! configureArSetup(sobId: Int, setup: JSON!): JSON! upsertArTaxRates(sobId: Int, taxRates: [JSON!]!): JSON! upsertArContacts(sobId: Int, contacts: [JSON!]!): JSON! upsertArProducts(sobId: Int, products: [JSON!]!): JSON! createArInvoices(sobId: Int, invoices: [JSON!]!): JSON! approveArInvoices(sobId: Int, invoices: [JSON!]!): JSON! postArInvoicesToGl(sobId: Int, options: JSON): JSON! recordArPayments(sobId: Int, payments: [JSON!]!): JSON! upsertArInvoiceLayouts(sobId: Int, layouts: [JSON!]!): JSON! upsertBankAccounts(sobId: Int, bankAccounts: [JSON!]!): JSON! importBankStatement(sobId: Int, statement: JSON!): JSON! processBankStatement(sobId: Int, options: JSON!): JSON! resolveBankStatementLines(sobId: Int, resolutions: [JSON!]!): JSON! executeGraphBatch(batch: JSON!): JSON! } scalar JSON