MCP App Store
by KeenEthics
LedgerBooks icon

LedgerBooks

By TC Systems NY Corp.

Get New App Alerts

Overview

LedgerBooks is complete double-entry accounting for small businesses. Connect it to ChatGPT and run your bookkeeping in plain English. Ask how the business is doing and get the same figures as your LedgerBooks screens: profit and loss, balance sheet, cash flow, trial balance, cash on hand, who owes you and what you owe, sales by customer and item, spending by vendor, sales tax and 1099 totals. Look up any invoice, bill, payment, customer, vendor, item, account or job. Have ChatGPT do the work: create invoices and estimates, enter a vendor's bill you paste or attach, record expenses and payments, post journal entries, add customers, vendors, items and jobs. Categorize and match bank transactions, read a bank statement and reconcile an account to $0.00, and run health checks that find duplicates and explain an account that doesn't look right. Built for trust: each connection is pinned to one company you choose; ChatGPT can do only what your role allows; every entry goes through the same double-entry engine as the app, so the books stay balanced to the cent; it records bookkeeping entries and never moves money; anything that changes existing records asks you first; every action is logged; and you can disconnect in one click.

Tools

apply_credit

ChatGPT
Use a credit the books already hold to pay down an open invoice or bill: a credit memo, a customer deposit or a customer payment's unapplied (overpaid) amount against one of that customer's invoices; a vendor credit or a journal entry that debits Accounts Payable for a vendor against one of that vendor's bills. No new journal entry is needed except for a deposit, which the engine posts. The amount defaults to the most that fits (the smaller of what is left on the credit and what is owed). Nothing is charged or sent.

apply_suggested_categories

ChatGPT
Accept every suggested category for the lines waiting in an account's For Review — the same suggestions the screen shows, from the company's bank rules first and then from how similar lines were categorized before. Lines with no suggestion are left waiting. Show the person the plan (it lists every line) before they approve; use rules_only to accept only what their own bank rules say.

cancel_reconciliation

ChatGPT
Discard the reconciliation in progress on an account: its ticks are dropped. Completed reconciliations and the books are not touched.

categorize_bank_transaction

ChatGPT
Take a transaction out of the bank review queue by assigning it a category account, exactly as clicking Add in the app does. For money out you can also name the payee, which records a proper expense. Use match_bank_transaction instead when the transaction is a customer paying an invoice or you paying a bill.

categorize_bank_transactions

ChatGPT
Categorize many waiting bank transactions in one approval, each to its own category (with an optional payee for money out, received_from for money in, a job, or a new description) — exactly what Add does on the For Review screen, line by line. Lines that are no longer waiting are left out and named. A payment of a specific invoice or bill, or a transfer already recorded in the company's other account, belongs to match_bank_transaction instead; categorizing it would count the money twice.

check_books_health

ChatGPT
A whole-company health check, the way an accountant reviews a new client's file: debits equal credits, Accounts Receivable and Payable agree with the customer and vendor balances, Undeposited Funds makes sense, transactions stuck in For Review, accounts never or not recently reconciled, broken bank connections, balances with the wrong sign (a credit card showing a credit, a negative liability), money parked in holding accounts, overdue invoices and bills, stale drafts and unlikely dates. Use it when asked whether the books are right, before month or year end, and as the first step of any clean-up.

clear_bank_account_feed

ChatGPT
Remove every bank-feed transaction on one bank, cash or credit-card account — optionally only within a date range — cleanly undoing whatever categorizing them created (expenses, payments, feed entries), so the account can be rebuilt, usually by importing statements. Categorization rules, import history and anything entered directly are kept. Refused if any of the transactions are in a completed reconciliation. Use this for a real cleanup, after showing the person what is wrong; for one transaction use undo_bank_transaction.

convert_estimate_to_invoice

ChatGPT
Turn an accepted estimate into a draft invoice carrying the same lines, tax and discount. The estimate is marked converted and linked to the new invoice.

create_account

ChatGPT
Add an account to the chart of accounts — an expense category, an income account, a bank or credit-card account, a loan, an equity account. The subtype decides its type. Leave out the code to take the next free one. A balance-sheet account can start with an opening balance (offset to Opening Balance Equity), entered the way the bank shows it.

create_bank_rule

ChatGPT
Create a bank rule, like Banking → Rules: when a bank line's description and/or amount match the conditions, it is categorized to the chosen account (and payee). By default the rule only SUGGESTS the category in For review; auto_add=true adds matching lines to the books as they arrive. Applies to lines that come in after it is created and to the suggestions shown now. Use "not_contains" to keep a rule off look-alike lines (an overdraft fee that quotes a merchant's name). New rules go last in the order rules are tried.

create_bill

ChatGPT
Enter a bill you owe a vendor. Saved as a draft by default; pass post=true to post it, which is what makes it a payable. Use record_expense instead when the money has already gone out.

create_bill_from_purchase_order

ChatGPT
Turn a purchase order into a DRAFT bill when the vendor invoices you, copying its lines. By default everything still unbilled is copied; give lines to bill only some lines or part quantities. The purchase order is marked partly billed or closed. The bill is a draft dated today — nothing is owed until it is posted.

create_check

ChatGPT
Record a check written on a bank account (rent, a contractor, a one-off purchase) in the books: who it is to, which account it is drawn on, and the categories it covers. This only records the check in the books — it never prints a check, sends money or contacts a bank. Saved as a draft by default; pass post=true once the check has been written, which posts it (Dr the categories, Cr the bank account). To pay open bills by check, use record_bill_payment with method check instead.

create_credit_memo

ChatGPT
Create a NEW credit memo for a customer — money you owe them back or take off what they owe, for a return, an overcharge or a goodwill credit. Saved as a draft by default; pass post=true to post it, which reduces the income and the sales tax it covers and gives the customer that much credit to apply to their invoices. Nothing is refunded or emailed by this.

create_customer

ChatGPT
Add a customer. Only a name is required; details can be filled in later.

create_estimate

ChatGPT
Create an estimate (quote) for a customer. Estimates never touch the ledger — they become real money only when converted to an invoice.

create_invoice

ChatGPT
Create an invoice for a customer. Saved as a draft by default so it can be reviewed; pass post=true to post it to the ledger straight away, which is what makes it owed by the customer and counted as revenue. Returns the invoice number.

create_invoice_from_bill

ChatGPT
Create a NEW draft invoice for a customer from a bill's costs — re-billing what a vendor charged you, optionally with a markup. Every line of the bill not yet invoiced is copied onto the invoice (marked up by markup_percent) and recorded as invoiced, so the same cost can never be billed twice. The bill must be open or paid, not a draft. The invoice is a draft: review it, then post it with post_invoice or change it with update_invoice. Nothing is emailed.

create_invoice_from_job

ChatGPT
Create a NEW draft invoice from the costs on a job that are not invoiced yet — the app's 'Invoice this job'. Each bill, expense or check line becomes an invoice line at its cost plus an optional markup, and is marked invoiced so it can never be billed twice (voiding or deleting the invoice frees it again). Leave out costs to take every cost not yet invoiced. The invoice is a draft: nothing posts until it is opened.

create_item

ChatGPT
Add something you sell, with its price and the income account it posts to. Needed before an invoice line can reference it by name.

create_job

ChatGPT
Create a job (project) that invoices and expense lines can be tagged to, so its profitability can be tracked.

create_journal_entry

ChatGPT
Post a manual journal entry. Total debits must equal total credits — the database enforces it. Lines hitting Accounts Receivable must name a customer and lines hitting Accounts Payable must name a vendor, exactly as in the app. Use this for adjustments, not for anything a proper document can record.

create_payment_term

ChatGPT
Add a payment term (e.g. "Net 45" = due 45 days after the invoice date) to the list invoices pick from; picking it sets the invoice's due date.

create_purchase_order

ChatGPT
Create a purchase order to a vendor — what you are ordering, at what price, and when you expect it. A purchase order never touches the ledger: nothing is owed until it is billed (create_bill_from_purchase_order). It is created open (ready to send to the vendor), like the app's main button; pass draft=true to keep it as a draft. Nothing is emailed to the vendor.

create_recurring_invoice

ChatGPT
Create a NEW recurring invoice schedule (Sales → Recurring) for a customer: weekly, monthly, quarterly or yearly from a start date, optionally until an end date. By default each invoice is saved as a draft to review; with auto_send=true each one is opened (posted) and emailed to the addresses given on its date. A start date in the past is moved forward to the next upcoming date — schedules never create old invoices. Card autopay is set up only by the customer, from a link sent in the app.

create_recurring_purchase

ChatGPT
Create a NEW recurring bill or expense schedule (Expenses → Recurring): rent, a subscription, a monthly service. On each date a DRAFT bill or expense is created for review — nothing posts or is paid by itself. Weekly, monthly, quarterly or yearly from a start date; a start date in the past is moved forward to the next upcoming date. A bill needs a vendor; an expense needs the account it's paid from (defaults to the first bank account).

create_sales_receipt

ChatGPT
Record a NEW sales receipt — a sale paid on the spot (cash, check, card at the counter), so there is no invoice to wait on. Posted straight away like the app's Save & post: income is recorded and the money is shown as deposited to the bank, cash or undeposited-funds account. Pass post=false to leave a draft. The customer is optional (leave it out for a cash sale). This only records the sale; it never charges a card or moves money.

create_tax_rate

ChatGPT
Add a sales tax rate (a name and a percentage, optionally tied to one of the company's tax agencies) that invoices, receipts, customers and the company default can use. New York rates from a customer's address are added automatically and don't need this.

create_vendor

ChatGPT
Add a vendor. Only a name is required. Set track_1099 when they are a contractor you will need to report.

create_vendor_credit

ChatGPT
Record a credit a vendor gave you (a return, a refund owed, an allowance). Saved as a draft by default; pass post=true to post it, which reduces what you owe that vendor (Dr A/P, Cr the expense accounts) and leaves it available to apply to their bills. Each line names the expense or asset account being credited.

delete_bank_rule

ChatGPT
Delete a bank rule for good. Lines it already categorized stay in the books exactly as they are; new bank lines simply stop being matched by it. To pause a rule instead, use update_bank_rule with active=false.

delete_payment_term

ChatGPT
Remove a payment term from the list invoices pick from. Invoices that already show it keep it, with their due dates unchanged.

delete_transaction

ChatGPT
Delete a document outright, the way the app's Delete button does: a draft expense, check, credit memo, sales receipt, vendor credit or journal entry; an estimate that was not converted; a draft or open purchase order with nothing billed; and an invoice or bill that is a draft, unpaid with nothing applied, or void (its journal entries go with it). Anything else posted is voided instead (void_transaction). This cannot be undone.

diagnose_account

ChatGPT
A bookkeeper's full check of ONE bank, cash or credit-card account: months with no transactions (a missing statement), where the transactions came from (bank connection vs which imported files, including files for a different card number), whether the connected bank account matches the account's name, entries recorded twice (entered by hand AND categorized from the bank), bank lines imported twice, money waiting in For Review, and whether its reconciliation still holds. Use it whenever someone says an account's balance looks wrong, before clearing or re-importing an account, and after importing statements.

exclude_bank_transactions

ChatGPT
Take transactions waiting in For Review out of the queue without recording anything — for duplicates, pending charges that later settled under a different id, or anything that should not be in the books. Only transactions still waiting in For Review can be excluded. They can be restored later.

fetch

ChatGPT
Retrieve the full record behind an id returned by search, as readable text plus structured fields. Use this to read a document, contact, item or account in full after finding it.

file_sales_tax_return

ChatGPT
Mark a sales tax return as filed in the books once it has been filed with the state (this does NOT submit anything to the state — file on the agency's website). Filing freezes the return's figures; anything that later changes in that period goes on the next return as a prior-period change. Pass unfile=true to undo the latest filing. Record the money paid with record_sales_tax_payment.

find_duplicate_transactions

ChatGPT
Looks for anything recorded twice: bank lines imported twice (a CSV over the bank feed, overlapping files), the same statement line on two different accounts (a file imported into the wrong account), and documents entered twice — expenses, bills, invoices, customer payments, checks, and a bill paid through Pay Bills that was also recorded as an expense. Repeated charges that each came from their own bank line (four fees on one day) are deliberately NOT reported. Defaults to the last 12 months.

get_1099_summary

ChatGPT
For a calendar year, how much cash was actually paid to each vendor marked as 1099-tracked, flagging those over the $600 reporting threshold and those missing a tax ID. Card payments are excluded because those are reported on 1099-K by the processor.

get_account_register

ChatGPT
The running register for one bank, cash or credit-card account: every posted transaction with a running balance. Credit cards use Charge and Payment columns and a balance shown as the amount owed, matching the way the account is reconciled.

get_account_transactions

ChatGPT
Every posted transaction that hit one account over a period, with the source document (invoice, bill, payment, expense…) and the customer or vendor it was with. This is how you answer 'where did that number come from'.

get_ap_aging

ChatGPT
Open vendor bills grouped by how overdue they are (current, 1-30, 31-60, 61-90, 90+ days), with the total you owe and what is most urgent.

get_ar_aging

ChatGPT
Open customer invoices grouped by how overdue they are (current, 1-30, 31-60, 61-90, 90+ days), with the total owed to you and the worst offenders.

get_balance_sheet

ChatGPT
Assets, liabilities and equity as of a date. Net income is shown inside equity because this ledger never closes the books. Always balances: assets = liabilities + equity.

get_business_snapshot

ChatGPT
One call that answers 'how is the business doing': cash on hand, money owed to you, money you owe, income and expenses this month and year to date, net income, overdue invoices, and how many bank transactions are waiting to be categorized. Start here when the question is general.

get_cash_flow

ChatGPT
Indirect cash flow statement for a period: net income adjusted for movements in receivables, payables and other balance-sheet accounts, split into operating, investing and financing, with cash at the start and end. Includes an independent tie-out against actual cash movement.

get_cash_position

ChatGPT
What is in every bank, cash and credit-card account right now, with the total cash available and total owed on cards. Answers 'how much money do I have'.

get_company_info

ChatGPT
Which company these books belong to, its currency, fiscal year start, business contact details, tax rates on file, payment terms, and the access this connection has. Call this first if you are unsure what you are connected to.

get_customer

ChatGPT
One customer's details, current open balance, available credit, and their recent invoices and payments.

get_customer_statement

ChatGPT
A customer's statement of account, built exactly like the statement page in the app: balance forward (the default), open item, or transaction. Returns every line with its running balance, the charges and credits, the amount due, and the aging summary. It ties to the customer's balance on Accounts Receivable. Reading it emails nothing — send_customer_statement does that.

get_document_pdf

ChatGPT
A download link for the PDF of an invoice, estimate, credit memo, sales receipt, purchase order or vendor credit — the same PDF the app prints and emails. Give the link to the person; it works for 30 minutes and only opens that one document. Nothing is sent to the customer.

get_outstanding

ChatGPT
Every unpaid invoice you are owed and every unpaid bill you owe, oldest first, with how many days late each one is. Use this to answer 'who owes me', 'what do I need to pay' or 'what is overdue'.

get_profit_and_loss

ChatGPT
Income and expenses over a period, grouped into income, cost of goods sold, expenses and other, with gross profit, operating income and net income. Optionally compares to the previous period of the same length.

get_sales_by_customer

ChatGPT
Total invoiced and receipted sales per customer over a period, ranked largest first. Excludes tax and counts posted documents only.

get_sales_by_item

ChatGPT
Quantity sold and revenue per product or service over a period, from posted invoices and sales receipts, ranked by revenue.

get_sales_tax_return

ChatGPT
One sales tax return as the app's Sales Tax Center shows it: the agency's filing period, whether it is upcoming, due, overdue or filed, the due date, sales and tax by rate, prior-period changes, adjustments, total due, payments recorded and the balance — plus the other returns still waiting to be filed. For tax over an arbitrary date range use get_sales_tax_summary.

get_sales_tax_summary

ChatGPT
Sales tax charged on invoices and receipts over a period, broken down by tax rate, plus the current balance of the Sales Tax Payable account — what you have collected and still owe.

get_spending_by_vendor

ChatGPT
What you spent with each vendor over a period, ranked largest first. Counts posted bills, direct expenses and checks.

get_transaction

ChatGPT
Everything about one document, including its line items, totals, tax, discount, who it is with, what has been paid or applied against it, and the journal entry it posted. Identify it by document number (for example 42, or INV-0042) or by id.

get_trial_balance

ChatGPT
Every account with a balance as of a date, in debit and credit columns. Total debits must equal total credits; if they do not, the ledger is corrupt and that is worth reporting immediately.

get_vendor

ChatGPT
One vendor's details, what you currently owe, and their recent bills, expenses and payments.

import_statement

ChatGPT
Import a statement that has been read and TIES into a bank or card account's For Review, exactly like importing the bank's CSV: lines already in the account are skipped, lines previously excluded come back, nothing is categorized except by the company's own bank rules. The plan shown before approval is the real import run and rolled back, so the counts are exact. Refused for a statement that does not tie or was already imported.

list_accounts

ChatGPT
The chart of accounts with each account's code, name, type, subtype and current balance. Call this when you need an account code for another tool, or to understand how the books are organised.

list_bank_accounts

ChatGPT
Every bank, cash and credit-card account with its current balance, how many feed transactions are waiting to be categorized, and whether it is connected to a live bank feed. Credit cards are shown as the amount owed.

list_bank_rules

ChatGPT
The company's bank rules in the order they are tried: each rule's name, its conditions, the category and payee it assigns, which bank account it applies to, whether it adds matches automatically, and whether it is on.

list_bank_transactions

ChatGPT
Transactions from the bank feed or a statement import. By default this shows what is still waiting to be categorized ('For review'), which is the queue a bookkeeper works through. Money in is positive, money out is negative.

list_customers

ChatGPT
Customers, with contact details and how much each currently owes. Search by name, company or email.

list_items

ChatGPT
Everything you sell, with its price, whether it is a product or a service, whether it is taxable, and which income account it posts to.

list_jobs

ChatGPT
Every job (project) with the income tagged to it, the costs tagged to it, and the resulting profit and margin. Jobs are an optional tag on invoices and expense lines.

list_recurring_transactions

ChatGPT
List the company's recurring schedules — invoices (Sales → Recurring) and bills and expenses (Expenses → Recurring): name, customer or vendor, how often, the next and last dates, status, the amount before tax and, for invoices, whether each one is emailed automatically or charged to a saved card.

list_statements

ChatGPT
Bank and credit-card statements uploaded to this company: file, account, period, balances, whether each was read and ties to its own balances, and whether it has been imported. Also checks each account's statements form an unbroken chain (each opening where the last closed, the day after it ended), which is how a missing statement is found. Use it before reading or importing, and whenever someone asks what statements are in or missing.

list_transactions

ChatGPT
List any kind of document in the books: invoices, estimates, sales receipts, credit memos, customer deposits, customer payments, bills, expenses, checks, purchase orders, vendor credits, bill payments or journal entries. Filter by status, customer or vendor, date range, amount, and whether anything is still outstanding.

list_vendors

ChatGPT
Vendors, with contact details, how much you currently owe each, and whether they are tracked for 1099 reporting.

match_bank_transaction

ChatGPT
Tie a bank transaction to the document it actually is: a deposit to the customer invoice it pays, or a withdrawal to the vendor bill it pays. This records the payment rather than booking new income or expense, which is what stops the same money being counted twice. Paying more than the document's balance leaves the remainder as a credit.

month_end_close_check

ChatGPT
The month-end close checklist for one month: for every bank and card account, are that month's transactions in, all categorized, and reconciled; drafts left in the month; money still in Undeposited Funds; vendors paid every month that have nothing this month (a missing bill); and expense or income accounts that moved unusually against the previous three months. Defaults to last month.

post_invoice

ChatGPT
Post a draft invoice to the ledger. This is what makes it owed by the customer and counted as revenue. Balanced journal entries are created by the posting engine.

post_transaction

ChatGPT
Post a DRAFT invoice, bill, expense, check, credit memo, sales receipt, vendor credit or journal entry, so it counts in the ledger. The posting engine writes the balanced journal entry. Only drafts can be posted; to change something already posted, void it (void_transaction) and enter it again.

read_statement

ChatGPT
Read an uploaded bank or credit-card statement: the account it belongs to, its period, opening and closing balances and every transaction line — and PROVE the reading by checking the lines reproduce the statement's own closing balance to the cent. A statement that does not tie is never imported. It is read on our own servers first; only a statement that cannot be read that way is sent to the AI reader. Reading saves the result with the file (so it is not read twice); it never changes the books. A statement can only be imported after its reading ties.

reclassify_transactions

ChatGPT
Move posted lines from one account to another — the app's Accounting → Reclassify transactions, e.g. every 'Office supplies' line that should have been 'Software'. Pick the lines by date range plus any of: the customer or vendor name, memo text, amount, job, or exact line ids. The original transactions are not edited: one adjusting entry per original date moves the amounts, so each month keeps its own figures. Lines on bank, card, A/R, A/P and sales tax accounts can't be moved. Undo with undo_reclassification.

reconcile_account

ChatGPT
Reconcile a bank or card account to a statement. Best with a statement that has been uploaded and read (statement): each statement line is matched to the entry in the books with the same amount within a week, the account's opening balance is used on a first reconciliation, and anything on the statement the books lack is named. Without a statement, give end_date and ending_balance and everything uncleared through that date is ticked. It completes only when the difference is exactly $0.00; otherwise the ticks are saved in progress and the plan says what is off. The plan shows the engine's own figures before anything is saved.

reconciliation_status

ChatGPT
Where each bank and card account stands on reconciliation: reconciled through which date and to what statement balance, any reconciliation in progress (with its difference), and uploaded statements waiting to be reconciled next. Give an account for its history.

record_bank_deposit

ChatGPT
Record a deposit into a bank or cash account, the way Banking → Bank Deposits does: payments and sales receipts waiting in Undeposited Funds (several checks deposited together, a card processor's batch), plus any other lines — a NEGATIVE line takes a processor fee out (e.g. -10.62 to Merchant Processing Fees), a positive line adds other money. The deposit total is what reached the bank. Leave payments and lines out to see what is waiting. This records the deposit in the books only; it never moves money. When the deposit later shows on the bank feed, match it there instead of categorizing it.

record_bill_payment

ChatGPT
Record a payment the business has already made to a vendor, and apply it to that vendor's open bills. This only writes the payment into the books — it never sends, moves or initiates any money. Name the bank, cash or credit-card account it was paid from. Give explicit allocations, or leave them out and it is applied to the oldest bills first.

record_customer_deposit

ChatGPT
Record a deposit or retainer a customer has already paid BEFORE being invoiced. It is held as a liability (Customer Deposits), not income, until it is applied to one of their invoices. This only writes it into the books; it never charges a card or moves money. A payment on an invoice that already exists is record_payment instead.

record_customer_refund

ChatGPT
Record a refund you have ALREADY given a customer — by check, cash or bank transfer — out of the unused credit an overpayment left on one of their payments. This only records it in the books (the credit is used up and the money is shown as having left the bank or cash account); it never sends, charges or moves any money. The amount can't be more than the payment's unused credit. A card payment taken online is refunded in the app instead (Refund to the card).

record_expense

ChatGPT
Record money already spent, paid straight from a bank, cash or credit-card account. Posts immediately — use create_bill instead when you owe the money but have not paid yet. In the United States sales tax paid to a vendor is not recoverable, so any tax is rolled into the expense rather than tracked separately.

record_payment

ChatGPT
Record money a customer has already paid, and apply it to their open invoices. This only writes the payment into the books — it never charges a card or moves any money. Give explicit allocations, or leave them out and the payment is applied oldest invoice first. A payment larger than what is owed leaves the remainder as a credit on the customer's account.

record_sales_tax_adjustment

ChatGPT
Add an adjustment to a sales tax return that isn't filed yet: a vendor collection credit or a credit from the agency (lowers the tax), a penalty or interest (raises it), rounding or other. It posts to Sales Tax Payable with the other side on the income or expense account given (e.g. a collection credit to Other income, a penalty to an expense). Changes the return's total due.

record_sales_tax_payment

ChatGPT
Record a sales tax payment that was already made to the agency (on its website, by check…) against a filing period: debit Sales Tax Payable, credit the account it was paid from, so it can be matched to the bank line later. This only writes the payment into the books and never sends, charges or moves money. The amount defaults to the return's unpaid balance.

rename_account

ChatGPT
Change an account's name and/or code in the chart of accounts — for example when a card is replaced and the account still carries the old card number. History stays attached; only the label changes.

reopen_reconciliation

ChatGPT
Reopen an account's most recent completed reconciliation so its ticks or statement figures can be corrected (only the latest can be reopened). Nothing in the books changes; the account reads as reconciled only through the reconciliation before it until this one is completed again.

restore_bank_transactions

ChatGPT
Bring excluded bank transactions back into For Review so they can be categorized or matched.

reverse_journal_entry

ChatGPT
Correct a posted manual journal entry by posting its exact opposite on a chosen date. Posted entries are never edited or deleted; this is how they are corrected. Entries that belong to a document (an invoice, a payment, a bill) or to the bank feed are refused with a pointer to the right tool, because reversing only the accounting would leave the document out of step.

send_customer_statement

ChatGPT
Email a customer their statement of account, exactly as Send on the statement page does in the app: the statement email listing their open invoices (with links to view and pay them), the statement PDF attached, replies going to the company. Leave out to_emails, cc and bcc and they are filled the way the Send dialog fills them — the addresses this customer's last invoice or statement went to, else the customer's saved email. This sends a real email to the customer; it never charges a card or moves money.

send_invoice

ChatGPT
Email a posted invoice to the customer, exactly as Send on the invoice does in the app: the company's invoice email with the PDF attached and the link to view it (and pay, when card payments are on), the company's subject line, replies going to the company. Leave out to, cc and bcc and they are filled the way the Send dialog fills them — the addresses this customer's last invoice or statement went to, else the customer's saved email. A draft can't be emailed: post it first with post_invoice. This sends a real email to the customer; it never charges a card or moves money.

set_account_active

ChatGPT
Hide an account from pickers (deactivate) or bring it back (reactivate). Its history and balance stay in every report. System accounts cannot be deactivated.

set_books_closing

ChatGPT
Set the closing date (Settings → Close the books): nothing dated on or before it can be added, changed, voided or deleted — from any screen, the API or this connector — until the date is moved. Give 'none' to remove it and open every period again. The closing password, if one is set, is left exactly as it is: it can only be set, changed or removed in the app.

set_job_costs_invoiced

ChatGPT
Record that costs on a job were already billed on one of the job's invoices (typed by hand before), so the job stops listing them as still to invoice — the app's 'Mark as invoiced on…'. Creates nothing and posts nothing. Leave out costs to mark every cost not yet invoiced.

set_opening_balance

ChatGPT
Record (or replace) the balance an asset, liability or equity account had before the first transaction in LedgerBooks — for example the balance carried over on the first credit-card statement. Enter it the way the bank shows it: for a bank account what was in it, for a credit card or loan what was owed. The offset goes to Opening Balance Equity. Replacing an existing opening balance removes the old one.

set_recurring_status

ChatGPT
Pause, resume or end a recurring invoice, bill or expense schedule. Paused or ended, it creates nothing; resuming moves its next date forward to the next upcoming one, so the paused periods are never back-billed. Resuming an invoice schedule that emails its invoices automatically starts emailing the customer again on its dates (and a customer who turned on autopay is charged by their own saved card as before). Nothing already created is touched.

undo_bank_transaction

ChatGPT
Send one bank-feed transaction back to For Review, exactly like the Undo button in the app. If it was categorized, whatever that created (an expense, a payment that paid an invoice, a feed entry) is removed and any invoice or bill it paid is re-opened; if it was matched to an existing entry, only the match is removed and the entry is kept. Refused for anything in a completed reconciliation.

undo_credit_application

ChatGPT
Undo apply_credit: take a credit memo, customer deposit or customer payment back off an invoice, or a vendor credit or journal entry back off a bill. The invoice or bill owes that amount again and the credit is free to use elsewhere. For a payment this un-applies it from that invoice (the money stays recorded as a credit on the customer). Every application of that credit to that document is undone.

undo_reclassification

ChatGPT
Undo a reclassification made with reclassify_transactions (or in the app): its adjusting entry is reversed on its own date, the amounts go back to the account they came from, and the lines can be moved again. Give the adjusting entry's number; giving the original transaction's entry also works when only one reclassification moved its lines.

undo_write_off

ChatGPT
Undo a write-off made with write_off_invoices (or in the app): its journal entry is reversed on the write-off date and the invoice owes that amount again. Give the invoice; if it was written off more than once, also give which write-off.

update_bank_rule

ChatGPT
Change a bank rule in place — its name, conditions (the complete new list), all/any, category, payee, direction, which bank account it looks at, whether it adds lines automatically, or switch it on or off (active). Anything not given stays as it is. Lines already in the books are not changed.

update_bill

ChatGPT
Change a draft or open (unpaid) bill in place — vendor, dates, terms, vendor reference, memo, tax or lines. It stays the same bill with the same number; an open bill is re-posted with the new figures. Use this whenever the person asks to fix or change a bill; never enter a new bill for that. Refused when a payment or credit is applied, when the bill came from a purchase order (once open), and a line already put on an invoice can be changed but not removed.

update_company_settings

ChatGPT
Change the company's own settings (owner or admin): business name, industry, email, phone, address and website printed on documents; up to 5 custom fields on sales documents (e.g. PO Number); the next invoice and estimate numbers; how invoices are emailed (PDF attached, link included, subject line with fields like {Invoice no.} and {PO Number}); the default sales tax rate; whether to be emailed when a customer pays online; and the logo size and header layout on documents. Give only what changes.

update_customer

ChatGPT
Change an existing customer in place: name, company, email, phone, notes, billing and shipping address, sales-tax exemption (reason and certificate number), the customer's own tax rate, or whether they're active. Give only what changes; everything left out stays as it is, and a blank value clears that field. A changed address is looked up for sales tax the same way the customer screen does.

update_estimate

ChatGPT
Change an existing estimate in place — its lines, prices, quantities, customer, dates, memo, tax, discount, job or status. It stays the same estimate with the same number. Use this whenever the person asks to change, fix, update or add to an estimate; never create a new estimate for that. To finish a draft (save it as a regular estimate, finalize it) set status "sent"; mark it accepted or declined the same way. Nothing is emailed. An estimate already converted to an invoice can't be changed.

update_invoice

ChatGPT
Change an existing invoice in place — its lines, prices, quantities, customer, dates, terms, memo, tax, discount or job. Works on a DRAFT, and on a posted (open) invoice that has nothing paid or credited on it yet: then its ledger entry is replaced with one for the new figures, exactly as Edit on the invoice does in the app. It stays the same invoice with the same number. Use this whenever the person asks to change, fix or update an invoice; never create a new invoice for that. A paid or partly paid invoice, one with a credit memo applied, or a void one can't be changed — remove the payment or credit first. Nothing is emailed.

update_item

ChatGPT
Change a product or service you sell, in place: name, default description, price, type, the income account it posts to, whether it's taxable, or whether it's active. Give only what changes. Documents already saved keep their own prices and accounts.

update_job

ChatGPT
Change a job (project) in place: its name, the customer it's for, its status (active, completed, cancelled), start and end dates, or notes. Give only what changes; "none" removes the customer or a date. Everything already tagged to the job stays tagged.

update_payment

ChatGPT
Change which bank, cash or undeposited-funds account a customer payment already in the books was deposited to — for example it was recorded to Cash on Hand but went into checking. Only the deposit side of its ledger entry moves; the invoices it paid stay paid, nothing is emailed and no money moves. Refused when the payment is void, reconciled, part of a bank deposit, or matched on the bank feed.

update_purchase_order

ChatGPT
Change a purchase order in place: mark a draft open, close an open or partly billed one (no more bills against it), cancel a draft or open one, or change its expected date, memo or vendor reference (only while it is a draft or open and nothing has been billed). Same document, same number. A purchase order never touches the ledger.

update_tax_rate

ChatGPT
Change a sales tax rate: its name, percentage, agency, or whether it's active. A rate already charged on posted documents keeps its percentage — add a new rate and make the old one inactive instead. Automatic (published) rates can only be switched on or off.

update_vendor

ChatGPT
Change an existing vendor in place: name, company, email, phone, address, notes, whether they're tracked for 1099 reporting, or whether they're active. Give only what changes; a blank value clears that field. A vendor's tax ID is entered in the app only.

void_invoice

ChatGPT
Void a posted invoice. The invoice stays on the books at zero with a reversing journal entry, which is how a correction is made — posted entries are never edited or deleted. Fails if a payment or credit is applied; remove that first.

void_transaction

ChatGPT
Void a posted invoice, customer payment, bill, bill payment, expense, check, sales receipt, credit memo, vendor credit, customer deposit, bank deposit or customer refund. The record stays in the books at zero and a reversing journal entry is posted on the ORIGINAL date, so that month nets to zero — posted entries are never edited or deleted. Undo anything applied to it first (undo_credit_application). A customer refund is named by the payment it came from, e.g. PMT-0012.

write_off_invoices

ChatGPT
Write off invoices that will not be collected (bad debt), all or part of each one's balance — the app's Sales → Write off invoices. Each invoice gets its own journal entry, debit the chosen account (Bad debts unless told otherwise, or any expense or income account) and credit Accounts Receivable, and the amount settles the invoice like a payment would. Name the invoices, or a customer to write off all of their open invoices. Undo one with undo_write_off.

Capabilities

Writes

Similar Apps