HMRC Submission Errors Explained: What Every CT600 Rejection Code Actually Means
Almost every CT600 that gets rejected is rejected for a boring reason. A gateway password that was never enrolled for Corporation Tax. A UTR with a transposed digit. An amendment filed against a period HMRC does not hold. A return that was already accepted last month by someone else in the office.
The problem is that HMRC does not tell you that in plain English. It tells you something like "The submission of this document has failed due to departmental specific business logic in the Body tag", and leaves you to work out which of the forty-odd things that could mean actually applies to you.
This guide is our field manual. It covers the HMRC error codes that genuinely turn up in production — drawn from the submissions WeFile has actually filed, not from a theoretical list — what each one means, and exactly what to do about it. It also covers the failure mode nobody warns you about: the return that is accepted by the gateway and then quietly rejected days later.
First, understand that there are two HMRC systems, not one
When you submit a CT600, your return does not go straight into HMRC's corporation tax records. It passes through two entirely separate systems, and it can fail at either.
Stage 1 — the Government Gateway (ChRIS)
This is the synchronous stage. Within seconds to a couple of minutes, HMRC's transaction engine checks:
- Your credentials (gateway ID, password, and whether they are enrolled for the CT service for that UTR)
- That the XML validates against the CT600 v3 schema
- That the IRmark — the cryptographic fingerprint of the submitted document — is well formed
- A first pass of business-logic rules (duplicate returns, amendment eligibility, period sanity)
If this stage succeeds you get back a signed IRmark receipt. In WeFile the submission flips to Accepted and the IRmark is stored against the filing. Typical round trip is under 20 seconds; occasionally it takes a minute or two.
Stage 2 — COTAX
COTAX is HMRC's actual corporation tax record system. Your accepted return is posted to it asynchronously, after the gateway has already told you everything was fine. If COTAX cannot match or accept the return, there is no second gateway response. There is no API to query. HMRC notifies you by email to your Government Gateway address, or by post, or in some cases by telephone.
An IRmark receipt proves HMRC received and accepted your document. It does not, on its own, prove the return has been logged against your company's corporation tax record. Ninety-nine times out of a hundred those are the same thing. The exception is what most "my return vanished" cases turn out to be.
Keep that split in mind — it explains why the fixes below fall into two very different families.
Error 3001 — the code that means nothing on its own
HMRC wording: "The submission of this document has failed due to departmental specific business logic in the Body tag."
This is the single most common code you will ever see, and it is not an error. It is the envelope. HMRC's GovTalk protocol wraps almost every business-logic rejection in a 3001, and the real reason sits next to it in the same error block.
So the rule is simple: never try to fix a 3001. Scroll down and read the second code. If a 3001 appears completely on its own with no companion code, that is almost always a schema-level problem in the generated document — an element in the wrong context, an unexpected tag, a mandatory sub-element left incomplete. That is our side of the fence, not yours; send it to us.
Error 1046 — Authentication Failure (and its Companies House twin, 9999)
HMRC wording: "Authentication Failure. The supplied user credentials failed validation for the requested service."
This is the most common genuinely user-fixable error, and it is worth being precise about what it does not mean. It does not mean your figures are wrong. It does not mean anything was filed. HMRC never looked at your return — it stopped at the door.
The usual causes, in rough order of frequency:
- Wrong password. The Government Gateway password, not your WeFile password, and not your HMRC online services PIN.
- The gateway account is not enrolled for Corporation Tax. A Gateway ID enrolled only for VAT or PAYE will authenticate fine for those services and fail for CT.
- The enrolment does not cover this UTR. Common where a company has moved between agents, or where a director is using their personal Gateway rather than the company's.
- Agent filing with client credentials, or the reverse. If you are filing as an agent, you need your agent Gateway credentials and your agent reference.
- Gateway ID typed with spaces or the wrong length. It is 12 characters.
What WeFile does: because nothing was submitted, we deliberately do not keep a failed-authentication submission record cluttering up your filing history. Instead the filing moves to Requires attention, we show a notice that says clearly that the return was not submitted, and we put the credential form inline right there so you can correct the details and retry in one step. We also count consecutive authentication failures and stop any automatic retry, so a wrong password can never loop.
The Companies House equivalent is error 9999, "Invalid CompanyAuthenticationCode" — the six-character authentication code posted to the registered office, which is completely separate from your HMRC credentials. It is by far the most common Companies House rejection. If you do not have it, request a reminder from Companies House; they will post it to the registered office, which takes a few days.
Error 3304 — "Original return already received for this period"
HMRC already holds a return for that company and that accounting period. Your submission was refused because HMRC will only accept one original return per period; anything after that has to be flagged as an amendment.
Nine times out of ten the cause is one of:
- Your previous accountant or agent already filed it
- It was filed directly on HMRC's own service before you moved to WeFile
- Someone else in your organisation filed it
- You filed it yourself and the return really did land — see the two-stage section above
What to do. WeFile gives you two buttons on the failed submission, both available to ordinary users as well as admins:
- Submit as an Amendment. If your figures are the correct, final ones and you want HMRC to hold your version, this converts the filing to an amendment and resubmits it. HMRC replaces the return it holds with yours.
- Mark as Previously Submitted. If the return HMRC holds is correct and you were only duplicating work, this records the period as already filed and closes it off without sending anything further.
There is a third, slightly sneaky use for 3304. Because it fires whenever HMRC holds a return, deliberately resubmitting an identical return is the most reliable way to find out whether an earlier submission actually posted to COTAX. A 3304 means HMRC has it. A clean acceptance means it never landed.
Errors 1610, 1611 and 1612 — the amendment family
Amendments have their own rules, and all three of these codes come from breaking one of them.
1610 — the period does not match
HMRC wording: "The accounting period for this amended return does not match the records currently held for the company."
You cannot amend a period HMRC does not hold. If HMRC's record runs 1 January to 31 December and your amendment covers 1 January to 30 November, there is nothing to amend — from HMRC's point of view you are describing a different period. This is extremely common after an accounting reference date change, and after a long period of account that was split into two returns where the halves were later reconstructed differently.
WeFile detects 1610 and offers a change accounting period panel directly on the rejection, for users and admins alike. You set the period to match what HMRC actually holds (check it on your CT603 notice or in your HMRC online account), we recalculate the return against the new dates, and you resubmit.
1611 — there is no original return to amend
The mirror image of 3304: you flagged the return as an amendment, but HMRC has no original on file for that period. The classic cause is a filing where only the Companies House accounts leg ever went through, so HMRC never received anything, but the filing was subsequently treated as a revision.
The fix is to convert the filing back to an original return and resubmit. In WeFile that conversion is an admin action, so raise a ticket and we will flip it and resubmit for you — it takes minutes.
1612 — too late to amend
HMRC wording: "Cannot file an amendment after the allowable due date (CTISS002)."
The amendment window has closed. You normally have 12 months from the statutory filing date — broadly two years from the end of the accounting period — to amend a return. After that HMRC's systems will not take an amended return at all, and no software can force it.
This one is not fixable in the app, and we would rather say so than have you retry it five times. If tax was overpaid, the route is a claim for overpayment relief (generally within four years of the end of the accounting period), made in writing to HMRC with the specific wording and declarations that HMRC requires. If more tax is due, disclose it to HMRC in writing rather than trying to file. If in doubt, take advice — this is a tax-law question, not a software one.
Error 1608 — "Unable to lookup taxpayer details"
HMRC could not find the taxpayer your return claims to be for. In practice that comes down to a small number of causes:
- The UTR is wrong. A transposed or missing digit is the most likely explanation. The UTR is 10 digits and it is on your CT603 notice to deliver, and on most HMRC correspondence.
- The UTR does not belong to that company registration number. Easy to do when a group has several companies and one UTR is copied across.
- There is no open accounting period on COTAX. If HMRC still has the company down as dormant, or has never issued a notice to deliver for that period, there is nothing to file against.
Check the UTR first, character by character, against the CT603. If the UTR is definitely right, this is one to raise with HMRC's corporation tax helpline — you may need them to open the accounting period or reactivate the company record before any software can file.
Errors 9043 and 9200 — computation and tax-rate consistency
These are the codes that mean "your numbers do not agree with HMRC's arithmetic".
9043: "Entry must agree with the result of the computation of marginal relief (please contact your software supplier)." HMRC recalculates marginal relief itself and rejects the return if the figure differs by even a penny. The classic cause is prorating the £50,000 and £250,000 profit limits across financial years using the wrong day count — a leap year has 366 days, and using 365 throws marginal relief out by a few pounds. We hit exactly that, fixed it, and now prorate each financial year on its own day count.
9200: a mismatch between the company type in box 4 and the tax rate applied — for example a standard trading company (type 0) that has not been given one of the permitted CT rates.
Note HMRC's own parenthetical in 9043: contact your software supplier. That is us. If you see either of these codes, do not spend an evening reverse-engineering marginal relief — open a ticket with the filing reference and we will look at the computation directly. These are almost always fixed in the software, not in your data.
Schema and iXBRL validation errors — 4065, 4066, 4084, 4085 and friends
This family covers errors raised while HMRC validates the structure of the submitted XML or the iXBRL accounts and computation, rather than the meaning of the figures. They tend to look intimidating and read like compiler output:
- "Invalid content found at element 'From'" (4065)
- "Value '2014-11-01' is too small" (4084)
- "cvc-complex-type.2.4.a: Invalid content was found starting with element '…ShareholderFunds'" (an XBRL schema failure, often reported with no useful code at all)
With one exception, these are our problem and not yours. Element names, the order of the header block, incomplete optional blocks (bank details are all-or-nothing, for instance), non-ASCII characters pasted in from Word, taxonomy tags used in the wrong context — all of that is generated by WeFile, so a validation failure here means we have a bug to fix. Send us the filing reference.
The exception is 4084 on a period start date. HMRC's CT600 version 3 online service cannot accept accounting periods beginning before 1 April 2015 — those need CT600 version 2, which no longer exists online. There is no workaround in any software. WeFile now blocks such periods before you can submit and explains why, and if an old filing throws a 4084 we show a specific message rather than the raw XML complaint. Very old periods have to be filed on paper, with HMRC's agreement.
The hard one: accepted by the gateway, rejected later by COTAX
This is the failure mode that generates the most anxiety, because every signal you have says the return was fine. You have an acceptance, you have a signed IRmark receipt, you have a PDF of everything you filed. Then weeks later a letter arrives saying the return "failed HMRC's online data checks", or the return has been "voided", or HMRC issues a determination as though nothing was ever filed.
What has happened is that stage 1 succeeded and stage 2 failed. COTAX could not match the return to a live record. The dominant causes, in order:
- The accounting period does not match the CT603. Even a one-day difference is enough.
- A UTR typo that still happened to be a structurally valid UTR.
- A company registration number that does not match the UTR HMRC holds.
- No open accounting period on COTAX — often a company HMRC still treats as dormant.
How to find out where you stand
- Check the Government Gateway inbox for the email address on the gateway account used to file — not your WeFile account email. Second-stage rejections are notified there. WeFile never sends these emails, so if you are waiting for us to tell you, you will wait forever.
- Allow a couple of business days before concluding anything. A successfully posted return does not always appear in your HMRC online account immediately.
- Resubmit the identical return. This is the definitive test. If HMRC comes back with 3304, your return is logged and you can relax. If it is accepted cleanly, the first one never posted — and now it has.
Two things worth knowing before you phone HMRC
Do not ask HMRC to "unlog" a return as a way of clearing the decks. Unlogging can reopen penalty positions that were closed, and it rarely achieves what people expect.
A determination must be displaced by an original return, not an amendment. If HMRC has issued a determination because it believes no return was filed, the return that replaces it has to go in as an original. Filing it as an amendment will simply bounce with 1611.
The Companies House side, briefly
A WeFile filing can have two legs — the CT600 to HMRC and the statutory accounts to Companies House — and they fail in completely different ways. The Companies House rejections worth recognising:
- 9999 — Invalid CompanyAuthenticationCode. The six-character code posted to the registered office. Nothing to do with HMRC credentials.
- 3081 — the balance sheet is not made up to the correct accounting reference date. Companies House checks the made-up date against the ARD it holds. The usual cause is a long period of account: HMRC requires it to be split into two returns of no more than 12 months each, but Companies House wants one set of accounts made up to the ARD. WeFile handles the split for you and files the accounts to the ARD date.
- 3082 — accounts for this period have already been received and accepted. The Companies House duplicate. Usually the accounts were filed on the WebFiling service or by another agent.
- 3069 — amending accounts must be made up to the original date shown on the accounts previously filed.
- 2422 — Community Interest Companies cannot file accounts electronically through software. WeFile checks the company profile and disables the accounts leg for CICs before you get there; CIC accounts go to Companies House on paper with the CIC34 report.
- 258, 259 and 2663 are late-filing penalty advisories rather than data errors: they warn you a penalty applies or is about to. The accounts may still be accepted.
As with HMRC, 3081 and 3069 come with a change accounting period panel in WeFile so you can align the dates and refile without starting over.
What WeFile blocks before HMRC ever sees it
The best error is the one you never receive. A good part of the work in WeFile is spent stopping submissions that we know HMRC will refuse:
- A pre-submission consistency check that re-derives the CT600 boxes, the tax computation and the iXBRL accounts from your data and refuses to submit if they disagree with each other. Better a clear message from us than a 3001 from HMRC.
- Automatic splitting of periods over 12 months into two CT600s, because HMRC will not accept a single return covering more than a year.
- Credential format validation — gateway ID length, agent reference format, declarant name and status — with a deliberate split between "you can save this as a draft" and "this is good enough to submit".
- A duplicate-submission guard so one filing cannot have two live HMRC submissions racing each other, and a one-time unlock if you genuinely need to resubmit (which warns you that 3304 is the likely outcome).
- Structural rules HMRC enforces silently: bank details are all-or-nothing, empty supplementary-page blocks are omitted rather than sent as zeros, box 773 must be completed whenever box 693 is claimed, and periods starting before 1 April 2015 are blocked outright.
- CIC detection so the Companies House leg is never attempted for a company that is not allowed to file electronically.
A five-minute triage checklist
Next time a submission fails, work through this in order:
- Ignore 3001. Find the second code in the error block — that is the real error.
- 1046 or 9999? It is credentials. Nothing was filed. Fix the details inline and retry.
- 3304? Someone already filed it. Decide whether to take over the period (Submit as an Amendment) or accept theirs (Mark as Previously Submitted).
- 1610, 3081 or 3069? It is a date problem. Get the true period from your CT603 or from Companies House, change the period, resubmit.
- 1611? The return is flagged as an amendment but HMRC has no original. Ask us to convert it back.
- 1612? The amendment window has closed. Overpayment relief or a written disclosure, not another submission.
- 1608? Check the UTR digit by digit against the CT603; then check the company registration number; then call HMRC.
- 9043, 9200, 40xx or an XBRL schema message? Stop. Send us the filing reference — these are software-side.
- Accepted but you have doubts? Check the Government Gateway inbox, wait two business days, then resubmit the identical return and see whether you get a 3304.
When to contact HMRC and when to contact us
A rough division of labour that will save you time:
Contact HMRC when the problem is in HMRC's records rather than in your return — no open accounting period, a company still shown as dormant, a UTR that HMRC cannot match, a determination to displace, a closed amendment window, or a letter saying a return has been voided. Have the UTR, the company registration number and the period dates in front of you.
Contact us for anything that looks like a software or validation problem: a bare 3001, any 40xx or 90xx code, an XBRL schema message, a consistency-check failure, a filing that needs converting between original and amendment, or a submission that has been sitting in progress for an unreasonable length of time. Quote the filing reference and we can look at the exact XML that went to HMRC and the exact response that came back — every submission is stored, both sides of the conversation.
And if you are simply not sure which side of the line you are on, ask. Diagnosing gateway errors is a large part of what we do all day, and there is no charge for reading a rejection message.
This article explains how HMRC's filing systems behave and how WeFile responds to them. It is general information, not tax advice. Whether a particular figure or claim is correct is a question for you and your accountant.