Transaction Attachments

Flowtly Editorial Team24 minUpdated

The Transaction Attachments tab in Flowtly is a centralised space for storing and managing files related to financial transactions. This feature ensures that all payment records, invoices, and supporting documents are correctly linked, providing transparency and compliance in financial operations. This functionality also allows users to manage documents and files separately from specific transactions.

This tab provides a structured overview of all uploaded attachments related to transactions. The main functionalities include:

  • Viewing all transaction attachments in one place.
  • Identifying and Managing unlinked (awaiting) attachments.
  • Uploading new attachments manually.
  • Recording a cash cost that has no document to upload.
  • Editing and deleting existing attachments.

All attachments are sorted by date. Under each date all transactions received on this date will be displayed. Each attachment is displayed with the following details:

  • File Name – The name of the uploaded attachment (e.g., invoice, receipt). This is the filename as you uploaded it; see Document number and file name below.
  • Counterparty – The counterparty associated with the transaction is visible below the file name.
  • Amount – The transaction amount for reference.
  • Related Month/Received At – Shows the financial month when the transaction was processed and received.
  • Attachment – File linked to the attachment.
  • View Option - Allows to preview attached file.
  • Edit & Delete Options – Allows modification or removal of attachments.

Which files open in the preview

Viewing a file opens it in place when its format is one that displays as a fixed page or picture — a PDF, or an image in a common photo format such as JPEG, PNG, GIF, WebP, HEIC/HEIF or TIFF. That covers the invoices, receipts and photographed documents that make up nearly everything stored here.

Any other format is downloaded instead of displayed, and opens in whatever application on your computer handles it. This includes file types that can carry instructions as well as content — vector images and web pages among them — which are never rendered inside Flowtly, whoever uploaded them. The file itself is untouched and complete: only where it opens is different.

Documents flagged for attention

A document in the list can carry one or more short labels naming what still needs doing on it, so the list itself shows where the gaps are rather than making you open every document to find out. The labels cover things such as a missing net amount, a missing related month, a missing counterparty or tax number, and a document not yet assigned to a project.

One of them concerns how a cost was shared out between projects:

  • Incomplete split — no exclusions marked appears on a cost document whose project split does not add up to the document's net amount, where nothing on the split accounts for the difference — so part of the invoice is charged to nobody. Either give the missing amount to the projects that should carry it, or strike the projects that should carry none of it. A struck project is itself an explanation, so a split left short that way is not flagged. See Splitting a Cost Across Projects by Attribute for both actions.

Another concerns how a document was paid:

  • Incomplete payment — linked payments do not cover the amount appears on a cost document whose linked payments add up to less than its amount. When the shortfall is real, link the missing payment. When it is an expected difference — a bank's exchange rate or fees, for example — set a tolerance or accept the difference, as described in When the payments differ from the invoice below.
  • Overpayment — linked payments exceed the amount by more than the tolerance is its mirror image: the linked payments add up to more than the document's amount, by more than the tolerance allows. Check that no payment was linked twice or to the wrong document; when the difference is expected, accept it in the same way.

A third concerns whether the document's figures agree with each other:

  • Amounts disagree — the net, gross and invoice lines do not add up appears on a cost document whose figures contradict one another: a net amount larger than the gross, or invoice lines that add up to the gross where they should add up to the net. It usually comes from an import or a scanned document rather than from typing. Check the net and gross against the document itself, and if the lines were entered as gross amounts, convert them to net. Until the figures agree, the document does not count as complete.

A label is a prompt rather than a block. The document stays in the list, keeps its file and its links, and can be dealt with in any order.

Adding and Managing Attachments

To upload a new attachment:

  • Click on the "Add Attachment" button in the top-right corner.
  • Provide the name.
  • Select the related Counterparty from your counterparty directory.
  • Provide the amount of attachment.
  • Select currency.
  • Choose the file from your computer and upload it. The same invoice file cannot be uploaded twice: a second upload of it is refused, and the upload window says why.
  • Provide the date when you received attachment.
  • Provide the related month of attachment.
  • Click "Save" to finalise the attachment adding.

Adding a cash cost with no document

Some spends never come with an invoice to upload — a guide, a taxi, a meal paid in cash on the ground. Add cash cost records one of these as a deliberate, explicit choice rather than as an upload that came back empty:

  • Click "Add cash cost" next to "Add Attachment".
  • Provide a short name describing the spend (e.g. "Taxi to airport").
  • Select the related Counterparty.
  • Provide the amount, currency, date received, and related month.
  • Optionally set a due date and add a note.
  • Click "Add cash cost" to save it.

The record this creates behaves like any other transaction attachment from here on — categorise it, assign it to a project, and tag it the same way you would an uploaded invoice. It is marked as not expecting a document, so it never shows up as a missing-document problem, never appears on the payment/wire-preparation list (no payment will ever arrive for it, since the cash already changed hands), and never surfaces as overdue. In the attachments list it carries a "Cash cost — no document" label so it reads as a deliberate cash spend rather than an incomplete upload.

Managing Awaiting Attachments

Awaiting attachments are files that have been uploaded to Flowtly but have not yet been assigned to a transaction. These may include:

  • Invoices uploaded before the related transaction was recorded.
  • Documents that were added manually but need to be linked to the correct expense.
  • Files that require verification before they can be assigned.

To ensure financial accuracy, these attachments should be matched with their respective transactions.

Creating a tag while tagging a document

When you tag a cost document and the tag you need does not exist yet, type its name in the tag picker. Administrators are offered Create '<name>' in <group> for each tag group, and choosing one creates the tag in that group and attaches it to the document in one step. If your search matches tags in some groups, only those groups are listed, with their create entries; a name found nowhere can be created in any group. Other roles pick from the tags that already exist.

The search matches a tag's name, its short label and its description, and ignores letter case and accents, so typing Oplaty finds a tag named Opłaty eksploatacyjne.

Adding a note to a document

The Note section of a document's panel saves itself, like the other fields in the panel: type the note and click outside the field. There is no Save button. A tick confirms that the note was saved. If it cannot be saved, the text you typed stays in the field with the reason beside it, and the retry button next to it saves the same text again. Emptying the field removes the note.

Spreading a cost over an accounting period

A document can carry an optional accounting period, for a cost that covers more than one month, such as a yearly subscription. It has its own Related period section in the document's panel, directly below Details. Open the section and set Period from and Period to: each date is saved as soon as you choose it. While a period is set, budget views spread the cost evenly across each of its months, and the section shows the dates even when it is closed. A start date after the end date is not saved, and the reason appears under the fields. A bank transaction has no accounting period, so its panel has no such section.

The Details section of a document's panel holds the Counterparties and Related month fields. A bank transaction's panel shows the same pair. On a document both fields are optional, so a document can stay in the panel without them while it is still being checked. Manage counterparty, under the two fields, opens the selected counterparty so you can edit its name, roles and defaults; it is unavailable until a counterparty is selected. If you can manage counterparties, the counterparty's name at the top of the panel opens the same editor. To add a counterparty that does not exist yet, type its name in the counterparty field and choose Add counterparty (see Counterparties).

An incoming invoice is a purchase, so its counterparty needs the supplier role. When the counterparty has no supplier record, a note under the two fields names it and asks you to add the supplier role to that counterparty. Until you do, supplier searches will not find it.

What accepting a supplier suggestion will do

When Flowtly suggests a supplier for an incoming invoice, the suggestion card says what accepting it will do, before you accept. The sentence is worked out from your counterparty list, and says one of these:

  • Accepting links this invoice to a supplier that already exists. The supplier's own record is not changed.
  • Accepting gives a counterparty that is already a client the supplier role and links the invoice to it. No second counterparty is created for the same party.
  • Accepting creates a new supplier under the name on the document, and links the invoice to it.
  • Accepting will fail, for one of three reasons, which the card names:
    • an existing counterparty already has that name or that tax ID. Use Edit suggestion to link that counterparty instead, or merge the duplicate first;
    • the matching client cannot be given the supplier role automatically, because its supplier details are tied to another, hidden counterparty record. Contact Flowtly support to resolve it, or use Edit suggestion to pick a different supplier;
    • the invoice carries another company's tax ID, not the tax ID of the client the card names. Use Edit suggestion to pick or create the supplier with the tax ID on the invoice.

A card that will fail is shown as a warning. Without it the card would look like one that can be accepted, and the refusal would only appear after you click Accept.

The sentence is worked out each time you open the document, not when the suggestion was made. A document that waited in the inbox while somebody created the supplier by hand therefore says that accepting links it to an existing supplier, rather than that it creates a new one. Once the suggestion has been accepted, the card states what it actually did instead.

Accepting also copies across what the document said about the supplier. A supplier created this way is given the name, tax ID, address and phone number read from the invoice, the cost group the card named, and the bank account stated on the invoice. The bank account is only ever filled into an empty slot: when the counterparty already has an account on file, the one on the document is ignored rather than replacing it, so a document cannot quietly change where money for that supplier goes. The same holds when accepting links the invoice to a counterparty that already exists, or gives an existing client the supplier role — each gains the invoice's account only if it had none.

Payments and contract linked to a document

In the Related transactions section, each payment linked to the document is listed with its description, date and amount, followed by Open and Unlink. Unlinking a payment takes effect straight away, without a confirmation.

The Categorization section shows the document's contract above the contract picker, with Open and Unlink. Unlink removes the contract from the document. Choosing a different contract in the picker replaces it. When a document has a contract, a separate Contract section also shows it, with Open only. While that section is closed, its row names the contract.

Splitting one invoice line across projects

A project split can be set for the whole invoice, or for a single line of it. A line's own split is for the case where one line covers work for more than one project, such as a fit-out line shared between two tenants.

On the line, use + project to add a project. The first project takes the whole line. Each project added after it starts with what is left of the line's net amount, and every project's amount can be edited. The amounts must add up to the line's net amount, and the line says so when they do not. With two projects that add up to the line, changing one amount moves the difference to the other, so the line keeps adding up. Removing a project's row takes it out of the line's split.

A line's net amount is the amount on the line, or its quantity times its unit price when the line has no amount. The exception is a document whose lines add up to its gross rather than its net, which happens when lines were entered as gross amounts. There, the document's net amount is shared out over the lines in proportion to their amounts, so the lines' net amounts add up exactly to the document's net.

A line's split shows the same everywhere on the invoice. The whole-invoice split lists the line's projects read-only, marked Set on line #n, edit it there, and still counts them in its total. A line with no project of its own shows how the whole-invoice split would share it out.

A line with a project of its own keeps its whole net amount at line level. That holds for a line given to one project, and for a line split across several projects even when one of its rows is struck or its amounts fall short of the line's net amount. The whole-invoice split never shares that line's money out to other projects a second time: it covers only what the lines leave.

The whole-invoice controls replace only the whole-invoice rows, and leave a line's own split alone:

  • the buttons that fill by an attribute or by a cascade, and Redistribute to the rest, share out only the net amount the lines do not already hold. When the lines hold all of it, a fill says the lines already hold the whole net, so there is nothing left on the invoice to split. Redistribute to the rest is offered only when it would change an amount;
  • Fill by meter consumption works out its amounts from the readings, as it does on any invoice;
  • Clear all removes the whole-invoice project rows only, and asks you to confirm that the lines keep their own.

The total of the whole-invoice split counts a line given to one project at its full net amount, so a split that adds up does not show that line as missing. A gap inside a line's own split, from a struck row or amounts that fall short of the line, stays visible in the total: that money is deliberately charged to nobody.

The header of the Categorization section counts the lines that have a project, either their own or one from the whole-invoice split, or a tag of their own, for example 2/5 lines with a project or line tag. Tags set on the whole invoice do not count toward it.

For filling a whole-invoice split from attributes or meter readings, see Splitting a Cost Across Projects by Attribute.

How the linked payment is categorised

When the payment linked to a document carries its own project split or tags, the Transaction allocation section shows them. Each project has one row, with its share and its amount in the payment's currency, and the payment's tags follow. The section is read-only. Open transaction goes to the payment, and appears only for users who can open bank transactions. While the section is closed, its row gives the number of projects in the payment's split, for example 2 projects, once the payment has loaded.

Deleting a document from its panel

Delete is in the bar at the bottom of a document's panel, below all its sections.

Document number and file name

An uploaded cost document carries two separate identifiers, and it is worth knowing which one you are looking at.

  • The file name is the name of the file you uploaded, or the name you typed when adding the attachment by hand. It is the name the attachments list shows for the document, so a file you saved as Figma_Invoice.pdf is listed under that name.
  • The document number is the invoice or receipt number printed on the document itself. It is read from the document automatically when one can be found, and it is kept separately from the file name.

Because the two are held apart, a filename that means something to you — the supplier, the service, the period — survives the upload, while the document number remains available to the places that need the number rather than the label.

Where the number is what matters, the number is what is used. Accountancy exports and the purchase-document fields they produce use the document number, and cost rows in budget and P&L reports are labelled with it as well. Where no document number could be read, those places fall back to the file name, so a row is never left without a label.

Search covers both. Typing part of an invoice number finds the document even when its file name looks nothing like that number, and typing part of a file name finds it too.

Tags matched automatically against a cost document are compared with both identifiers, so a descriptive file name can bring in a tag that the document number alone would not have matched.

Attachments added before the document number had a field of its own are listed under that number rather than under a file name, and they are not relabelled retrospectively. A long-running list can therefore show a mix of the two. Editing an attachment lets you set the name you want on any individual row.

A document with only a gross amount

Some documents arrive with a gross amount and no net amount, for example a receipt that only prints the total. The Details section then shows a VAT rate field under the net, VAT and gross amounts, with the hint Incomplete. Pick a VAT rate to work out net and VAT. The rates offered are those of your organisation's country, including exempt (zw.). Choosing one saves it straight away: Flowtly works out the net and the VAT from the gross, fills in the net, and the field goes away. The document then no longer counts as missing its net amount.

You can still type the net yourself instead, if the document states it; the VAT rate field disappears as soon as a net is entered. If the document's lines add up to its gross rather than its net, Flowtly then asks you to convert the lines to net amounts. If the rate cannot be saved, the field returns to empty and says so.

How a document's line amounts are shown

Each line of a cost document shows its money exactly as the document states it, and never fills in what the document left out.

  • With a quantity, a unit price and a total, the line reads quantity × unit price = total.
  • When the document gives no quantity or no unit price, the line shows the total on its own, with the quantity beside it when that is known. A multiplication with a missing value would look like arithmetic that was never done.
  • A missing amount reads No amount. It is never shown as zero, so a line the document did not price looks different from a line that genuinely costs nothing, which shows 0.
  • When the three values do not add up, the line shows ≠ in place of =. The line's editor holds exactly the values shown, so opening it is the way to correct the one that is wrong.
  • Amounts are shown in the document's own currency. Where a payment's Categorization previews the lines of the invoice it settles, they stay in that invoice's currency: an invoice in dollars is previewed in dollars, not as the same figure in złoty. Nothing on these lines is converted.

Closing a credit note that will never be paid

A credit note (korekta) carries a negative amount. No money leaves the account for it — it is netted as a discount against the next invoice — so no bank transaction will ever arrive to match it. Left alone, such a document stays in the ledger looking unpaid indefinitely.

On a negative document the panel offers No transaction to be expected for this document in place of the payment action. Choosing it closes the document without inventing a payment: nothing is created, nothing is reconciled, and the document stops being counted as outstanding. The reason you give is shown afterwards where the payment date would otherwise be, so the ledger reads as deliberately closed rather than blank, and Undo puts it back if it was set in error.

The action appears only on a document with a negative amount and no linked transaction. That restriction is deliberate: a positive invoice that will never be paid — a write-off, a duplicate, one fully offset by another document — is a different situation, and closing it this way would remove a real debt from the unpaid ledger.

When the payments differ from the invoice

An invoice is not always paid for exactly its stated amount. A supplier invoice in euros paid from a złoty account, for example, is converted at the bank's rate, and the bank's rate and fees can leave the linked payments a few percent above or below the invoice. Flowtly shows that difference rather than hiding it, and lets you decide when it is acceptable.

On an incoming invoice, the Related transactions section of the panel shows three figures whenever the linked payments do not match the invoice:

  • Invoice gross — the invoice's gross amount.
  • Linked payments — the total of the payments linked to it, in the invoice's currency.
  • Difference — the signed difference between the two, with its percentage of the invoice.

The figures stay visible however the difference is resolved. A tolerance or an acceptance clears the warning; it never changes an amount.

Setting a tolerance

By default, a difference of up to 3% of the invoice, above or below it, is treated as matching. An administrator can set a different margin under Settings → Advanced, in the Incoming invoices — completeness section: Payment difference tolerance takes a percentage from 0 to 20 and is saved when you leave the field. Leave it blank to keep the 3% check.

A difference inside the tolerance reads Within your tolerance of N% and is not flagged. A tolerance only ever removes a warning; it never adds one.

Accepting a difference

A difference larger than the tolerance, whether the payments fall short or exceed the invoice, is shown as a warning, with Accept difference beside it. Choosing it asks you to confirm the exact difference you are accepting and to give a Reason, such as the bank's exchange cost. The reason is required: Accept stays unavailable until you enter one, of up to 255 characters. Once accepted:

  • the panel records who accepted the difference and when;
  • the Incomplete payment or Overpayment label is removed from the document in the list;
  • nothing else is written — the invoice amount, the payment amounts, the exchange rate and the paid date are all left as they were.

Withdraw acceptance reverses it, and the warning returns.

An acceptance applies to the figures it was given for, not to the document as a whole. If the invoice amount is later edited, or a payment is linked or unlinked, the difference is open again: the panel says that the earlier acceptance no longer applies, the label returns if the payments fall short, and the new difference can be accepted afresh. If the tolerance later covers the difference, the panel shows it as within the tolerance instead.

Accepting and withdrawing are available to anyone who can edit the document. Accept difference is offered only while a difference is outside the tolerance and not already accepted.

While such a difference is unresolved, the Related transactions section is marked in red. In the panel, red marks a section with a problem Flowtly has detected, such as amounts that do not match, and orange marks one that is only incomplete, such as an invoice with no payment linked yet.

The payment carries the same warning. When an invoice a payment settles has amounts that do not match, including payments that exceed the invoice, the payment's status circle is red too, in the transactions list, on its mobile card and in its drawer, and the drawer adds the line Linked invoice: amount differs. Hovering over the circle in the drawer lists the amount mismatches found on the linked invoice. An invoice that is only incomplete leaves the payment's colour as it is.

The payment's drawer also shows the difference itself. In its Attachments section, each invoice the payment settles that has a difference gets the same panel as on the invoice, with the same three figures and, where it applies, Accept difference. A difference outside the tolerance marks the section in red. When one payment settles two or more invoices, each panel is captioned with its invoice's name, so you can tell which one the difference belongs to. Accepting it from the payment is the same acceptance as accepting it on the invoice.

Example use cases

  • Recording a cash spend with no invoice to upload — a guide, a taxi, a meal paid on the ground — via Add cash cost, so it is still categorised, project-assigned and reported on even though no document exists for it.
  • Linking a vendor invoice PDF directly to a specific payment transaction for audit and record-keeping.
  • Uploading a photo of a physical receipt for an employee expense, which will later be matched to the corresponding bank transaction.
  • Centralising all contractual agreements and payment schedules to ensure easy access and compliance.
  • Managing unlinked documents (e.g., early received invoices) until the related financial transaction is recorded in the system.
  • Accepting the difference on a foreign-currency invoice paid at the bank's exchange rate, so it stops being flagged as underpaid while its amounts stay exactly as invoiced and paid — or setting a tolerance so that small exchange-rate differences are never flagged at all.

Related tutorials

Related terms