KashFlow
AccountingIRIS KashFlow is British bookkeeping software for small businesses. Agents manage customers and suppliers, create and email invoices, convert quotes, record receipts and bank transactions, and apply credit notes.
What This Integration Enables
IRIS KashFlow is British bookkeeping software with a long history, and its supported API is SOAP. That single fact shapes everything a sensible automation does here. There is no query language, so filters are separate methods that cannot be combined: invoices by date range, invoices for a customer, unpaid, overdue, and most recent are five different calls. There is no partial update, so Update Customer, Update Supplier, and Update Invoice each take a complete object, and a field you leave out can be cleared while sending lines replaces every line. Customer and supplier listings return everything with no paging at all. FlowRunner handles the XML so nothing in a flow ever sees an envelope, but the semantics stay what they are, and pretending otherwise is how integrations against this product go wrong.
Agents maintain customers and suppliers, raise and email invoices, add and remove individual lines, record payments, convert quotes, book purchase receipts, move money through bank accounts, apply credit notes, and read the account overview, aged debtor, aged creditor, and balance sheet reports. Where an operation is not named here, Call SOAP Method reaches the rest of the service by name. The human-in-the-loop gate on this page is built directly on the whole record update, because that is the specific way this API destroys data while reporting success.
Without FlowRunner
With FlowRunner
Use Case Scenarios
-
Storefront sales into UK books, without clobbering the record
Orders from Shopify and card takings from Square become KashFlow invoices. For a genuinely new order the agent calls Create Invoice with its lines, picking each line's charge type from List Nominal Codes rather than a constant, because that code decides which account the line books to and a wrong one produces a clean invoice posted to the wrong place. For an amendment it never sends a partial object. It reads the invoice with Get Invoice, applies the change locally, and either uses Add Invoice Line and Delete Invoice Line for a line level edit or takes the header only route when the change is a date or a reference. The full replacement is reserved for changes that genuinely restate the document.
-
Quotes that convert exactly once
Sales sends quotes and some of them are accepted twice, in the sense that two people tell the finance mailbox about the same acceptance. The vendor evidently knows this, because Is Still Quote exists for no other purpose than to answer whether a quote has already become an invoice. The agent calls it before every conversion. When the answer is yes it calls Convert Quote To Invoice, records the reference in Slack, and leaves the quote in place rather than deleting it, so the original scope stays readable. When the answer is no it reports the invoice that already exists instead of raising a second one.
-
Aged debt in front of the people who can act on it
On a schedule the agent calls Get Report for the aged debtors view and List Invoices with the overdue filter, then reads Get Bank Balance across the accounts from List Bank Accounts. It writes the position into Google Sheets and posts the movements into a channel, with each overdue invoice linked to the customer record it belongs to. Because the filters are separate methods that cannot be combined, the agent runs them in sequence and assembles the view locally rather than pretending KashFlow can answer a compound question it has no method for.
Human-in-Loop Highlight
Update Invoice is the operation on this connector that needs a person, and the reason is that KashFlow does not have a partial update. The call takes the complete invoice. A field the agent did not include can be cleared, and sending a lines collection replaces every line the invoice had, so an update that means to change one price and instead sends one line does not modify the invoice. It reduces the invoice to that line. Nothing errors. The document comes back looking exactly like what was sent, which is the problem. So the agent reads the invoice first with Get Invoice, computes the difference between what exists and what it is about to send, and stops whenever that difference touches anything the workflow did not intend: "Updating invoice 10488 to change the unit price on line two. The object I would send drops lines three and four, which are still on the record, and clears the customer reference. Send as is, or use the header only route?" A person answers. For the routine case, where only a date or a reference changes, the header only path runs unattended, because a gate that fires on every save is a gate people learn to click through.
Agent Capabilities
44 actionsCustomers
8- List Customers Lists every customer on the account. There is no paging, so a large account returns a large answer.
- Get Customer Reads one customer, found by its identifier, its code, an email address, or a postcode.
- Search Customers Searches customers by free text across their details. The alternative to reading the whole register.
- List Customers Modified Since Lists the customers changed since a date, which is the only sync primitive the address book has.
- Create Customer Creates a customer on the account. Worth setting a code you control, because some methods address a customer by code rather than by identifier.
- Update Customer Updates a customer. KashFlow takes a whole customer object, so read the record first and send it back with your change applied.
- Delete Customer Deletes a customer from the account.
- Manage Customer Attribute Reads or sets the VAT number or currency of a customer, addressed by customer code rather than identifier because KashFlow's own methods work that way.
Suppliers
5- List Suppliers Lists every supplier on the account.
- Get Supplier Reads one supplier, by its identifier or its code.
- Create Supplier Creates a supplier on the account.
- Update Supplier Updates a supplier. KashFlow takes a whole supplier object, so read the record first and send it back with your change applied.
- Delete Supplier Deletes a supplier from the account.
Invoices
11- List Invoices Lists invoices by date range, by customer, or the unpaid, overdue, or most recent ones. Each of those is its own method, so only one filter applies at a time.
- Get Invoice Reads one invoice with its line items, by its printed number or by its internal identifier. The two are different things and mixing them reads the wrong record.
- Create Invoice Creates an invoice together with its line items.
- Update Invoice Updates an invoice. KashFlow takes the whole invoice including its lines, which is why this operation carries this page's human gate. A header only route exists for changes that do not touch lines.
- Delete Invoice Deletes an invoice from the account.
- Add Invoice Line Adds a line item to an invoice. The safe way to extend a document without restating it.
- Delete Invoice Line Removes a line item from an invoice.
- Add Invoice Payment Records a payment against an invoice. The pay account is a bank account's nominal code.
- Email Invoice Emails an invoice to a recipient. This reaches the customer and cannot be recalled.
- Attach File To Invoice Attaches a file to an invoice.
- Apply Credit Note To Invoice Applies a credit note to an invoice.
Quotes
5- List Quotes Lists the quotes, either all of them or those for one customer.
- Get Quote Reads one quote, by its number or its internal identifier.
- Convert Quote To Invoice Turns a quote into an invoice, optionally deleting the quote afterwards.
- Is Still Quote Reports whether a quote is still a quote or has already been converted. The idempotency check to run before any conversion.
- Delete Quote Deletes a quote from the account.
Purchases
5- List Receipts Lists purchase receipts, which are KashFlow's purchase invoices, either all of them, the most recent, or those for one supplier.
- Get Receipt Reads one purchase receipt with its lines.
- Create Receipt Creates a purchase receipt. KashFlow models a purchase with the same object as a sale, so the supplier travels in the customer field.
- Add Receipt Payment Records a payment against a purchase receipt.
- Delete Receipt Deletes a purchase receipt from the account.
Banking
5- List Bank Accounts Lists the bank accounts. The nominal code on each is what a payment's account field takes.
- Get Bank Balance Reads the balance of a bank account at a date.
- List Bank Transactions Lists the transactions on a bank account.
- Create Bank Transaction Records a transaction on a bank account. Money in and money out are separate fields rather than a signed amount.
- Delete Bank Transaction Deletes a transaction from a bank account.
Reference and Reports
4- List Products Lists the products on the account.
- List Nominal Codes Lists the chart of accounts, which is where a document line's charge type comes from. The source of truth a flow should read rather than hard code.
- List Projects Lists the projects on the account.
- Get Report Reads one of the reports: the account overview, aged debtors, aged creditors, or the balance sheet.
Advanced
1- Call SOAP Method Calls any KashFlow SOAP method by name, for the parts of the service this connector does not name individually. The credentials are added for you, and the method name is case sensitive.
Frequently Asked Questions
What can FlowRunner do with KashFlow?
FlowRunner agents can run List Customers, Get Customer, and Search Customers in KashFlow, plus 41 more actions.
Does connecting KashFlow to FlowRunner require OAuth?
No. KashFlow connects to FlowRunner with basic authentication (a username and password), no OAuth flow required.
Can KashFlow trigger a FlowRunner workflow automatically?
KashFlow doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.
Start building with KashFlow
Free plan, no card required. Connect in minutes.