One API method to eliminate manual bank tagging forever

Feature requested

A new API method - Bank_TagTransaction - that allows external integrations to tag a bank feed transaction to an invoice, purchase, or transfer via the API, exactly as the “Tag Me” button does in the QuickFile UI.

Typical use case

I run a small property services business. Customers pay through a Stripe-integrated form on our website. I’ve built a WordPress plugin that automatically calls the QuickFile API to create a client, create an invoice, and email it to the customer within seconds of payment.

The problem is the last mile. When the Stripe bank feed imports the payment into our Holding Account, that transaction sits untagged. I have to log into QuickFile, find it, click “Tag Me”, and manually match it to the invoice I’ve already created. Every single time.

I looked at using Payment_Create to mark the invoice as paid, but that creates a new bank transaction on the nominal. When the bank feed also imports the same payment, you get duplicates. This is a well-documented issue on the forum going back years, and QFMathew confirmed in the “Tagging transactions via API” thread that there’s currently no way to tag bank feed transactions via the API.

This isn’t just my problem. Every business that takes payments online through Stripe, PayPal, or GoCardless and uses the QuickFile API to create invoices hits the same wall. Freelancers with Stripe checkout links, e-commerce businesses, service companies with booking forms, anyone building automations with n8n, Zapier, or Make. The invoice exists, the payment is sitting in the bank feed, but they can’t be connected without a human clicking through the UI.

I asked my friend Claude how to solve this problem and this is what was suggested.

How I would expect it to work

You’d call the new Bank_TagTransaction endpoint with a bank feed transaction ID (found via Bank_Search) and tell it which invoice to tag it to. QuickFile would run the same internal logic it already runs when you tag manually: create the payment record, link it to the invoice, mark it as paid, update the bank transaction status to tagged.

A basic request might look like:

{
  "Bank_TagTransaction": {
    "Header": { ... },
    "Body": {
      "BankTransactionID": 12345678,
      "TagType": "INVOICE_PAYMENT",
      "InvoiceID": 987654
    }
  }
}

TagType would support the same options the tagging wizard offers: invoice payment, purchase payment, bank transfer, salary, tax payment, nominal post.

The full automated flow then becomes:

  1. External system creates invoice via Invoice_Create

  2. Payment arrives in bank feed

  3. External system finds the untagged transaction via Bank_Search (filtering by amount, date, nominal)

  4. External system calls Bank_TagTransaction to link the bank feed entry to the invoice

  5. Invoice paid, bank feed tagged, books balanced. No manual step, no duplicates.

Sensible guardrails would keep it safe: validate that the transaction amount matches the invoice outstanding amount (or handle partial payments explicitly), reject attempts to tag already-tagged transactions, respect locked accounting periods, and return clear error messages. The same checks the tagging wizard already applies.

If the team wanted to take it further, a BankTransactionsImported webhook that fires when new transactions arrive via a bank feed would eliminate the need to poll Bank_Search. But even without the webhook, Bank_TagTransaction alone closes the automation gap.

This would make QuickFile the only UK small-business accounting platform with a fully automatable payment reconciliation loop via API. That’s a genuine differentiator as more businesses build integrations with automation tools.

This feature would be great. :raising_hands:

Thanks for your vote :grinning_face: :+1:

As a software developer, I’d definitely add my vote for this .

It quite often surprises me when I find online systems that have features possible via a website (but without the ability to automate the same action) – When these systems already have an API, an additional feature like this would be very welcome.

For things like card-payments (where notifications may arrive quickly, and can be clearly identified by client-code) , it would be great if we could then tell quickfile “yes, we’ve seen this transaction, we know about it, please tag it to this customer-invoice”

Steven

Thanks for your feedback. If you can upvote this then please do :grinning_face: :+1:

What an excellent idea! This should be a fully integrated feature of Quickfile, please!

Was asking chat for how to automate transaction tagging in QF and it took me straight here, @QFMathew can a ticket be raised for this with the dev team. Would very much complete the API.

Thanks

Thanks, please upvote if so that we can get this on the development roadmap.

Right!? :upside_down_face: Upvote to show your support please.

This would be massively helpful

Thanks for upvoting :grinning_face: :+1:

How do I “upvote” this? I see no obvious means to do so, but I’m not a computer geek!

You can add your vote by clicking the up arrow at the top of the threead

Not obvious, but done, thank you.

How many upvotes would we need?

Good question!!! Hopefully, more people will see how valuable this would be and upvote the feature.

I use the payment_create endpoint to mark the invoice as paid, which creates a transaction in the control account I have setup for the payment provider.

Once the funds are received in the current account from the payment provider, they are automatically tagged to the payment provider control account.

The payment provider control account has an automated feed setup. In the feed settings, I have it set to only import fees, not payouts (see screenshot). The fees then get tagged to the bank charges nominal automatically.

This keeps everything automated and balanced.

Interesting… I’ll look into this to see if it is a workaround for my situation.