So now we have two accounts documents: one reliably succeeds; the other reliably fails. So, what (apart from the obvious) is the difference between them?
One of the things that I like about having two files, one of which works, is that you can keep modifying the file that works until it stops working. And that tells you exactly what the problem is. It's much more reliable than having something that doesn't work.
You may ask: does it matter? And part of the answer is "no, it doesn't". With a working file, that's all we need to generate something that looks like that. But I'm still in the dark with regard to a lot of this XBRL stuff, and we still don't have a working computations file, so I want to try and understand it.
A few minutes later ...
On second thoughts, maybe it doesn't matter. It would seem that the accounts generator the government has been using spits out accounts that are simply incompatible with the schema (maybe this is why they're getting rid of it?). But at least we have the microaccounts to work from, so let's see what we can do with the computations.Computations
I have struggled to find a valid computations file, but I recently came across the government document CT_Online_XBRL_Technical_Pack_2.0.pdf, which includes a set of links at the end. Included amongst these is: CT 2015v1.0 – example iXBRL Simple test case showing mandatory items for v2.1 (=CT600v3). And this expands to CTv3-2015v1.xml, which claims to be a valid computations file. Let's put that to the test shall we?The first time I run it through, I get the following errors:
2 error(s) reported:Yeah, fair enough. I need to modify those details.
Code Raised By Location Type Message
3001 Department business The submission of this document has failed due to departmental specific business logic in the Body tag.
1607 ChRIS Computations Business The UTR on the Computation must match the UTR on the CT600 AND the 'date for the end of the period' in the Computation must match the 'Period covered to' date in the CT600
submission failed: 2 error(s) reported
Sadly, when I do that, the number of errors increases:
3 error(s) reported:OK, so probably the most important error here is 3320: I am using an out of date taxonomy. That isn't going to fly, given that I want to submit future accounts. Let's see if we can track down another example somewhere with the correct taxonomy.
Code Raised By Location Type Message
3001 Department business The submission of this document has failed due to departmental specific business logic in the Body tag.
3320 ChRIS Computations business The period to which this Return's Computation applies does not coincide with the effective from/to dates of the referenced Computation Taxonomy. Please correct and re-submit.
1607 ChRIS Computations Business The UTR on the Computation must match the UTR on the CT600 AND the 'date for the end of the period' in the Computation must match the 'Period covered to' date in the CT600
submission failed: 3 error(s) reported
Google was able to find this: taxonomies accepted by HMRC, which contains a link to CT2024-v1.0.0.zip, which contains another sample file iXBRL-sample-ct-comp-2024.xhtml. So let's try that.
Not surprisingly, we get the same errors back:
2 error(s) reported:Let's try and fix that. This took a little longer than I was expecting, given that it had a number of dates in it that were "clearly" wrong, for periods such as 2024-01-03 to 2024-01-04. Presumably this was filled in from a spreadsheet that was automatically generated with monotonically increasing dates.
Code Raised By Location Type Message
3001 Department business The submission of this document has failed due to departmental specific business logic in the Body tag.
1607 ChRIS Computations Business The UTR on the Computation must match the UTR on the CT600 AND the 'date for the end of the period' in the Computation must match the 'Period covered to' date in the CT600
submission failed: 2 error(s) reported
Anyway, I was able to fix all of that and voilĂ : I was able to submit a tax return with accounts and computations:
2026/01/29 08:44:23 <GovTalkMessage xmlns="http://www.govtalk.gov.uk/CM/envelope">
<EnvelopeVersion>2.0</EnvelopeVersion>
<Header>
<MessageDetails>
<Class>HMRC-CT-CT600</Class>
<Qualifier>response</Qualifier>
<Function>submit</Function>
<TransactionID/>
<CorrelationID>189B1F57FAAE4E57A54A5D1F3D14C690</CorrelationID>
<ResponseEndPoint PollInterval="10">https://test-transaction-engine.tax.service.gov.uk/submission</ResponseEndPoint>
<Transformation>XML</Transformation>
<GatewayTimestamp>2026-01-29T08:44:23.599</GatewayTimestamp>
</MessageDetails>
<SenderDetails/>
</Header>
<GovTalkDetails>
<Keys/>
</GovTalkDetails>
<Body>
<SuccessResponse xmlns="http://www.inlandrevenue.gov.uk/SuccessResponse">
<IRmarkReceipt>
<dsig:Signature xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">
<dsig:SignedInfo>
<dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
<dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
<dsig:Reference>
<dsig:Transforms>
<dsig:Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
<dsig:XPath>(count(ancestor-or-self::node()|/gti:GovTalkMessage/gti:Body)=count(ancestor-or-self::node())) and (count(ancestor-or-self::node()|/gti:GovTalkMessage/gti:Body/[name()='IRenvelope']/[name()='IRheader']/*[name()='IRmark'])!=count(ancestor-or-self::node()))</dsig:XPath>
</dsig:Transform>
<dsig:Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"/>
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<dsig:DigestValue>AIxIEmcusqrDPubQ3uJwrIs98zw=</dsig:DigestValue>
</dsig:Reference>
</dsig:SignedInfo>
<dsig:SignatureValue>w8RMS+vhauwMoZNxNpeQCBIGmBX4ZrNLswRCH+5tNooB1zjB+gdon7xFgzNo6NYRqZhKBjcBQ3fD
8nvOM/gMlsnTzgwsAvxroF2F2ea4nNQdS7xH4ONQzX3YI2FNo6lsB9+Dg55LYrm5vPyVF4STIrKS
MbdN8aJRmbPonNCihVR52/eJ9G6GV9DAYPlKX+qcX3i2L6O6mmLCyfEw+i0+OHRpYZLaNg/23bva
ui4GuhU9LKv4m78lEGOyC6RIUEGpZk1HFSlPfhU98hkHJuPuHLVl/j7DJxhOtXbyTNMGLMQKtws7
zYWTRwRVdkHtLabysDGo++a3P6L1i5dc5d83/g==</dsig:SignatureValue>
<dsig:KeyInfo>
<dsig:X509Data>
<dsig:X509Certificate>MIIG1DCCBbygAwIBAgIQAXlGdOaNS07zg7WUCv1YHDANBgkqhkiG9w0BAQsFADBZMQswCQYDVQQG
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMTMwMQYDVQQDEypEaWdpQ2VydCBHbG9iYWwgRzIg
VExTIFJTQSBTSEEyNTYgMjAyMCBDQTEwHhcNMjUwNzI1MDAwMDAwWhcNMjYwODI1MjM1OTU5WjBe
MQswCQYDVQQGEwJHQjEPMA0GA1UEBxMGTG9uZG9uMR8wHQYDVQQKExZITSBSZXZlbnVlIGFuZCBD
dXN0b21zMR0wGwYDVQQDExRpcmE3NDgzNy5obXJjLmdvdi51azCCASIwDQYJKoZIhvcNAQEBBQAD
ggEPADCCAQoCggEBAOsinZ11A32r4dVz3yX63ePFY7uabzWncwKR4ZeHDp50b9LsFS1/4+H50vsc
V73BD/WL7Dkq0x8tYaQKBzj3A9E5KQNLhtlPR/HbjmL91c8C/PVvEwoxWUOMMJSvt9ie0YVX8nKa
VJfRILfqh8RyfWgxqT/6o5VFHmo233Dmx1TKPqPNzTqsu+ereAcHk9jLy63GXBVf0UZ64i1/dSIm
47VixZogwHkxqgcAIRhI9hZNdSzpBAishe5tdYW2mDwGSjsT4s/XXAItztrfsQgsEim1y4QylYRK
bis1bemYknj/rOfShviF270NI1D05hvi6/p3QHwWmnkCRT+mGYa/nLcCAwEAAaOCA5EwggONMB8G
A1UdIwQYMBaAFHSFgMBmx9833s+9KTeqAx2+7c0XMB0GA1UdDgQWBBQ3M7FFraa3yHrDZrOtwvdZ
J0+WKjAfBgNVHREEGDAWghRpcmE3NDgzNy5obXJjLmdvdi51azA+BgNVHSAENzA1MDMGBmeBDAEC
AjApMCcGCCsGAQUFBwIBFhtodHRwOi8vd3d3LmRpZ2ljZXJ0LmNvbS9DUFMwDgYDVR0PAQH/BAQD
AgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjCBnwYDVR0fBIGXMIGUMEigRqBEhkJo
dHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRHbG9iYWxHMlRMU1JTQVNIQTI1NjIwMjBD
QTEtMS5jcmwwSKBGoESGQmh0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEdsb2JhbEcy
VExTUlNBU0hBMjU2MjAyMENBMS0xLmNybDCBhwYIKwYBBQUHAQEEezB5MCQGCCsGAQUFBzABhhho
dHRwOi8vb2NzcC5kaWdpY2VydC5jb20wUQYIKwYBBQUHMAKGRWh0dHA6Ly9jYWNlcnRzLmRpZ2lj
ZXJ0LmNvbS9EaWdpQ2VydEdsb2JhbEcyVExTUlNBU0hBMjU2MjAyMENBMS0xLmNydDAMBgNVHRMB
Af8EAjAAMIIBfwYKKwYBBAHWeQIEAgSCAW8EggFrAWkAdQDXbX0Q0af1d8LH6V/XAL/5gskzWmXh
0LMBcxfAyMVpdwAAAZhCMS7MAAAEAwBGMEQCICXglyjFEQqtO4utp9X05bRcKqX2IRSbRARNQerW
M7ldAiBzNoFRirdcAF8AbSAvr2RS0IK4qlkq66eQAijyw5j8ggB3AMIxfldFGaNF7n843rKQQevH
wiFaIr9/1bWtdprZDlLNAAABmEIxLwoAAAQDAEgwRgIhAJ7N3qWEzN5sRjeiStCNiARFHFFfZE8P
vJqnSArOnWytAiEA6rBJlBVQedIu/rEKeybndcGSt75Emne634xyrH/dNA4AdwCUTkOH+uzB74Hz
GSQmqBhlAcfTXzgCAT9yZ31VNy4Z2AAAAZhCMS8eAAAEAwBIMEYCIQC+TF9LUDY8I+2IlguM3a9E
wtHuhYMop3/K/qTh0428fAIhALQcptxsZTQte36EU7ulrFu8SZejwtI7NHJ+KbM2z8ZoMA0GCSqG
SIb3DQEBCwUAA4IBAQBHFr3J/EH0xKZl6Lsn8HClBCnRvJKz2QzRfuVtIGxVenISLdS11h5gEhyG
T2mE5gvlz9Eop9GkFNwGa7AOMq4hUaDZrBhEFUxqPHqrQDzhlnQdnLSNlynw3I4LA/CaUQH4yy06
9TkHJf4tGx2n/uMnYljLt0Ipn8qXRUu2U/M1WQnlPLzeudNpinI5MIC/0yVofvpRWFh5k/YK+cbz
GE8nPDvlpxakYT3hVrCLGHTQwPlKKzb+i2B2UPtcD4JdY8Za4KRDcl4UH3FDEaEw7IyIsCTU3NA/
C0n9Y/lRZpWoFF9CSYy0lS+3UhJK+HNIXIKNnfGC1rqxGhs+9Wim/UVB</dsig:X509Certificate>
</dsig:X509Data>
</dsig:KeyInfo>
</dsig:Signature>
<Message code="0000">HMRC has received the HMRC-CT-CT600 document ref: 8596148860 at 08.44 on 29/01/2026. The associated IRmark was: ACGEQETHF2ZKVQZ643IN5YTQVSFT34Z4. We strongly recommend that you keep this receipt electronically, and we advise that you also keep your submission electronically for your records. They are evidence of the information that you submitted to HMRC.</Message>
</IRmarkReceipt>
<Message code="077001">Thank you for your submission</Message>
<AcceptedTime>2026-01-29T08:44:04.091</AcceptedTime>
</SuccessResponse>
</Body>
</GovTalkMessage>
No comments:
Post a Comment