1

I am receiving the TPE 1105 whenever I try to submit to the IRS through A2A. I have been over the soap examples as well as dug into the wsd's multiple times and have been unable to figure out what might be causing this issue.

If you have any insight I would be so eternally grateful to finally put the 1105 to bed.

    POST [AATS_URL] HTTP/1.1
    Content-Encoding: gzip
    Accept-Encoding: gzip,deflate
    Content-Type: multipart/related; type="application/xop+xml"; start="<root_part>"; boundary="--=_part_85c4167d-966b-4dfd-b6f9-c7a5aa410517"; start-info="text/xml"
    SOAPAction: "BulkRequestTransmitter"
    MIME-Version: 1.0
    Accept: text/xml,multipart/related
    Expect: 100-continue
    Cache-Control: no-cache
    Pragma: no-cache
    User-Agent: Java/1.8.0_111
    Host: la.www4.irs.gov
    Connection: keep-alive
    Content-Length: 16299

    ----=_part_85c4167d-966b-4dfd-b6f9-c7a5aa410517
    Content-Type: application/xop+xml; charset=UTF-8; type="text/xml"
    Content-Transfer-Encoding: 8bit
    Content-Id: <root_part>

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <soapenv:Envelope xmlns:air="urn:us:gov:treasury:irs:ext:aca:air:ty18" xmlns:com="urn:us:gov:treasury:irs:common" xmlns:hdr="urn:us:gov:treasury:irs:msg:acabusinessheader" xmlns:oas1="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:req="urn:us:gov:treasury:irs:msg:irsacabulkrequesttransmitter" xmlns:sec="urn:us:gov:treasury:irs:msg:acasecurityheader" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
        <soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
            <wse:Security xmlns:wse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" Id="SH-3f88e9e4-c4ea-4473-ad04-0b567e2a4bf7">
                <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="SIG-3f88e9e4-c4ea-4473-ad04-0b567e2a4bf7">
                    <ds:SignedInfo>
                        <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#WithComments"/>
                        <ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
                        <ds:Reference URI="#TS-3f88e9e4-c4ea-4473-ad04-0b567e2a4bf7">
                            <ds:Transforms>
                                <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#WithComments">
                                    <ds:InclusiveNamespaces xmlns:ds="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="wse wsa osa1 soapenv air com hdr sec req"/>
                                </ds:Transform>
                            </ds:Transforms>
                        <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
                        <ds:DigestValue>FqYS/pHdN05mKKccxqM4jmEwJNRR+ikRPB7HuyvbGQY=</ds:DigestValue>
                        </ds:Reference>
                        <ds:Reference URI="#MH-3f88e9e4-c4ea-4473-ad04-0b567e2a4bf7">
                            <ds:Transforms>
                                <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
                                    <ds:InclusiveNamespaces xmlns:ds="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="wse wsa osa1 soapenv com hdr sec req"/>
                                </ds:Transform>
                            </ds:Transforms>
                        <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
                        <ds:DigestValue>qlWuAbD2PwDmvK7/KzU56ZWsKhBH2PYW/v2eW/30/4E=</ds:DigestValue>
                        </ds:Reference>
                        <ds:Reference URI="#BH-3f88e9e4-c4ea-4473-ad04-0b567e2a4bf7">
                            <ds:Transforms>
                                <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
                                    <ds:InclusiveNamespaces xmlns:ds="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="wse wsa osa1 soapenv air com sec req"/>
                                </ds:Transform>
                            </ds:Transforms>
                            <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
                            <ds:DigestValue>E2cw4uavSk8RGQeewG04q3tcBRwM6dnMQmSctdJl4k8=</ds:DigestValue>
                        </ds:Reference>
                    </ds:SignedInfo>
                    <ds:SignatureValue>[SIGNATURE_VALUE]</ds:SignatureValue>
                    <ds:KeyInfo Id="KI-3f88e9e4-c4ea-4473-ad04-0b567e2a4bf7">
                        <wse:SecurityTokenReference wsu:Id="STR-3f88e9e4-c4ea-4473-ad04-0b567e2a4bf7">
                            <wse:KeyIdentifier EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3">[CERT_VALUE]</wse:KeyIdentifier>
                        </wse:SecurityTokenReference>
                    </ds:KeyInfo>
                </ds:Signature>
                <wsu:Timestamp wsu:Id="TS-3f88e9e4-c4ea-4473-ad04-0b567e2a4bf7">
                    <wsu:Created>2019-02-15T15:41:01Z</wsu:Created>
                    <wsu:Expires>2019-02-15T15:51:01Z</wsu:Expires>
                </wsu:Timestamp>
            </wse:Security>
            <air:ACATransmitterManifestReqDtl xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="MH-3f88e9e4-c4ea-4473-ad04-0b567e2a4bf7">
                <air:PaymentYr>2018</air:PaymentYr>
                <air:PriorYearDataInd>0</air:PriorYearDataInd>
                <com:EIN>[REDACTED]</com:EIN>
                <air:TransmissionTypeCd>O</air:TransmissionTypeCd>
                <air:TestFileCd>T</air:TestFileCd>
                <air:TransmitterForeignEntityInd>0</air:TransmitterForeignEntityInd>
                <air:TransmitterNameGrp>
                    <air:BusinessNameLine1Txt>[REDACTED]</air:BusinessNameLine1Txt>
                </air:TransmitterNameGrp>
                <air:CompanyInformationGrp>
                    <air:CompanyNm>[REDACTED]</air:CompanyNm>
                    <air:MailingAddressGrp>
                        <air:USAddressGrp>
                            <air:AddressLine1Txt>[REDACTED]</air:AddressLine1Txt>
                            <com:CityNm>[REDACTED]</com:CityNm>
                            <air:USStateCd>[REDACTED]</air:USStateCd>
                            <com:USZIPCd>[REDACTED]</com:USZIPCd>
                        </air:USAddressGrp>
                    </air:MailingAddressGrp>
                    <air:ContactNameGrp>
                        <air:PersonFirstNm>[REDACTED]</air:PersonFirstNm>
                        <air:PersonMiddleNm>[REDACTED]</air:PersonMiddleNm>
                        <air:PersonLastNm>[REDACTED]</air:PersonLastNm>
                    </air:ContactNameGrp>
                    <air:ContactPhoneNum>[REDACTED]</air:ContactPhoneNum>
                </air:CompanyInformationGrp>
                <air:VendorInformationGrp>
                    <air:VendorCd>I</air:VendorCd>
                    <air:ContactNameGrp>
                        <air:PersonFirstNm>[REDACTED]</air:PersonFirstNm>
                        <air:PersonMiddleNm>[REDACTED]</air:PersonMiddleNm>
                        <air:PersonLastNm>[REDACTED]</air:PersonLastNm>
                    </air:ContactNameGrp>
                    <air:ContactPhoneNum>[REDACTED]</air:ContactPhoneNum>
                </air:VendorInformationGrp>
                <air:TotalPayeeRecordCnt>2</air:TotalPayeeRecordCnt>
                <air:TotalPayerRecordCnt>1</air:TotalPayerRecordCnt>
                <air:SoftwareId>[REDACTED]</air:SoftwareId>
                <air:FormTypeCd>1094/1095B</air:FormTypeCd>
                <com:BinaryFormatCd>application/xml</com:BinaryFormatCd>
                <com:ChecksumAugmentationNum>25fbebd1143d8aa935a445db998eb374761113af8b17d67b3a95af9ad73e17bc</com:ChecksumAugmentationNum>
                <com:AttachmentByteSizeNum>7245</com:AttachmentByteSizeNum>
                <air:DocumentSystemFileNm>1094B_Request_[TCC]_20190215T154101026Z.xml</air:DocumentSystemFileNm>
            </air:ACATransmitterManifestReqDtl>
            <hdr:ACABusinessHeader xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="BH-3f88e9e4-c4ea-4473-ad04-0b567e2a4bf7">
            <air:UniqueTransmissionId>3f88e9e4-c4ea-4473-ad04-0b567e2a4bf7:SYS12:[TCC]::T</air:UniqueTransmissionId>
            <com:Timestamp>2019-02-15T15:41:01Z</com:Timestamp>
            </hdr:ACABusinessHeader>
            <sec:ACASecurityHeader>
            <hdr:UserId>[REDACTED]</hdr:UserId>
            </sec:ACASecurityHeader>
            <wsa:Action>BulkRequestTransmitterService</wsa:Action>
        </soapenv:Header>
        <soapenv:Body>
            <req:ACABulkRequestTransmitter version="1.0">
                <com:BulkExchangeFile>
                    <xop:Include xmlns:xop="http://www.w3.org/2004/08/xop/include" href="cid:1094B_Request_[TCC]_20190215T154101026Z.xml"/>
                </com:BulkExchangeFile>
            </req:ACABulkRequestTransmitter>
        </soapenv:Body>
    </soapenv:Envelope>

    ----=_part_85c4167d-966b-4dfd-b6f9-c7a5aa410517
    Content-Type: application/xml
    Content-Transfer-Encoding: 7bit
    Content-Id: <1094B_Request_[TCC]_20190215T154101026Z.xml>
    Content-Disposition: attachment; filename="1094B_Request_[TCC]_20190215T154101026Z.xml"

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <msg:Form109495BTransmittalUpstream xmlns:air="urn:us:gov:treasury:irs:ext:aca:air:ty18" xmlns:com="urn:us:gov:treasury:irs:common" xmlns:msg="urn:us:gov:treasury:irs:msg:form1094-1095Btransmitterupstreammessage" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:us:gov:treasury:irs:msg:form1094-1095Btransmitterupstreammessage ../MSG/IRS-Form1094-1095BTransmitterUpstreamMessage.xsd">
    [REMOVED TO SAVE SPACE]
    </msg:Form109495BTransmittalUpstream>

    ----=_part_85c4167d-966b-4dfd-b6f9-c7a5aa410517-- 

We are generating these soap envelopes manually using the core org.w3c.dom Document library in Java in conjunction with the java xml dsig library for signing and validating.

EDIT-- I've managed to pass the 1105 and am now hitting the 1122 'WS Security Header Error'. I've read over the docs many times, tried to verify everything I can, but am still hitting it. There are a few unknowns for me-

  1. What exactly is expected inside the KeyIdentifier element? I've tried the base64 encoded bytes of the cert, and the public key but the docs from oasis for the x509v3 token aren't exactly very descriptive or maybe I've just misread them.
  2. Is there a way to verify my references are correct? I see them, so that would mean they are being created correctly, no?
  3. If you happen to see anything out of the ordinary with the security header, please please let me know. This Transmission code is identical currently to what is passing the 1105 and failing the 1122, minus formatting.

I'm using the java dsig library to create my Signature elements in the below code.

SteveManC
  • 132
  • 4
  • 12

2 Answers2

2

The first thing that sticks out to me is the namespace for UserId is different than what I currently am using. It looks like you are using the namespace for acabusinessheader when it should be the common namespace, changing it to what I've changed below will at least have that tag using the right namespace.

<sec:ACASecurityHeader>
   <com:UserId>[REDACTED]</com:UserId>
</sec:ACASecurityHeader>
Das
  • 470
  • 5
  • 20
  • You are correct sir. Funny how their documentation is showing UserId with the acaheader namespace. Thanks for that catch! – SteveManC Feb 18 '19 at 17:44
  • Glad I could help, I've actually emailed them about that exact same issue, doesn't look like it's been fixed yet. – Das Feb 18 '19 at 18:25
  • 1
    Hey @Das I've been reviewing their docs, my files, and actually going over your posted question with the same subject- would you happen to know how important that id format is for the BusinessHeader and ManifestReqDetail elements? I'm using a different structure than those I've seen, just not sure if it is required to be in that format. I would assume not, but this is the air system so who knows.. – SteveManC Feb 18 '19 at 20:03
  • 1
    Do you mean the reference wsu:IDs? I don't think the formatting matters, it should just match in the security details. Another thing I noticed is `BulkRequestTransmitterService` in your envelope under Action. I currently have that set to `BulkRequestTransmitter` – Das Feb 18 '19 at 21:23
  • 2
    that was my thought on the wsu:Id's as well. As far as the Action, I actually updated it to `BulkRequestTransmitter` when I saw the difference in the examples. Thanks! – SteveManC Feb 19 '19 at 12:51
1

Ok, so this is a bit of a lack of understanding of the technology on my part and the vagueness of the IRS docs as well. The issue with my failed transmission receiving the TPE 1105 was caused because I was 'indenting' my xml with my transformer in Java when writing our data to the connection. This caused the soap message to become unrecognizable as a MIME type message. Hope this can help someone.

EDIT-- So my second problem, encountering the 1122, was caused by the org.w3.dom Document being a level 1 document vs. a level 2 in Java. This in conjunction with the java dsig library was not properly signing ( I believe ) the xml. Once I upgraded the code to use a level 2 document, everything is working fine. Hopefully someone will find this useful as it would have saved me loads of time.

SteveManC
  • 132
  • 4
  • 12