Pick your return, open your spreadsheet, and download a file ready for CRA Internet File Transfer. Free, no signup.
Choose the return, then open the .xlsx or .csv file with your T4 payroll data.
Not sure how to lay out your columns? Download the T4 sample spreadsheet
Yes. All processing happens entirely in your browser. Your spreadsheet data is never uploaded to any server. You can verify this by disconnecting from the internet — the tool works offline. The Privacy page explains what stays on your device, what is saved in this browser, and which third-party services the site loads.
We support T4 (Statement of Remuneration Paid), T1204 (Government Service Contract Payments), T5018 (Statement of Contract Payments), and NR4 (Statement of Amounts Paid or Credited to Non-Residents of Canada). T4A and T5 are planned.
For T4: Your spreadsheet needs columns for: Last Name, First Name, SIN, Employment Income, CPP Contributions, EI Premiums, Income Tax Deducted, EI Insurable Earnings, CPP/QPP Pensionable Earnings, and Province of Employment. Optional: Union Dues, RPP Contributions, CPP2, QPP, Address.
For T1204: Vendor Name, Vendor BN or SIN, Amount Paid, Business Type, Service Payments Only (Yes/No), and Address.
For NR4: Recipient Name, Recipient Type (Individual, Joint account, Corporation, Other, Government), Foreign Tax ID, Country of Residence (3-letter code, e.g. USA), Income Code, Currency, Gross Income, and Tax Withheld. Optional: Exemption Code, Address, City, State/Province, Postal Code. The tool auto-detects common header names, and you can download a sample template for each return in Step 1.
The generated XML conforms to the T619 2026V4 / T4 2026V4 / T1204 2026V3 / T5018 2026V3 / NR4 2026V3 specification (CRA XML schema 1-26-3). CRA rejects empty optional tags, so the tool leaves out any optional field that's blank.
Upload the downloaded XML file through CRA's Internet File Transfer (IFT) application. You can log in with My Business Account, Represent a Client, or a web access code.
Original vs amendment: set Report Type to Original (rpt_tcd O) the first time you file a return. To correct slips CRA has already accepted, set it to Amendment (A) and include only the slips that changed, each one complete, not just the corrected boxes. Sending a second Original for the same year can be flagged as a duplicate.
Submission Reference ID: every file you send needs a new one. If you reuse an ID, CRA can reject the file. TaxXML.ca saves your Step 3 details in this browser and bumps the ID automatically when you come back (e.g. A → B). Check it before you generate.
Blank optional fields: CRA rejects empty tags such as <pstl_cd/>. Leave optional cells blank rather than typing "N/A" or a space. The tool leaves blank optional fields out of the XML entirely.
As an automation consultant at AVANZA Business Automation, I constantly saw small businesses and accountants struggling with CRA's strict XML filing requirements. If you file more than 5 T4, T5018 or NR4 slips, CRA requires electronic filing, and T1204 slips must always be filed electronically. Because XML is notoriously difficult for non-programmers to generate from Excel, businesses are often forced to buy bloated, expensive payroll software just for this one feature. I built TaxXML.ca as a fast, free, and secure alternative to democratize tax filing for Canadian businesses.Luis Cortes, AVANZA Business Automation
Yes. TaxXML.ca is completely free to use. If it saved your business time and money, consider buying me a coffee ☕