Free T4 XML generator for CRA
Built to CRA XML schema 1-26-3 (T619 2026, T4 2026V4)
If you pay employees in Canada and issue more than 5 T4 slips for a year, CRA wants them filed electronically. One way to do that is an XML file uploaded through CRA's Internet File Transfer (IFT). TaxXML turns the T4 spreadsheet you already have into that file, in your browser, for free.
Information and a conversion tool, not advice
TaxXML provides information and a conversion tool only. It is not tax, legal, or accounting advice. CRA specifications change, so always verify the requirements, and your files, against the CRA's official XML specifications for information returns before you file.
What a T4 XML file is
A T4 XML file is one <Submission> with two parts:
- T619 transmitter record. The wrapper that says who is sending the file: the transmitter's CRA account number (usually the 15-character business number), a Submission Reference ID, a contact name, phone and email, and the language.
- T4 return. One
<T4Slip>per employee, followed by one<T4Summary>with the employer's details and the totals for every slip in the file.
You upload the file to IFT, which checks it against CRA's XML schema. Electronic filing is required once you file more than 5 slips of a type in a calendar year. Below that, it is optional but still accepted.
CRA XML specifications in plain terms
CRA publishes the rules for these files as XML specifications and a downloadable schema. TaxXML follows schema 1-26-3: T619 2026 for the transmitter record and T4 2026V4 for the return. The elements you will see most:
bn15: the transmitter's 15-character account number, usually the business number.sbmt_ref_id: Submission Reference ID, up to 8 letters or digits, new for every file you send.EMPE_NM,sin: the employee's name and 9-digit social insurance number.bn: the employer's payroll account, for example123456789RP0001.empt_prov_cd: province of employment, as a 2-letter code.T4_AMT: the box amounts, such as employment income (Box 14), CPP contributions, EI premiums and income tax deducted.rpt_tcd: report type.Ofor original,Afor amendment,Cfor cancel.tx_yr,slp_cnt,T4_TAMT: on the summary, the tax year, the number of slips and the totals.
The full rules are on CRA's site: XML specifications for information returns and the T619 2026 specification.
How to make a T4 XML file in 3 steps
- Open your spreadsheet. T4 is already selected in the converter. Open the .xlsx or .csv with one row per employee. Not sure how to lay it out? Download the T4 sample spreadsheet.
- Check the columns and fill in the filing details. TaxXML matches your headers to CRA fields. Fix any it missed, then enter the transmitter and employer details. Those are saved in this browser for next time.
- Generate and download. Problems are listed by row and column before anything downloads. Then upload the XML to IFT signed in with My Business Account, Represent a Client, or a web access code (WAC).
Common reasons CRA rejects a T4 XML file
- SINs that lost their leading zero. Excel treats
046454286as a number and drops the zero, leaving 8 digits. Format the SIN column as Text. TaxXML reads SINs as text, and flags any SIN that isn't 9 digits or fails the checksum. - Empty optional tags. CRA rejects files that contain empty optional tags: a tag with nothing in it, like
<pstl_cd/>, gets the file rejected. Optional fields with no value must be left out entirely. TaxXML leaves out blank optional fields. Don't type "N/A" or a space to fill a cell. - Business number in the wrong format. A BN here is 15 characters: 9 digits, 2 letters, 4 digits. For T4 the employer account uses the RP payroll program, for example
123456789RP0001. A 9-digit BN on its own is not enough. - Reused Submission Reference ID. Every file needs a new one. TaxXML bumps it for you (A to B) when you come back to resubmit.
- A second original instead of an amendment. Corrections to accepted slips go in as an amendment, not another original.
Other free CRA XML returns
The same converter handles these. Pick the return in Step 1: