FlowRunner
PricingContact
Theme
Start Free

KashFlow

Accounting

IRIS 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.

44 actions Basic auth available
KashFlow website Platform Documentation Capability data verified 2026-08-24
A scheduled sync runs against the orders and records that changed since the last pass
List Customers Modified Since catches address book changes without reading the whole register
Get Invoice reads the current invoice in full, including every line
The intended change is diffed against what came back, field by field and line by line
Add Invoice Payment records money that has already settled, which needs no full replacement
Any change that would rewrite fields nobody meant to touch is queued with the diff attached
A person reads the diff and approves before Update Invoice sends the whole object back

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

Sync jobs that quietly overwrite A partial update is written as if it were partial, and the fields left out are lost
Nominal codes chosen by habit A line's charge type is set from memory and the sale books to the wrong account without complaint
Whole registers pulled every run Customer and supplier lists are read end to end because there is no obvious alternative

With FlowRunner

Read, diff, then write Every update starts from the current record, and the change is shown as a difference before it is sent
Codes read from the chart Charge types and pay accounts come from the account list rather than from a hard coded constant
Incremental where the API allows it The modified-since read carries the address book sync, and date filtered reads carry the documents

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 processes routinely
Detects exception requiring judgment
Clear match Continues automatically
Ambiguous Routes to human via preferred channel
Human decides
Agent resumes with decision

Agent Capabilities

44 actions

Customers

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.