Skip to content

Tables Reference

Syntra ODBC exposes every QuickBooks Desktop entity as a SQL table: 120+ tables covering customers, vendors, items, transactions, payroll, preferences, and more. This page is the orientation map. For the exact column list of any individual table, use the live tools described below — they stay in sync with your QuickBooks file and every Syntra release automatically.

Launch Syntra ODBC from the Start Menu and click the Tables tab. You get a live grid of every entity the current QuickBooks company file exposes, with row counts, field counts, ID type (ListID or TxnID), and sync status.

Syntra ODBC Tables tab showing the Entity Sync Status grid for every QuickBooks table

The Tables tab is read-only and updates as QuickBooks changes. Use it when you want to see what is actually populated in a specific company file, or to confirm that a table you care about has the row count you expect.

For an interactive SQL workflow, use the Syntra Query Explorer instead. The left panel lists every table, clicking a name reveals its columns, and you can run ad-hoc SELECTs against any table in the same window.

Syntra Query Explorer with the full tables list on the left and a query result from invoice_lines

When you run a query in the Query Explorer, the result grid has a Copy Schema JSON button. Clicking it copies the full column list for the current result set to the clipboard in a stable, machine-readable JSON format. Use this to bootstrap ORM models, generate TypeScript types, or feed into your own schema tooling.

Query Explorer Sample Queries dropdown and Copy Schema JSON output for SELECT 1 AS connected

Example output, from running SELECT list_id, time_created, is_active, sublevel, balance, account_number FROM accounts:

[
{ "name": "list_id", "type": "varchar", "oid": 1043 },
{ "name": "time_created", "type": "timestamp", "oid": 1114 },
{ "name": "is_active", "type": "bool", "oid": 16 },
{ "name": "sublevel", "type": "int4", "oid": 23 },
{ "name": "balance", "type": "numeric", "oid": 1700 },
{ "name": "account_number", "type": "varchar", "oid": 1043 }
]

The type and oid fields both describe the same Syntra SQL type. See the Syntra SQL Type Reference for the full chart of every code you will see.

You can also enumerate tables and columns from any SQL client:

-- List every available table
SHOW TABLES;
-- See the columns of a specific table
SHOW COLUMNS FROM customers;
-- Or via information_schema
SELECT column_name, data_type
FROM information_schema.columns
WHERE table_name = 'invoices'
ORDER BY ordinal_position;

All three work from the Query Explorer, pyodbc, SQLAlchemy, JDBC, or any other client that can run SQL against the Syntra SQL server.

The full list is 120+ tables. The categorized index below is an orientation guide, not an exhaustive reference. For the real schema of any individual table, use the Tables tab, the Query Explorer, or SHOW COLUMNS.

TableDescription
customersCustomer records (name, contact, balance, sub-customers / jobs)
customer_typesCustomer type classifications
customer_msgsCustomer message presets
invoicesSales invoices
invoice_linesLine items on invoices (created via parent INSERT)
credit_memosCredit memos issued to customers
credit_memo_linesLine items on credit memos
receive_paymentsPayments received from customers
estimatesEstimates / quotes
estimate_linesLine items on estimates
sales_ordersSales orders
sales_order_linesLine items on sales orders
sales_receiptsSales receipts (immediate payment transactions)
sales_receipt_linesLine items on sales receipts
chargesStatement charges (distinct from invoices, age by billed_date)
TableDescription
vendorsVendor records
vendor_typesVendor type classifications
billsBills received from vendors
expense_linesExpense lines on bills and checks
item_linesItem lines on bills
bill_payment_checksBill payments by check
bill_payment_credit_cardsBill payments by credit card
purchase_ordersPurchase orders
purchase_order_linesLine items on purchase orders
vendor_creditsCredits from vendors
item_receiptsItem receipts (item delivery, post to AP)
TableDescription
item_servicesService items
item_inventoriesInventory items (with quantity_on_hand, average_cost)
item_inventory_assembliesInventory assembly items
item_non_inventoriesNon-inventory items
item_other_chargesOther-charge items
item_fixed_assetsFixed-asset items
item_discountsDiscount items
item_paymentsPayment items
item_sales_taxesSales tax items
item_sales_tax_groupsSales tax group items
item_groupsGroup items (bundles)
item_subtotalsSubtotal items
inventory_adjustmentsInventory quantity / value adjustments
inventory_adjustment_linesLines on inventory adjustments
build_assembliesBuild assembly transactions
inventory_sitesInventory site / warehouse locations
TableDescription
employeesEmployee records
paychecksPaycheck transactions (read-only)
paycheck_linesPaycheck lines (read-only)
payroll_item_wagesWage payroll items
payroll_item_non_wagesNon-wage payroll items (read-only)
payroll_liability_adjustmentsPayroll liability adjustments
payroll_liability_checksPayroll liability check transactions (read-only)
payroll_prior_paymentsPrior payroll payments
payroll_year_to_date_adjustmentsYTD payroll adjustments
time_trackingsTime tracking entries
workers_comp_codesWorkers’ comp codes
TableDescription
accountsChart of accounts
journal_entriesJournal entries
journal_entry_linesLines on journal entries
checksChecks written
credit_card_chargesCredit card charges
credit_card_creditsCredit card credits
depositsBank deposits
deposit_linesLines on bank deposits
transfersFunds transfers between accounts
transfer_inventoriesInventory transfers between sites
sales_tax_payment_checksSales tax payment checks
TableDescription
classesClass tracking categories
currenciesCurrencies (multi-currency companies)
payment_methodsPayment method types
sales_tax_codesSales tax codes
ship_methodsShipping methods
standard_termsStandard payment terms (Net 30, etc.)
date_driven_termsDate-driven payment terms
price_levelsPrice level adjustments
billing_ratesBilling rate levels
job_typesJob type classifications
sales_repsSales representatives
other_namesOther names list
vehiclesVehicles (for mileage tracking)
vehicle_mileagesMileage entries
unit_of_measure_setsUnit of measure sets
templatesForm templates (read-only)
to_dosTo-do list entries
leadsSales leads
TableDescription
companiesCompany file information
company_activitiesCompany activity log
preferencesQuickBooks preferences
hostsHost configuration
alertsActive alerts
data_ext_defsCustom field definitions
employee_defaultsEmployee default settings
form1099_category_account_mappings1099 category to account mappings
payroll_last_periodsLast payroll period markers
item_assemblies_can_buildsAssembly build-quantity-available computation
item_sitesPer-item per-site inventory
sales_tax_payablesSales tax payable balances
sales_tax_returnsSales tax return definitions
list_deletedsDeleted list entries
txn_deletedsDeleted transactions
transactionsAggregated transaction view across types
TableDescription
account_tax_line_infosAccount tax-line info
  • All table names are lowercase snake_case. Column names follow the same convention.
  • Primary keys: list_id for list entities (customers, vendors, items, accounts), txn_id for transactions (invoices, bills, journal entries, checks).
  • Line tables (invoice_lines, expense_lines, journal_entry_lines, etc.) are children of their parent transaction. Most line tables cannot be directly inserted; create lines by passing a _lines array in the parent’s INSERT, or use the SQL line_* column prefix pattern. See INSERT / UPDATE / DELETE.
  • Custom fields are auto-discovered from your QuickBooks file and appear as additional columns on the relevant table. See Custom Fields.
  • Writability flags: every table’s supports_insert, supports_update, and supports_delete flags are visible in the Tables tab (screenshot above) and via the MCP describe_table tool. Write operations require the Pro plan.