Invoice approval workflow

Flowtly Editorial Team10 minUpdated

Flowtly lets you route incoming supplier invoices through an approval step before they are paid. When approval is enabled, invoices wait in a pending list until an authorised person approves or rejects them. You can also skip approval and go straight to the Unpaid tab to select invoices and export a SEPA bank-transfer file for your bank.

Enabling the approval workflow

  1. Go to Settings → Finance & Business → Invoice approvers.
  2. Toggle Invoice approval workflow on.
  3. Configure who may approve invoices. If no approvers have been set up yet, the pending-approval page will prompt you to add them. Approvers are assigned directly on that page via a dialog; they receive the invoices-manager role.

Note: The Unpaid tab is always visible regardless of whether the approval workflow is enabled or not.

Who can approve

Approving or rejecting an invoice requires an invoices permission — Invoices viewer or Invoices manager. It counts whether the permission was granted to the person directly or through a permission group they belong to.

Flowtly picks an invoice's approvers in this order, and stops at the first step that produces somebody:

  1. The owner of a tag on the invoice. If the invoice is tagged — with a cost category, for example — and any of those tags has an owner, the invoice goes to that owner. See Routing by cost category below.
  2. The owner of the linked cost. If the invoice is attached to a cost that has an owner, and that person holds an invoices permission, the invoice goes to them.
  3. Everyone holding an invoices permission. Used when none of the steps above produced anyone.

So a cost owner without an invoices permission is not asked to approve and is not notified. The invoice does not stall: it goes to the people who hold an invoices permission instead. The same is true of a tag owner — an owner without an invoices permission is skipped, and the next step applies.

Note: An invoices permission is all an approver needs. The person an invoice is waiting on can open it from the approval list, view its file and its attached documents, approve or reject it, assign it to a project and choose its contract, without a contracts, documents or other finance permission. In the contract picker they see each contract's name only, not its amounts or terms. Someone without an invoices permission is never asked to approve, and cannot decide on an invoice even if they are named as an approver.

Routing by cost category

Teams that code every supplier invoice to a category — construction, design, legal — usually want the first approval to go to whoever is responsible for that category, rather than to whoever owns the supplier.

To set that up, give each tag an owner:

  1. Create a tag group for your categories, with one tag per category.
  2. Give each tag an owner — the person who should approve invoices in that category.
  3. Tag each incoming invoice with its category, as part of coding it.

From then on, an invoice tagged Legal goes to the owner of the Legal tag, and one tagged Construction goes to the owner of Construction.

Three details worth knowing:

  • A tag with no owner changes nothing. Approval falls through to the cost owner and then to everyone holding an invoices permission, exactly as it did before. You only get category routing for the tags you deliberately give an owner to, so existing setups are unaffected.
  • An invoice carrying two owned tags goes to both owners. Either of them can approve it. Flowtly does not pick one for you, because both were chosen deliberately.
  • A tag whose owner cannot approve says so. If the owner lacks an invoices permission, or has not accepted their invitation yet, the tag's settings show a warning naming them. Their invoices go to everyone holding an invoices permission until that is fixed.

The approval tabs

Once the workflow is enabled, the supplier-invoices screen shows five tabs:

Tab What it contains
Awaiting Every invoice waiting for a decision, whoever it is waiting on. Approvers can approve or reject from here.
Waiting on me The part of Awaiting that is waiting on you personally.
Approved Invoices that have been approved and are ready to pay.
Rejected Invoices that were rejected. You can review the reason and re-submit if needed.
Unpaid All invoices that have not yet been paid, regardless of approval status. Visible even when approval is off.

Waiting on me

Awaiting shows everything the organisation has in review, which for anyone but the smallest team is mostly other people's work. Waiting on me narrows that to the invoices where you are the person being asked to decide. It is the same list with the same actions, filtered to you — nothing is approved or rejected differently there.

An invoice only appears on this tab while it is still awaiting a decision. Once you approve or reject it, it leaves and moves to Approved or Rejected like any other.

When there is nothing for you to decide, the tab says so — Nothing is waiting on you right now. That is a narrower statement than the one Awaiting makes when it is empty: the organisation can have a full queue while nothing in it is yours.

Who an invoice is with

Before you submit an invoice that carries a tag with an owner, its approval section names who it will go to, above Submit for approval:

  • It will go to: lists the tag owners on the invoice who can approve it.
  • A warning names each owner who cannot: one who has not accepted their invitation yet, or one without the invoice approver role.
  • When none of the owners can approve, a sentence says the invoice will go to the supplier's cost owner if they can approve, and otherwise to everyone with the invoice approver role.
  • If your own role does not let you view people, the section says that the recipients cannot be shown, rather than showing nothing.

When you submit an invoice for approval, the confirmation names the people it went to. If it went to everyone holding an invoices permission rather than to a tag or cost owner, you see that at once.

While the invoice is in review, its approval section shows Waiting for: and the people who still need to decide. When one signature is enough and somebody signs, the others are no longer asked: they drop out of the Approvers column and the invoice reads only as approved, never as approved and still waiting for someone.

Approving or rejecting an invoice

  1. Go to Invoices in the main menu and open the Waiting on me tab — or Awaiting, if you want the whole organisation's queue.
  2. Click an invoice to open its detail view, or use the action buttons directly in the list.
    • The invoice's name in the detail view — and on each card on a phone — links to the invoice on the Incoming invoices page, filtered to that supplier, so you can check its lines and coding before you decide. The link appears only if you can open that page; otherwise the name is shown as plain text.
  3. Choose Approve or Reject.
    • If you reject an invoice, you can add a note explaining why.
  4. The invoice moves to the Approved or Rejected tab immediately.

Note: A decision needs both things: the person must be assigned as an approver on the pending-approval page, and must hold an invoices permission.

The Unpaid tab

The Unpaid tab collects every invoice that still needs to be paid — approved ones as well as any that bypassed the workflow. Use it as your payment queue.

Key features:

  • Multi-select — tick the checkboxes next to the invoices you want to pay.
  • Bulk export — once you have selected one or more invoices, the Export SEPA file button becomes active.

Exporting a SEPA bank-transfer file

Instead of entering each wire manually in your bank's portal, Flowtly can generate a standard pain.001 (pain.001.001.03) XML file that you upload directly to your bank.

  1. Open the Unpaid tab.
  2. Select the invoices you want to pay using the checkboxes.
  3. Click Export SEPA file (or similar label in the toolbar).
  4. Flowtly generates a pain.001 file and downloads it to your computer.
  5. Log in to your bank's online portal and upload the file using the bulk-payment or SEPA credit-transfer import feature.

Note: Make sure each supplier invoice has a valid IBAN and BIC set on the counterparty's bank account in Flowtly. Invoices with missing bank details cannot be included in the pain.001 export.

Choosing the file format for your bank

Banks do not all import the same file. Flowtly recognises the bank by the BIC (SWIFT code) of the account selected in Pay from, and offers the formats that bank imports. Under each Export PLN or Export EUR button, a caption names the import template to choose in your bank's portal; the information icon beside the buttons, Which bank import format?, lists the same templates. When the bank imports more than one format, choose it under File format in the menu that opens from the arrow next to the export button.

Bank you pay from File format Import template in your bank's portal
BNP Paribas SEPA / pain.001 XML SEPA CT for EUR, Przelew krajowy XML V2 for PLN
ING Bank Śląski SEPA / pain.001 XML SEPA CT for EUR, Przelew krajowy XML for PLN
ING Bank Śląski Multicash PLI (ING) Multicash PLI (Elixir 0)
Bank Spółdzielczy w Kościanie (SGB24) XML przelewy zwykłe (SGB24) Przelewy zwykłe, format XML
Any other bank SEPA / pain.001 XML No template is named
  • SGB24 takes PLN only in this format. A przelew zwykły carries no currency, so the SGB24 file is offered for PLN payments only. A EUR payment from that account is exported as pain.001, which SGB24's SEPA import does not accept, so pay EUR invoices from that account directly in SGB24.
  • Any other bank. For EUR, import the pain.001 file with your bank's SEPA credit-transfer template. For PLN, use it only if your bank's domestic import reads pain.001: some banks use their own format and reject it. Another cooperative bank on SGB24 is treated as any other bank.
  • No caption under the button means Flowtly does not know the bank's import template, usually because the account in Pay from has no BIC. Add the BIC to the bank account to get the bank-specific formats.

Example use cases

  • A finance manager reviews all new supplier invoices each morning in the Awaiting tab, approves valid ones, and rejects duplicates with a note.
  • A project lead who approves only the invoices for their own costs opens Waiting on me instead, and clears a short list rather than scanning the whole organisation's queue.
  • At the end of the week, an accountant opens the Unpaid tab, selects all approved invoices, exports a pain.001 file, and uploads it to the company's bank — paying dozens of suppliers in one step.
  • A small team with approval disabled uses the Unpaid tab purely as a payment queue, exporting SEPA files without any approval step.