TEJ withholding XML validator
TunisiaTEJ refuses an entire deposit when one certificate is malformed, without saying which. This names it.
Drop your retenue-à-la-source XML here, or choose it.
The file is read in your browser and sent nowhere. It names every beneficiary and every amount — not data to hand a third party for a syntax check.
Checks are based on the published CCT-RS-V2 specification and XSD schemas: specification (PDF) · TEJ platform
What gets a file refused
Four causes account for nearly every rejection, and three of them come from the spreadsheet upstream.
Amounts in millimes
The schema types amounts as integers rounded to millimes: 1,234.500 TND is written 1234500. A spreadsheet stores 1234.5, and the decimal point gets the deposit refused. This is the single commonest cause.
The tax ID
Seven digits then a capital letter, for the declarant and for every beneficiary. A truncated or lowercased ID passes unnoticed in an export and stops everything.
Duplicate references
The declarant’s certificate reference must be unique. Two rows sharing one gets the whole deposit rejected, and the message does not say which.
The arithmetic
Net paid = TTC − withholding, exactly. One millime of rounding drift is enough. The tool recomputes every operation and points at the line.
When it helps
- A deposit TEJ refused with no usable explanation
- A file produced by payroll software or an in-house export
- Before the first monthly declaration of the year
- For a firm depositing on behalf of several companies
Frequently asked
Is my file uploaded anywhere?
No. It is read and analysed in your browser and nothing leaves it. The file names every beneficiary and every amount paid to them — not data to hand a third party for a syntax check, and a tool that asked for it would deserve to be refused.
Does “no problems found” mean TEJ will accept it?
No, and the tool will never say so. It checks the rules that actually cause rejections — identifier formats, millimes, arithmetic, enumerations — not the entire XSD. Only the platform accepts a deposit.
Why do amounts have no decimal point?
Because the dinar carries three decimals and the schema types amounts as integers in millimes. So 1,234.500 TND is written 1234500. It is counter-intuitive, and it is the first cause of rejection.
What are the checks based on?
The CCT-RS-V2 specification and the XSD schemas published by the administration (TEJDeclarationRS_v1.0.xsd and its two companions). The links sit under the tool so you can verify any rule stated here.
Is TEJ mandatory?
Since 1 January 2026 the platform is mandatory for every company. Certificates must be issued no later than the end of the month following the month of payment.
A technical checker. It confers no acceptance and is not tax advice. The rules checked come from the published CCT-RS-V2 specification and XSD schemas.
Is your TEJ file assembled by hand every month?
An export that has to be corrected in a spreadsheet before every deposit is a process that breaks monthly. We build the invoicing and ERP that produce a conforming file straight from your entries, with the checks before the deposit rather than after the refusal.
Our other free tools
All free, in the browser, no account.
Fill in and download the request as a PDF under Decree 148/2026.
Labour rights calculatorSaudi ArabiaEnd of service, leave, overtime, termination and unpaid wages on one page.
End of service calculatorSaudi ArabiaWhat is owed under Articles 84 and 85, including the resignation reduction.
VAT calculatorAdd VAT to an amount or extract it, at the Saudi 15% and every Arab rate.
VAT number checkerSaudi ArabiaCheck the format of a Saudi VAT number and what each segment means.
Nitaqat calculatorSaudi ArabiaSaudization rate, and the hires needed to reach a required one.
Discount calculatorPrice after a discount, or the rate between two prices.
Overtime calculatorSaudi ArabiaOvertime pay under Article 107, with allowances and Ramadan hours.
Leave calculatorSaudi ArabiaAnnual leave balance: 21 days, 30 after five years, and its cash value.
Number to Arabic wordsTurn an amount into correct Arabic words for cheques, invoices and contracts.
Tafqit APITurn amounts into vocalised Arabic words inside your own systems — a direct API.
Breach notification deadlineWork out the 72-hour deadline for each authority, from the moment you became aware.
Online Arabic keyboardWrite Arabic from any device by typing in Latin letters.
The Arabic alphabetAll 28 letters, their 4 forms and the harakat, with a printable PDF.
Add the harakatAdd the vowels back to undiacritized Arabic, in your browser.
Fix reversed Arabic textRepair Arabic from Photoshop or a PDF: reversed order, disconnected letters.
Decorate Arabic textGeometric and floral ornament for your name or bio, ready to copy.
Fancy name generatorDecorate a name in Arabic or Latin, with a check on what survives.
Arabic typing tutorGraded lessons on the Arabic 101 layout, with live speed.
Quran & hadith image makerPick a verse or a hadith from Bukhari and get a framed image, ready to share.