- Brand
- invoiso
- Category
- Finance
- Primary Subcategory
- Accounting & Bookkeeping
Integration details
Description
invoiso is invoicing and bookkeeping software for small businesses. This plugin connects ChatGPT to your invoiso workspace so you can create, issue and email invoices and credit notes, record expenses and supplier bills, see what customers owe and what you owe suppliers, match payments and bank statement lines, manage contacts, products and stock, and ask for reports such as revenue, overdue invoices or VAT. Sign in with your invoiso account; the workspace you choose there is the one ChatGPT works in. Tools that send email, post to an accounting package, move money or delete something are marked as such, so ChatGPT asks before using them.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- Accounting & Bookkeeping
- Secondary Subcategories
- None listed
- Brand
- invoiso
- Access
- Account required
- First tracked
- 2026-11-04
- Tool count
- 76
- Market
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Your score is coming
ChatGPT now suggests Plugins on its own when they match a user's request.Your Plugin Discovery Score measures how often yours appears, and it will show here as soon as it’s ready.
What discovery looks like

Get alerts for invoiso
Get updates when invoiso’s Discoverability Score or category rank changes.
Competing in ChatGPT Accounting & Bookkeeping
View Category76 tools agents can invoke
List the workspace's active API keys — each gives access to this workspace's data through this same interface — with name, visible prefix, creation date, last use and id. The secrets are not stored and cannot be shown. Point out keys that were never used or not used for a long time. New keys are created only by the user in Settings, never through a tool, because the secret is shown once. revoke_api_key stops one working. Only the workspace's owner or an administrator may call this.
list_api_keys
Returns the accounting packages this workspace is connected to — Xero, QuickBooks Online or RoboLabs — and for each: the company at the other end, its status as last recorded (active, paused, or needing reconnection), when it last synced, and whether automatic export is on and since when; also which packages could be connected and why any is not offered. It is the workspace's own record of its accounting integrations and the only tool that reports them, so whether a workspace has an integration, which one, and whether documents can be exported to it are known from this and from nothing else. Connected-but-needing-reconnection and never-connected are reported as different states. It reads invoiso's own records and does not contact the package. update_accounting_connection changes a connection; export_to_accounting sends documents.
get_accounting_connections
List the current user's addresses for this workspace, and whether each is confirmed. Mail is accepted only from confirmed ones. The sign-in address is here and cannot be removed from this side — it changes at the account.
list_sending_addresses
List this workspace's bank connections (Salt Edge, Enable Banking or Finverse), each with its status, consent expiry, accounts (masked identifier, currency, balance, lines imported) and when it was last pulled successfully. Read-only. The user connects a bank in Settings › Bank reconciliation, where they log in at their bank.
get_bank_connections
List imported bank transactions still awaiting a decision, newest first, in both directions: those the matcher proposed a document for but did not record, and those it could not match at all. Each carries the invoice or bill it may belong to, a confidence and the reasons. `amount` is in the currency the bank sent; `baseAmount` is the same transaction in the workspace's reporting currency at the rate pinned on import — use it to compare lines across currencies; it is null, never zero, when no rate covered the date. For every line in the feed, including matched and ignored ones, use list_statement_lines.
list_unreconciled_payments
List bills with an open "was this already paid?" question — raised either because the document itself looked paid (a PAID stamp, a card slip, "balance due 0.00") or by a person with raise_payment_question. Each gives the supplier, reference, date, what is still outstanding, who raised it and, for a detected one, the exact words read and a confidence; that reading can be wrong either way, so show it to the user. An open question changes nothing on the bill until it is answered with answer_payment_question or closed with dismiss_payment_question. Read-only.
list_payment_questions
List the workspace's own chart of accounts — the codes invoices, expenses and stock post to — by code, name, type and subtype. Set `includeProvider` (with `provider`) to also read the connected package's chart and tax codes; that is a live call to the package, so use it only when the question is about *their* accounts. `proposeMatches` adds a proposed link from each of our accounts to one of theirs with a confidence, and `useModel` has a language model take a second pass at the ones a name match could not settle. **A proposal is never applied**: linking is update_accounting_connection's `accountLinks`, after the user has agreed. Refused where accounting export is not available to the workspace (plan or deployment).
list_ledger_accounts
Check whether an address on the Peppol / InvoiceNow network is registered to receive invoices — the check the contact form runs when a customer's Peppol ID is typed in. Use it when a customer gives you an address, before saving it on the contact, or before send_einvoice: a wrong identifier otherwise only fails at the moment of sending. A registered company name comes back only when the network's access point supplies one and is often blank, so confirm the identifier with the customer when there is none. Answers from this workspace's recent lookups unless `recheck` is true. A directory that cannot be reached is reported as exactly that, never as unregistered. Refused unless e-invoicing is available to this workspace (its country and the add-on).
lookup_peppol_participant
Check whether a bill is a duplicate — whether this workspace already holds another bill matching it on supplier invoice number, supplier, amount or date. Answers 'is this a duplicate?', 'have I already got this invoice?', 'was this bill entered twice?', 'how many bills share this invoice number?'. Pass an expenseId to check one already filed, or at least the supplier or the invoice number (plus amount, tax, date and currency if known) of one about to be entered. It compares bills, not payments — list_document_payments shows what was paid against a bill. Read-only: it warns and changes nothing.
check_duplicate_expense
Read who this workspace legally is: legal name, country, registration number, tax registration number and date, GST status and supplies band, IRAS letter date, accounting timezone, payment QR identifiers, structured postal address, company bank accounts, bank payment-file export profiles, and how far setup has got. This is the legal entity whose country decides which tax rules apply and whose timezone decides which day a document is accounted on — not the invoice issuer block printed on documents (get_workspace_settings); where they differ, this one is the business. Change it with update_organisation; bank accounts with add_company_bank_account, update_company_bank_account and remove_company_bank_account; export profiles with set_dbs_export_profile. Read it first when somebody wants to set up the workspace or check the company details. Read-only.
get_organisation
Convert an amount from another currency into the workspace's reporting currency at the exchange rate held for a given date — the rate selection a document dated that day uses, not today's rate. It takes a rate dated on or before that day, preferring one entered by hand, then the European Central Bank's, then one implied by a settlement, and the closest date within each; only if none precedes the day does it use the nearest later one, and never one more than 92 days away. When no rate is in reach it says so and converts nothing. Read-only.
convert_amount
List the open approval requests: every bill and invoice waiting for approval, who it is still waiting for, who has already approved, and who asked (blank when it was asked automatically). Use it for 'what is waiting on me?' and 'why has this not been confirmed?'; pass `mine: true` for only the requests that name the signed-in person and that they have not answered. Reading only. The `requestId` is what approve_document and reject_document take.
list_approvals
Report whether this workspace can send and receive e-invoices over the Peppol / InvoiceNow network, and what it has left: whether e-invoicing is available for its country, whether it holds the e-invoicing add-on (needed for sending and receiving alike), how many of this period's included e-invoice transactions are used and left (sent and received count together), when the period ends, and whether the workspace's usage balance can carry sending and receiving past them. Pass `invoiceId` to also check that invoice or credit note against the network's rules — ready, or the exact list of what to fix — and see its last transmission attempt. Use it before saying e-invoicing is unavailable, before offering to send, and when asked how many e-invoices are left or why a send was refused. Reading only; it changes nothing.
get_einvoicing_status
List uploaded files — dropped on the Uploads page, emailed in, read from a connected mailbox, or uploaded with `create_document_upload` — and what each became, in the words Expenses → Uploads uses: **Waiting**, **Reading**, **Filed**, **Conflict**, **Pages of one bill?**, **Joined**, **Question**, **Duplicate**, **Nothing filed**, **Rejected**. Use it when the user mentions uploads, uploaded files, attachments, scans or the files; to find ids for `manage_expense_document`, which processes and deletes them; and to answer "why hasn't my bill appeared". By default only files that have not filed are returned; pass `outcome` for one kind, or `includeFiled: true` for all. The counts per outcome cover every file whatever the filter, but rows are chosen from the most recent files only (four times `limit`, at most 200). A filed file's figures are on the expense or invoice it produced (`list_expenses`, `list_invoices`). A member with restricted access sees only the files they sent in.
list_expense_documents
Report whether invoices and expenses have reached the connected accounting package (Xero, QuickBooks Online or RoboLabs), from invoiso's own record of each export. With no ids it summarises: how many documents exist at the provider's end, how many whose last attempt was refused, and the provider's refusal messages **grouped**, each with a count and up to three example ids — 'how many failed to export and why' in one call. With `documentIds` (invoices) or `expenseIds` it gives each document's state: exported (with the provider's id), failed with the provider's message, no export history, and whether a background export is about to send it. Whether a document was edited after it was exported ('stale') is not judged from ids — read the document to compare. It is the same record the export badges and the list's export filter read.
get_export_status
List the folders directly inside one folder of the workspace's connected Google Drive, with their names and ids, to find the folder update_drive_connection should watch. Omit `parentId` for the top of My Drive; pass a folder id from an earlier call to go one level down. Reads folder names from Google Drive and changes nothing there. Needs Google Drive documents on the workspace's plan and an active connection.
list_drive_folders
One recurring schedule — customer, cadence and send time, payment terms, how many invoices it has issued and its next date — with the outcome of each run, newest first: issued (with the invoice id), not issued because its date fell in a closed accounting period, saved as a draft waiting for approval, skipped because the schedule was cancelled at the time, being issued right now, or failed with the reason recorded. Use it to answer 'why was this customer not billed in March'. Returns 50 runs at a time; when older runs exist the answer ends with a `before` value — pass it back to get the next 50.
get_recurring_invoice
Get one e-signature document: its status, page count, every signer with their progress, and the fields placed for each. The signer ids here are what `remove_document_signer`, `place_field` and `resend_signing_invite` take.
get_document
Fetch one expense in full, including its line items when the document was itemised.
get_expense
Get one invoice or credit note in full: every line item, the computed totals (subtotal, discount, tax by rate, total), the files kept to send with it and, if it was sent over the e-invoicing network, its latest delivery status. Payments recorded against it are not included — `list_document_payments` has them.
get_invoice
Read the workspace's saved invoice defaults: the issuer ('from') details, default currency, tax rate and whether prices include tax, language, notes, and the invoice numbering format. Use it to see what a new invoice will inherit, or whether the issuer details have been filled in.
get_invoice_settings
One product's stock in full: quantity on hand, average cost, stock value and cost of goods sold under the workspace's cost method, plus its movements in and out with what each cost (the text lists up to 40; the structured result carries every movement with a running balance). Use it to explain how a figure was arrived at. Every cost appears twice: in the product's own cost currency and, under a `base…` name, in the workspace's reporting currency at the rate on the day of the movement. Pass productId or sku.
get_product_stock
Read every workspace setting: business details — including **the company address** printed on invoices — and tax details (country and registration numbers, resolved from the organisation record); invoicing — numbering, default currency, tax rate and language, **which invoice template and design** are in use, the **branding** (whether a logo is set, accent colour, typeface), the bank details customers pay to, and how invoices and payment reminders are emailed; **payment reminders** (internally called dunning) — whether overdue invoices are chased at all, and the courtesy, repeat and stop days; expenses (categories and line extraction); inventory and stock; bank matching; cost and revenue centres; reimbursements; autonomy; closed periods; and the default ledger accounts. Ask this for “what is my address” and “which template am I using”. Turning reminders off for one customer is `update_contact`, not this. Read it before changing anything, before assuming a default, and before telling anyone a feature is unavailable.
get_workspace_settings
Show whether this workspace watches a Google Drive folder for documents: which account and folder, whether it is active, paused or needs reconnecting, when it last looked, whether it was asked to read what was already in the folder, and the **autonomy level per document kind** (expense, income, statement, unknown) — what decides whether a bill read from the folder is filed or left for someone to confirm. Only files added to the folder (or any folder inside it) after it was chosen are read, unless reading what was already there was asked for.
get_drive_connection
Every bank account on file for one supplier — the destinations a payment file may send money to, plus any that have been retired. Says which is the default, how each was confirmed, and whether a payment file can actually be addressed to it. Retired accounts are kept so an old payment can still be explained; they are never deleted.
list_supplier_bank_accounts
List bank statement lines in this workspace, newest first — matched, ignored and still-unmatched alike. Use it to answer questions about the reconciliation queue: how many lines are unmatched, what the matcher settled on its own, what a person confirmed. For the lines actually awaiting a decision right now, `list_unreconciled_payments` is narrower and cheaper. suggest_statement_match proposes what each line pays, and confirm_statement_match accepts a proposal.
list_statement_lines
List the budgets set against cost and revenue centres, with how much of each has been spent or earned and each budget's `budgetId` for `manage_budget`. Every figure is in the workspace's reporting currency. A budget's amount is **pooled** across the centres it names, and a budget naming a parent counts everything beneath it — so overspending on one department and underspending on another can still be within the total. Two budgets may watch the same money; they are independent measurements, not a partition, so they do not add up. `remaining` is negative when a budget is over.
list_budgets
List this workspace's contacts — customers, suppliers and people who pay for things on the business's behalf — with each one's id, roles, tax id, what has been invoiced to and bought from them, whether they are archived, and whether they get payment reminders. Use it to find a contact's id, to check whether a contact already exists, to answer who the business deals with, or to see who is not chased about overdue invoices: `paymentReminders` is `never` for a customer switched off and `always` for one chased whatever the workspace default; update_contact changes it. A contact billed in one currency is reported in that currency; one billed in several has no single-currency total, so `invoicedBase`/`expensedBase` give it in the workspace's reporting currency, converted at each document's own date, and `unpinnedDocuments` counts documents left out for want of a rate. One company can be both customer and supplier, so `role` narrows rather than partitions. Reading only.
list_contacts
The cost centres, revenue centres and departments this workspace attributes income and expenses to — its analytical accounts. Returns each centre's code, name, the parent it sits under and how deep it is, so a tree of Division → Department → Team can be read back. Archived centres are included and flagged: an archived centre still holds the money attributed to it in past reports, it is only hidden from the pickers. Use this to find the `accountId` that `split_line_across_centres` needs.
list_cost_centres
The categories this workspace files expenses under. They're configurable, so never assume the defaults — read them before setting a category.
get_expense_categories
List recorded expenses, newest first by default. Amounts are given twice: `amount` in the bill's own currency and `base.amount` in the workspace's reporting currency, converted at the rate pinned to that bill's date — the reporting-currency figures are the ones that add up across bills. The totals line covers everything that matched, not just the page, and says how many bills had no exchange rate and were left out. Use this to answer anything about spending, and to find an expense's id before getting, updating or deleting it. Filters combine and sorting happens in the database, so "the biggest thing we bought in March" is one call with from, to, sortBy=total and limit=1.
list_expenses
List the bank statements imported into this workspace, newest first, with the period each covers and any warnings from reading it.
list_statement_imports
List invoices and credit notes that match filters, one page at a time — to find an id, show which documents are involved, or pick out specific ones such as the three largest unpaid invoices (status=open, sortBy=total, limit=3; filtering and sorting happen in the database). For totals by month, customer, category or ageing use `run_report`, which answers in one call. Each row has `total` in the invoice's own currency and `baseTotal` in the workspace's reporting currency, converted at the rate pinned to its issue date; only the reporting-currency figures can be added together. The totals line covers every match, not just this page, and says how many invoices had no exchange rate and were left out.
list_invoices
The freight, duty and other charges spread across purchases in this workspace, newest first. Each carries `amount` in the currency it was invoiced in and `base.amount` in the workspace's reporting currency, converted at the rate pinned to the date it was incurred — the reporting-currency figures are the ones that add up. Voided charges are excluded unless asked for; a voided charge is in no figure at all.
list_landed_costs
The re-splits that have been run against this workspace's cost and revenue centres — when, over what range, how many lines each changed, how many it left alone because they were in a closed period or split by hand, and whether it can still be undone. A run too large to record what it replaced cannot be undone, and says so.
list_recompute_runs
List the payment file formats one of the workspace's own bank accounts can produce, and where each file is uploaded. Use it first when preparing a payment file for supplier bills or reimbursements. `debtorAccountId` is the account the money leaves from — call with no argument to be told which accounts exist (list_company_bank_accounts lists them too). The formats depend on the account's bank, worked out from its SWIFT/BIC and never from its name: a bank's own format is offered only for that bank's account, and an account with no BIC gets only the generic ones. A format invoiso cannot produce yet is listed with the reason rather than hidden, so 'my bank is not here' and 'that file cannot be built yet' can be told apart. Next step: preview_payment_file.
list_payment_file_formats
The product catalogue with live stock: quantity on hand, average unit cost, stock value and cost of goods sold. Every cost is given twice — in the product's own cost currency and, under a `base…` name, in the workspace's reporting currency, each lot converted at the rate on the day it was received, which is what makes the reporting-currency figures addable across products. `unconvertibleUnits` counts what no rate could price and is left out of the workspace total. Use it for anything about what's in stock or what it's worth. Filtering, ordering and paging all happen in the database, so "what are we lowest on" is one call with sortBy=onHand and sortDirection=asc. Stock arrives with confirmed bills and leaves with issued invoices; record_stock_movement is only for changes no document explains.
list_products
The recurring invoice schedules in this workspace, except archived ones: for each, its name, customer, cadence and send time, status, how many invoices it has issued, its next date, and whether each new invoice arrives as a draft, an issued invoice, or an issued invoice emailed to the customer. Use it to answer what will be billed automatically, or why a customer was or was not invoiced; get_recurring_invoice gives one schedule's run history and create_recurring_invoice sets up a new one. A pending schedule was set up by the assistant and bills nothing until the user starts it.
list_recurring_invoices
List e-signature documents — drafts, documents sent for signature, and completed, declined or voided ones — newest first by default, with each one's status and how many signers have signed. Use it to find a document's id or to see what is still waiting for signatures; `get_document` returns one in full. Uploaded bills and receipts are not here — `list_expense_documents` lists those.
list_documents
Where this workspace holds stock — its own premises, sales channels and consigned stock — with how many products and units are at each, which location is the default, which are archived, and which are counted by whoever holds the stock rather than by invoiso. Use it to answer "how much do we have in Manchester", or to find the location id that record_stock_movement and list_stock_movements take. If the workspace does not track stock by location it says so and lists nothing: all stock is then counted as one figure.
list_stock_locations
The stock ledger: every unit in and out, across products or within one, at which stock location, with what moved it. Use it to explain a quantity — when stock arrived, which invoice took it out, what was written off. For one product's full costed history with running balances, use get_product_stock instead; this one is for questions that span products or a date range.
list_stock_movements
Every support ticket this workspace has raised, with its status and when it last moved. Use this before offering to raise a new one — the user may already have reported the same thing.
list_support_tickets
List the standing rules that split document lines across cost centres, revenue centres or departments as documents are filed, with every dated version of each: its dates, whether it is enabled, its position (`priority`, lower wins), its conditions and the percentages it splits to. A document is split by the version valid on its own date, so a late bill dated into a past period gets the rule that was in force then. `manage_split_rule` creates and changes rules; `preview_recompute` and `recompute_splits` re-split documents already filed.
list_split_rules
Where the company sends money it owes one of its own people. Two kinds, and they are not interchangeable: bank accounts, which a payment file can be addressed to, and payout instructions — a PayNow, PromptPay, DuitNow, UPI, PIX or PayID code — which one cannot, and which exist so somebody making the transfer by hand knows where it goes. Lists the entries in use (retired ones are left out), says which bank account is the default and how each was confirmed, and flags the entries a payment file will ignore.
list_employee_payout_accounts
List the most recent messages (up to 100) that reached the workspace's inbound address and were held instead of filed — usually because the sender did not authenticate as an address on a member's account. Each shows the claimed sender, the address or domain it actually authenticated as (a mismatch can mean a forged From header), the subject, the attachment names, the reason it was held and when it arrived. invoiso stores only these details, never the body or attachments; the message itself remains in the intake mailbox, which is how `decide_held_mail` with `trust-and-file` can still file it.
list_held_mail
Show whether this workspace is reading a mailbox, which one, and what it may do with what it finds. Covers both connectors — Gmail and a plain IMAP server — and gives for each: the address, whether it is active, paused or needs reconnecting, when it last scanned, how far back it has been told to reach, and the **autonomy level per document kind** (expense, income, statement, unknown), which decides whether a bill it reads is filed or left for somebody to confirm. Answer questions about mail ingestion from this rather than from the expenses it produced: an empty inbox and a paused connection look identical from the expense side.
get_mail_connections
One charge in full, with the purchases it covers and — unless you turn it off — **what it actually restates**: how much of it raises the value of stock still on hand, how much of it lands in the cost of goods already sold, and how far back that reaches. Those figures are in the workspace's reporting currency and are a replay of the stock ledger with and without the charge, so they are the same numbers the impact panel shows. The replay costs a little work; pass `includeImpact: false` if all you need are the charge's own details.
get_landed_cost
The pay-now links issued for an invoice: which are live, which were voided or superseded, the URL a customer would open, and the reference the payment will quote. Use it to answer 'has this invoice got a payment link' and to give somebody the link again without issuing a second one. Each amount is in the currency the link was issued in, **not** the workspace's reporting currency — a link is an instruction to one payer about one invoice, so nothing here adds up with anything else.
list_payment_links
List payments already recorded that this bank line could be: same direction, same amount to the cent, dated within five days of the line, attributed to a document, not recorded as paid personally by someone, and not already attached to another line. Use it on a line that matches no document because the bill or invoice was settled by hand — the payment already exists, so the line is the bank's view of it, not a missing bill. Read-only; attach_statement_line_to_payment confirms one.
list_payments_for_statement_line
List money-out bank transactions that look like a purchase with no bill or receipt on file, so the user knows which documents to go and find. Only unmatched or ignored lines are considered, and a line is listed only when a reason fires: it reads as a card purchase, or its payee matches a supplier you have filed bills from or a payee on earlier matched bank lines. Not listed: bank charges and interest, payroll, tax, transfers between own accounts, loan repayments, card settlements, transfers naming a person with an open reimbursement balance, lines the matcher already proposed a document for, lines dated in a locked period, lines dismissed with dismiss_missing_bill, and amounts under 20 in the line's currency unless the payee is a known one. Each row gives its reasons and, where one is recognised, the probable supplier. Read-only.
list_missing_bills
invoiso ChatGPT Plugin FAQ
How the directory, categories and Discoverability Score work.
Read the methodologyHow do I improve invoiso's ChatGPT Plugin discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
What are invoiso alternatives on ChatGPT?
As of 2026-11-04, invoiso competes with Accountable, Agenix Invoice, AgentCollect, Aikount, Akaunting, ALL-FOOD Import Calculator, AuntBird Practice Management, B2B.nu and 84 more in ChatGPT Accounting & Bookkeeping, ranked by public Discoverability Score.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.


