Free T1204 XML generator for CRA
Built to CRA XML schema 1-26-3 (T619 2026, T1204 2026V3)
Federal government departments, agencies and Crown corporations report the service contract payments they make on the T1204 Government Service Contract Payments return: a T1204 slip for each recipient and a T1204 Summary. The return is due on or before the last day of March following the calendar year. TaxXML turns the T1204 spreadsheet you already have into the XML file CRA accepts through Internet File Transfer (IFT), 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 T1204 XML file is
A T1204 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.
- T1204 return. One
<T1204Slip>per recipient, followed by one<T1204Summary>with the paying department'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. T1204 returns must be filed electronically, whatever the number of slips, through Internet File Transfer or Web Forms. There is no slip threshold below which CRA accepts a paper T1204.
CRA XML specifications in plain terms
TaxXML follows schema 1-26-3: T619 2026 for the transmitter record and T1204 2026V3 for the return. The elements you will see most:
payr_bn: on each slip, the paying department's 15-character payroll (RP) account number, for example123456789RP0001. The summary carries it asbn.RCPNT_BUS_NM: the recipient's business name.sin,rcpnt_bn: the recipient's social insurance number or business number. Both tags appear on every slip; the one that doesn't apply gets a zero placeholder, such as000000000for the SIN.rcpnt_tcd: recipient type:1sole proprietor,3corporation,4partnership.T1204_AMT: the amount paid, assrvc_pay_amtfor service-only payments ormxd_gd_pay_amtfor mixed goods and services.tx_yr,slp_cnt: on the summary, the tax year and the number of slips, with the totals for each kind of payment.rpt_tcd: report type.Ofor original,Afor amendment,Cfor cancel.
The full rules are on CRA's site: XML specifications for information returns and the T619 2026 specification.
How to make a T1204 XML file in 3 steps
- Pick T1204 and open your spreadsheet. Choose T1204 in Step 1 of the converter, then open the .xlsx or .csv with one row per recipient. Not sure how to lay it out? Download the T1204 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 paying department 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 T1204 XML file
- IDs that lost their leading zero. Excel treats a SIN like
046454286as a number and drops the zero. Format the SIN and BN column as Text. TaxXML reads them 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. 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: