Skip to content

Generate an upload file (Xero / QBO / Zoho / Tally)

Who does this: Bookkeeper · Senior Accountant · Platform Admin When: A journal batch has reached APPROVED — every entry is APPROVED or REJECTEDResult: A platform-specific upload file (Xero CSV, QuickBooks IIF or CSV, Zoho Books CSV, Tally XML) is generated, downloadable from the batch's Upload file tab. The batch moves to EXPORTED. You then post the file manually into the client's accounting platform.

The platform never pushes journal entries directly into Xero, QuickBooks, Zoho, or Tally. You — the bookkeeper — remain the human in the loop on the final posting step. Spade generates a file in the format the target platform accepts; you download it, log in to the client's accounting platform, and import it. This is deliberate per the Bookkeeping SOP §4.5 — it preserves a manual checkpoint at the moment of posting, where mistakes are most expensive.

The format is decided automatically based on the Accounting platform set on the client record:

Client platformFile format
XeroCSV
QuickBooksIIF (default) or CSV
Zoho BooksCSV
TallyXML

Before you start

  • [ ] The batch is in APPROVED. If it's still in DRAFT or UNDER_REVIEW, the Generate upload file button will be greyed out — finish the review first (Review a journal batch).
  • [ ] You have GENERATE_UPLOAD_FILE permission — Bookkeeper, Senior Accountant, or Platform Admin.
  • [ ] The client's accounting platform is set on the client record. If it's blank, the generator will refuse — fix it on the client detail page → Settings → Bookkeeping.
  • [ ] You have access to the client's actual accounting platform login (or the bookkeeper at the firm who does), because the next step after generating the file is posting it manually.

Steps

1. Open the batch

  1. Open Journal batches in the sidebar.
  2. Click View on the batch you want to export.

The batch status badge should read APPROVED.

2. Generate the file

  1. Click the Upload file tab on the batch detail page.
  2. Click Generate upload file.

The platform builds the file in the format your client uses. Generation is synchronous and typically completes in a few seconds. You'll see a confirmation toast and the file appears in the Upload file tab with:

  • Filename — includes the client code, period, and format extension.
  • FormatCSV / IIF / XML.
  • Entry count — how many APPROVED entries are in the file (rejected entries are excluded).
  • Generated at — the timestamp.
  • Download button.

The batch status flips from APPROVEDEXPORTED.

3. Download the file

Click Download to save it locally. The browser will name the file using the batch's period and platform extension.

TIP

Treat the downloaded file as immutable — don't open it in Excel and re-save. Excel silently mangles leading zeros, date formats, and quoting. If the file needs editing, regenerate after fixing the underlying entries instead.

4. Post the file into the client's accounting platform

The Spade platform stops here. You take over:

  • Xero: Accounting → Advanced → Import → upload the CSV → confirm field mapping → post.
  • QuickBooks Desktop: File → Utilities → Import → IIF Files. For QBO Online use the CSV variant and Banking → Upload from file or the equivalent journal-entry import tool depending on the SKU.
  • Zoho Books: Accountant → Manual Journals → Import → upload the CSV → map fields → post.
  • Tally: Use Import Data → Vouchers and select the XML.

Each platform has its own preview / approval step before the entries are committed. Double-check the totals on that preview against the batch summary in Spade before you confirm.

5. Mark the batch CLOSED after the platform confirms

Once the target platform has accepted the import (and you've eyeballed at least the totals to confirm nothing got dropped), come back to the Spade batch detail and click Mark closed. This is what locks the batch — no more edits, no more re-generations, and the activity log captures the closure.

How to know it worked

  • The batch status flips APPROVEDEXPORTED the moment generation succeeds, and to CLOSED after you mark it closed.
  • The activity log shows batch.export_generated attributed to you, and batch.closed once you mark it closed.
  • An "Upload file ready" email may be sent to the staff distribution list if the client's notification configuration includes it — visible in the Outbox (Verify an email was sent).
  • The Upload file tab shows the file with its filename, format, entry count, and a working Download button.

What the client sees

Nothing directly. The client sees the journal entries appear inside their own accounting platform after you import them. They don't receive an email from Spade for this step, they don't see the upload file, and they have no portal view of the batch. If the client wants visibility, you provide it through whatever weekly / monthly reporting cadence you've agreed with them.

Common situations

If you see…It means…What to do
Generate upload file is greyed outBatch isn't APPROVED yetFinish reviewing — see Review a journal batch
Toast: "Accounting platform not set on client"The client record is missing the platform fieldOpen client → Settings → Bookkeeping, set Xero / QuickBooks / Zoho / Tally, save, retry
Xero refuses the import: "Account code not found"One or more entries reference an account code that doesn't exist in the client's Xero chart of accountsEither add the missing account in Xero, or come back to Spade, edit the offending entry to a code that does exist, regenerate
QuickBooks IIF import errors on a date formatLocal QB regional settings aren't matching the fileSwitch the file format to CSV on the regenerate dialog, or align QB's regional settings
Zoho complains about debit / credit not balancingThe batch has an unbalanced entry that slipped through reviewReopen the batch, find the unbalanced row, edit, re-approve, regenerate
Tally XML imports but with zero vouchersThe XML namespace or version doesn't match the Tally release in useConfirm the Tally version with the client; raise a support ticket — the formatter may need a small variant tweak
You generated the file but realised an entry is wrongThe batch is in EXPORTED; you can't edit entries any more without re-openingMark the batch as needing rework (Senior Accountant action), correct, regenerate. The old file is preserved in the activity log for the audit trail.

Internal use only — BreezyCorp