Hello everyone,
I’m integrating with the Companies House XML Gateway for submitting IN01 company incorporations using the new CompanyIncorporation-v3-8 schema. I have a test Presenter ID and Authentication Value directly from Companies House staff (Simon), and I’m posting to the correct endpoint:
https://xmlgw.companieshouse.gov.uk/v1-0/xmlgw/Gateway
What is working:
- The request hits the gateway.
- The
<SenderID>and<Authentication><Value>are correctly formatted asmd5#<hash>. <Method>is set toclearas required.
The issue:
No matter what I try, I ALWAYS get the same error:
Error 100:
XML failed schema validation: XML error:
Fatal error encountered during schema scan line 16 column 155
This happens even though:
- The GovTalkMessage root includes only one schemaLocation (Egov_ch.xsd)
<Body>contains only<FormSubmission><FormSubmission>uses exactly:
xmlns="http://xmlgw.companieshouse.gov.uk/Header"- No prefix is used (no ch-header).
- CompanyIncorporation no longer contains any schemaLocation.
Here is the exact XML I am sending (redacted):
<?xml version="1.0" encoding="UTF-8"?>
<GovTalkMessage
xmlns="http://www.govtalk.gov.uk/schemas/govtalk/govtalkheader"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.govtalk.gov.uk/schemas/govtalk/govtalkheader
http://xmlgw.companieshouse.gov.uk/v1-0/schema/Egov_ch.xsd">
<EnvelopeVersion>1.0</EnvelopeVersion>
<Header>
<MessageDetails>
<Class>CompanyIncorporation</Class>
<Qualifier>request</Qualifier>
<TransactionID>ED847AA1E8A047738BF019D2527968F3</TransactionID>
</MessageDetails>
<SenderDetails>
<IDAuthentication>
<SenderID>md5#d75d15c712c7f01739eafb9c0b5a1e18</SenderID>
<Authentication>
<Method>clear</Method>
<Value>md5#e04dc725dc513f0979fef06afa2dddb1</Value>
</Authentication>
</IDAuthentication>
</SenderDetails>
</Header>
<GovTalkDetails><Keys/></GovTalkDetails>
<Body>
<FormSubmission xmlns="http://xmlgw.companieshouse.gov.uk/Header">
<FormHeader>
<CompanyName>Test Ltd</CompanyName>
<PackageReference>0012</PackageReference>
<FormIdentifier>CompanyIncorporation</FormIdentifier>
<SubmissionNumber>000004</SubmissionNumber>
</FormHeader>
<DateSigned>2025-11-28</DateSigned>
<Form>
<CompanyIncorporation xmlns="http://xmlgw.companieshouse.gov.uk">
<CompanyType>BYSHR</CompanyType>
<CountryOfIncorporation>EW</CountryOfIncorporation>
...
</CompanyIncorporation>
</Form>
</FormSubmission>
</Body>
</GovTalkMessage>
Expected behavior:
I expected the gateway to accept the XML or at least show a schema path of the validation failure.
Actual behavior:
The gateway responds with:
<SenderID></SenderID>
<Method>CHMD5</Method>
<Value></Value>
Error 100
Fatal error encountered during schema scan line 16 column 155
What Simon from CH already confirmed:
- Endpoint is correct
- Must use
md5#<hash>format <Method>must beclear- Do NOT combine hashes (no PresenterID + AuthValue + SubmissionNumber)
- IN01 must use v3.8
FormSubmissionmust use only
xmlns="http://xmlgw.companieshouse.gov.uk/Header"
What I need help with:
Can anyone confirm the exact required XML structure for:
<Body><FormSubmission><Form><CompanyIncorporation>nesting- Namespace expectations between Header and Body
- Any common hidden mistakes that cause a failure at “line 16 column 155”?
(that line corresponds to<Body>)
If someone has a working example (even simplified), that would be extremely helpful.
Thanks!