Worklog← All help
Money

Import a bank statement

Upload a bank statement PDF or photo and let Worklog read, sort and import your transactions for you.

What this does

Instead of typing every line off your bank statement, you upload the statement and let Worklog read it for you. It pulls out every transaction, sorts them into money in and money out, and lets you pick which ones to keep before anything is saved. You'll find it in Banking β€” tap "Let Worklog read it".

It works with a PDF straight from your bank or a clear photo of the statement. If your PDF has a password, Worklog can unlock it right on your phone.

Before you start

  • Have your statement ready as a PDF, JPG or PNG.
  • If the PDF is password-protected, know the password. It's usually in the email the statement came in, and is often your ID number.
  • It helps to set up your bank accounts first, so you can tell Worklog which account the statement is from.

Say yes to the privacy step

The first screen, Before you upload, explains what happens to your statement. To read it, Worklog sends the file to an AI service (Anthropic, in the United States) that pulls out the transactions, uses the file for that and to check it against Anthropic's Usage Policy, and deletes it within 30 days (longer only if the law or its safety rules require). Worklog itself never saves the file, only the transactions you choose to keep. If the PDF has a password, it's unlocked on your phone and the password is never sent anywhere. Your data is never used to train AI models.

  1. Read the points on the Before you upload screen.
  2. Tap I understand β€” continue to carry on, or Cancel to go back.
πŸ’‘If AI features are switched off for your business, you see "AI features are switched off" instead, and statements can't be read. The owner can switch AI back on under Business Hub β†’ Business details.

Upload your statement

  1. Tap Choose a PDF or photo and pick your file.
  2. If Worklog sees the PDF is password-protected, it shows a note saying it will ask for the password next.
  3. Tap Read my statement. For a protected PDF the button reads Unlock & read my statement instead.
  4. If it asks for a password, type it into the PDF password box and tap Unlock & read. Your password stays on your phone.

You'll see a Reading your statement screen while the AI works. This can take up to a minute for a long statement.

πŸ’‘If a protected PDF won't unlock, many banks let you re-download the same statement without a password from their app. A clear photo of the pages also works. On the password screen you can also tap Choose a different file to start over.

Pick the account

If you have bank accounts set up, Worklog tries to work out which account the statement is from and shows a note on the review screen. Under Which account is this statement from? you can leave its choice or change it. Everything you import is filed against that account. If Worklog can't tell, no account is picked until you choose one β€” lines imported with no account don't move any balance, and can't be reconciled until you open each one and set its account.

Review and tick the transactions

Worklog lists every transaction it found. Money in shows with a plus, money out with a minus. A box near the top keeps a running total of money in, money out, anything you have marked as a move, and how many are selected. Every row starts ticked except the kinds that start unticked, each with a note saying why and a box you can tick: salary lines your pay runs already recorded, staff advances Advances already booked, SARS or payroll-tax lines (below), tax payments already in your books (the same amount within 5 days), lines your books already hold, and lines that may repeat one. This screen never blocks a line: you can tick any of them. A line is an EMP201 payment your pay runs already booked when it says EMP201 or its payment reference, or PAYE, UIF or SDL as words, and its amount is the PAYE, UIF and SDL of a pay month (less any ETI), to the cent. Any other line that says SARS (a penalty, interest or a tax Worklog can't place), says EMP201, PAYE, UIF or SDL, or has a PAYE number or PAYE in a name such as Paye Holdings, also starts unticked, with a note. So does any other line, whatever its words, at exactly a pay month's PAYE, UIF and SDL (from the first of that month to 14 days after its EMP201 is due), unless it names only another tax (a VAT201, IRP6, income or turnover tax): every such line gets a box, not only the first, and "SARS CUSTOMS" at that amount gets one. "Income tax" beside an employee, staff, payroll, salary or wage word is read as PAYE (the Fourth Schedule calls PAYE employees' tax), not as another tax, so it gets that box too. That rule only adds a box: a staff advance's line stays that advance, and a line without SARS or tax words that is a move your books already hold on its own day stays that move. A line left out with a box says in its one note if a move your books hold is within two working days of it. Picking or changing the statement's account asks every one of these questions again, and keeps a tick you set by hand only while that line's reasons are unchanged, and always keeps a line you unticked by hand. A line whose words don't name SARS, EMP201, PAYE, UIF or SDL (plain, or with a tax word Worklog can't place, such as TAX OCT or PAY AS YOU EARN) that is boxed only for that amount is tagged and counted as Same amount as your payroll tax, not as a SARS line. With Pay Run, a VAT201, provisional tax or other payment that names its own tax and has nothing of the payroll's on the line comes in ticked, as before. A salary line that says net of PAYE or wages less tax is a wage, not tax. A staff advance Advances booked is matched first: a line at its amount (to the cent, within 5 days) is taken as that advance, even when its amount is also a pay month's PAYE, UIF and SDL, and a line whose words name SARS or a tax is never taken for one. A line left out for SARS or tax has one note giving every reason that applies, in the same words as the bank file preview, and a line boxed only for a near repeat has its repeat note alone. A line you mark as a move may also show that move's note. A line that gets a SARS or tax box and is also the amount of a staff advance within 5 days keeps its box, and its note names the advance. A line that names only another tax (a VAT201, with or without SARS) or a bare tax word like TAX OCT at an advance's amount, with no pay month's total and no other box, imports as an ordinary line: it is not taken for the advance. A login without Pay Run can't work out the tax incentive (ETI), so it also gets every line that says SARS, EMP201, PAYE, UIF or SDL unticked when it falls from the first of a month that Pay Run booked PAYE, UIF and SDL to 14 days after that month's EMP201 is due (the 7th of the next month, or the business day before if that is a weekend or holiday), whatever its amount.

Above the list, "Unticked for you" counts those lines β€” tap it to see why each kind was left out. "To check before you import" opens by itself and lists what is worth a look: ticked lines with no category, lines dated outside this month, SARS lines Worklog couldn't match, lines with the same amount as your payroll tax, and any pages Worklog had to skip. Neither stops the import. Opening balance, closing balance and balance brought forward lines are left out altogether, because they aren't money that moved β€” what an account held when your books started goes in Opening Balances.

  • Rows with a 🏦 SARS tag come unticked, with one note that gives every reason. If the line is the amount your pay runs booked as that month’s PAYE, UIF and SDL, the note says which month and how much, and whether its words say it is that payment. Without Pay Run the note says Worklog can't tell whether the line is that or something else, such as a VAT201 or provisional tax. Other SARS, penalty, interest or PAYE lines say what they read as. They are listed under To check: tick back each one that isn't already in your books, and it keeps its tax category.
  • A line whose words don't name SARS, EMP201, PAYE, UIF or SDL, plain or with a tax word Worklog can't place (TAX OCT, PAY AS YOU EARN), that is boxed only because its amount is a pay month's PAYE, UIF and SDL has a Same amount as your payroll tax tag instead, and is counted under that label, never as a SARS line.
  • Rows with a 🧾 tag are already in your books because you recorded the payment when you marked a return filed β€” the note names the category and date.
  • Rows tagged ↩️ may repeat come unticked when your books hold the same amount, in the same direction, within two days β€” even under another name, such as money you logged in Quick Log or typed in + Add. The note names that entry. An entry that itself came from a bank statement or a bank CSV file is only compared when it is on the same account and dated within the first and last lines of the file you are reading, so last month's statement does not flag this month's lines. Tick the row back only if the bank really did pay you or charge you twice.
  1. Go down the list and tap any row you don't want, to untick it.
  2. When there's more than one transaction, you can tap Select all or Select none at the top of the list to tick or untick everything at once.
  3. Look for rows with a small ⚠️ check tag β€” that means the AI wasn't sure, so double-check the amount and detail.
  4. Check the category under each ticked row. Worklog fills in its best guess or, for a line it has seen before, the category you used last time, marked "from last time". Tap it to change it. A row left without one imports under Needs a home.
  5. If your business is VAT registered, each ticked row also asks about VAT. Money in: "VAT on this sale" starts on Standard β€” change it to Zero-rated or Exempt where that applies, and a loan, money you put in or a dividend carries none. Money out: "VAT to claim" starts on No VAT to claim. Tap Tax invoice β€” claim only when the supplier is VAT-registered and you have their tax invoice (at R50 or less, a till slip that shows the VAT). A wage, a SARS payment, a loan repayment, a dividend or a donation isn't asked.
  6. Tax invoice β€” claim on a line over R5 000 (VAT included) asks "Over R5 000: can you claim the VAT?" underneath: above R5 000, SARS needs a full tax invoice β€” with your business's name, address and VAT number on it β€” before you claim the VAT. Tap I have the full tax invoice β€” claim, or Not yet β€” save without VAT for now, which puts the line back on No VAT to claim; you can claim it later from the payment in Banking once the invoice arrives β€” if that period's VAT201 is already marked filed by then, the VAT counts on your next return instead. Import waits until every such ticked line has an answer, and names the ones left. It goes by the line's amount. If one payment covered several invoices of R5 000 or less each, each of those only needs a shorter (abridged) tax invoice: holding those, you may claim, so tap the first answer.
  7. Rows with a πŸ’Ό wages tag come unticked: a pay run in Worklog already booked those wages (the note under the row names the payslip), so importing the line would count the cost twice. Only tick it back if that pay run isn't in Worklog.
  8. Rows with an ↩️ already in tag come unticked too: your books already hold that day, that amount and that name, which usually means this statement β€” or part of it β€” has been read before. The note under the row says what it matched. Tick one back only if it really is a second payment. A line that is one end of a move your books already hold gets the same tag, whether or not you have marked it as a move β€” see below.
  9. Was a line really money moved between your own accounts β€” out to one, or in from one? Under a ticked row, pick the other account from the "not a move" box β€” see below.
  10. Watch the totals box to confirm the money in and money out look right.
⚠️Rows dated outside the current month still import, but your dashboard's Month view won't show them. Worklog warns you when that's the case β€” switch the dashboard to Year or All to see them. They're always in your Money records and Profit & Loss.

Link payments to invoices and supplier invoices

If a deposit was a customer paying an invoice you already made, or a payment was you settling a supplier invoice, you should link it. Linking stops the same money being counted twice in your Profit & Loss.

  1. Under a ticked money-in row, use Is this payment for an invoice? to find and tap the matching invoice.
  2. If the deposit covers the whole balance, Worklog offers a tick to also mark that invoice as paid. A part payment lowers what the invoice still owes and marks it part paid.
  3. Under a ticked money-out row, use Is this paying a supplier invoice? to link the supplier invoice it settles, and tick to mark it paid if the payment covers the full amount.
  4. Once a row is linked, it no longer asks for a category β€” the invoice or supplier invoice files it. A payment linked to a supplier invoice claims no VAT of its own, because the supplier invoice already carried it.
πŸ’‘Linking is optional. If a payment wasn't against something you'd already logged, just leave it unlinked and it records as normal income or expense.

A line that was really a move

A bank statement prints money moved between your own accounts as an ordinary line: a payment when it went out to another of your accounts (a top-up to savings), a deposit when it came in from one (the till's takings banked into cheque). It is neither spending nor income, and importing it as either puts a shuffle between your own pockets into your Profit & Loss.

  1. Under a ticked row, open the box that reads "Money out β€” not a move" (or "Money in β€” not a move").
  2. On a money-out row, pick πŸ”„ Moved to and the account the money went into. On a money-in row, pick πŸ”„ Moved in from and the account it came from. The other accounts appear in the list once you have two or more saved.
  3. The row turns purple and names both accounts: the one the money left goes down, the one it landed in goes up. Its category, VAT and matching controls disappear, because a transfer has nothing to file and nothing to settle.

Those lines are counted apart in the totals box, under Moved, and never in money in or money out. Once imported, the transfer shifts both accounts' balances and stays out of your Profit & Loss and your tax.

The same move is on both accounts' statements β€” out of one, into the other β€” and you may already have logged it in Banking with + Add and πŸ”„ Move. Mark it as a move wherever you find it. Worklog checks every line against the moves your books already hold, whether you have marked it or not: a payment against money moved out of this account, a deposit against money moved into it. When one matches β€” the same day, the same amount, the same way round β€” the row unticks itself, shows an ↩️ already in tag, and an amber note under it names the two accounts. Leave it unticked: importing it would move the money twice, or count the move as spending or income on top of the transfer you already saved. Tick it back only if it really is a separate payment.

Money moved between two different banks can land a day or two after it left, so the two statements may show it on different dates. When your books hold a move of the same amount, the same way round, within two business days of a line β€” weekends and public holidays don't count β€” the row stays ticked but shows ↩️ already in?, with a note naming the move and its date, and To check before you import counts it. If it is the same move, untick the row. Don't mark it as a move: that would save the transfer a second time.

⚠️Worklog can't spot a move whose two dates are more than two business days apart, or one to or from an account you've deactivated β€” untick those yourself. And it only checks against moves: if the first statement's copy went in as ordinary money in or out, marking the second as a move saves the transfer on top of it. Remove that first line in Banking (the βœ• on its row), then mark this one as a move.
πŸ’‘Worklog does not guess at this, on purpose: calling real trade a transfer would take it out of your profit altogether, so the only thing that marks a line as a move is you, reading your own statement.

Import

  1. When the list looks right, tap the Import button at the bottom β€” it shows how many transactions you've selected.
  2. Wait for it to finish. You'll see a screen confirming how many were imported and the dates they cover.
  3. Tap Back to dashboard.

Your transactions are now in your Money records and will show in reports like Profit & Loss. If your business is VAT registered, the VAT is worked out from inside each amount, since a bank statement only ever shows the total that landed: on money in by the treatment you picked, and on money out only where you chose Tax invoice β€” claim.

Importing a CSV instead

A CSV export from your bank goes through Banking β†’ ⬆ Import (not the statement reader). Pick the account the file is for at the top of the dialog β€” every line lands on that account and moves its balance, so one file is one account. Only date is required; a date must be written YYYY-MM-DD, e.g. 2026-09-07, and a line in any other date format is skipped. A minus amount means money out β€” in front (-500.00) or behind (500.00-), and so do Dr (500.00 Dr) and brackets ((500.00)); Cr means money in. Or say it in the type column (in/out, credit/debit). An amount Worklog can't read is listed with a reason and left out of the import, rather than read as zero.

Tap ⬇ Download template CSV for a file with every column and three worked example lines β€” money in, money out and a move. The columns are the same questions the capture screen asks, so a filled-in template lands exactly what typing the lines in would have: date, amount, type, description, party, reference, category, vat, receipt, personal, method and to_account. Everything after date is optional.

  • A two-line file that imports: the header row β€œdate,amount,description,party”, then β€œ2026-09-01,4200,Job payment,Thandwe Mokoena”, then β€œ2026-09-02,-780.50,Fuel,Engen”.
  • Each imported line becomes a real Banking entry with its own INC-, EXP- or TRF- reference, on the account you picked, carrying that account's everyday payment method unless the method column says otherwise.
  • type β€œmove” imports a transfer between your own accounts β€” name the other account in to_account (its name, or the last four digits of its number). The amount says which way, as on any line: money out (a minus, Dr or brackets) went to that account, money in came from it. Or write β€œmove out” or β€œmove in” and the sign doesn't matter. A plain move with no minus is read as money in, and the preview says so. A move both accounts' files print on the same day is one transfer, so in whichever file you import second it comes unticked with the reason, and you can tick it back. A move Worklog can't place is shown as β€œcan't import” with the reason, rather than being filed as money in or out.
  • vat: on money in it is how the sale is treated β€” standard, zero-rated or exempt, and standard if you leave it blank. On money out, write β€œclaim” to claim the VAT inside the amount; blank claims nothing, deliberately β€” silently claiming 15% on every card swipe would over-claim to SARS.
  • receipt and personal take yes or no: receipt records that you have proof for a payment, personal keeps the owner's own money out of your business totals and tax.
  • A line without a recognisable SARS category arrives under Needs a home β€” work that pile down afterwards, matching lines to invoices and supplier invoices or booking them to a heading.
  • Import the same statement twice and the lines already in your books come unticked, moves included, each with the reason β€” so a file you are unsure about is safe to run again. You can tick any of them to import it anyway. It counts: if the file has two identical lines and your books hold one of them, one imports.
  • Salary lines a pay run already booked are skipped too, and the preview names the payslip. Importing them would count the same wages twice β€” once when the pay run was saved, once as the bank line paying it.
  • In this bank file import every line gets one of three outcomes. Three kinds can't be imported, because your books already hold them, and the preview says what booked each, and that a different payment can be entered by hand with + Add: a payment whose words say EMP201 or its payment reference, or PAYE, UIF or SDL (a UIF-only employer's UIF payment too), or a line that names another tax but carries an EMP201 payment reference (the note asks you to check which beneficiary you paid), and whose amount is a pay month's PAYE, UIF and SDL (less any ETI) to the cent; a salary equal to a net wage a pay run booked, to the cent and within 7 days of pay day, when the line names no SARS or tax; and a staff advance that Advances already booked (to the cent, within 5 days, on the file's account; matched first, before a pay month's total), unless the line's words or category column name SARS or a tax. These come in unticked, with a box and a note: any other line that says SARS (a SARS line with no tax name, a penalty, interest, dividends tax, customs), says EMP201, PAYE, UIF or SDL, or has PAYE in a name or a PAYE number; any line, whatever its words, at exactly a pay month's PAYE, UIF and SDL (from the first of that month to 14 days after its EMP201 is due), unless it names only another tax (every such line gets a box, "SARS CUSTOMS" too, and one whose words don't name SARS, EMP201, PAYE, UIF or SDL, plain or with a tax word like TAX OCT, is counted as Same amount as your payroll tax, not as a SARS line to check; "income tax" beside an employee, staff, payroll, salary or wage word counts as PAYE, not another tax); a line whose category column says tax, unless its words name that same tax; a payment equal to a net wage whose words name SARS or a tax; a SARS line for the same amount as a tax payment already in your books, within 5 days; and a line that may repeat one in your books. A line has one note giving every reason that applies. With Pay Run, a VAT201, provisional tax or other payment that names its own tax and has nothing of the payroll's on the line imports as before. Without Pay Run, a SARS, EMP201, PAYE, UIF or SDL line from the first of a pay month to 14 days after that month's EMP201 is due (the 7th of the next month, or the business day before if that is a weekend or holiday), and any line at exactly that month's figures unless it names only another tax, is left out but has a box: tick it if it is a VAT201, provisional tax or anything other than the month's PAYE, UIF and SDL. With Pay Run but no Staff register, the file isn't read while there are pay runs.
  • A line called Opening balance, Balance brought forward or Closing balance is skipped β€” what an account held when your books started goes in Opening Balances.

If nothing happens after choosing a file

  • The dialog says β€œReading the file…” while it works, and any problem lands in red under the button β€” including dates that aren't YYYY-MM-DD, the commonest reason a file produces nothing.
  • A line filed as income, provisional or turnover tax paid to SARS asks Which tax year is it for? under it in the preview. Pick the year on the IRP6, ITR12 or TT02 it pays, or Not sure β€” go by its date: the Tax Jar counts it towards that year, whatever day it left the bank. It doesn't have to be answered to import, and an unanswered line counts in the tax year it's dated in.
  • Fix the file and choose it again β€” picking the same file a second time works.
  • A PDF or a photo of a statement doesn't go through this dialog at all: use β€œLet Worklog read it” at the top of Banking, and its lines land in the same list.
Related guides
Type your bank lines in β†’Log money in and out β†’Set up your bank accounts β†’Get paid: match a payment to an invoice β†’Record a supplier invoice β†’Reconcile against your bank statement β†’Work on your VAT201 β†’Keep an asset register β†’
Still stuck? Open the in-app help assistant, or email us at hello@worklogsolutions.co.za.
← Back to the Help Centre