I have a working Transfer Add request for external transfers that consistently sends me back responses with a value of "Success" in the "RsStat" field. For transfers to the Jack Henry account, where the account in Jack Henry is the credit account, I am able to see these transfers a day later in a Transfer Search call. However, even though I get a successful response back from Transfer Add for transfers from the account (where the Jack Henry account is the debit account), they never end up showing up in Transfer Search.
I am unsure where the issue is: Are the from-transfers incorrectly scheduled despite a response back indicating success, or am I querying them wrong in the Transfer Search call? One point of concern for me is that even though it is mentioned in the documentation, I am unable to form a working Transfer Add request that includes the ACHDrAcctType field in the ACHXferRec complex, as the response back consistently tells me that it is not a valid field.
I am sending the following in the initial Transfer Add request:
<XferAdd xmlns="http://jackhenry.com/jxchange/TPG/2008">
<MsgRqHdr>
{{ jxchangeHeader ommitted}}
<Ver_1/>
<AuthenUsrCred>
<ns1:Security xmlns:ns1="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"></ns1:Security>
</AuthenUsrCred>
<Ver_2/>
<AuthenProdCred>
<ns2:Security xmlns:ns2="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"></ns2:Security>
</AuthenProdCred>
<Ver_3/>
</MsgRqHdr>
<ErrOvrRdInfoArray>
<ErrOvrRd>
<ErrCode></ErrCode>
<Ver_1/>
</ErrOvrRd>
<ErrOvrRd>
<ErrCode></ErrCode>
<Ver_1/>
</ErrOvrRd>
</ErrOvrRdInfoArray>
<AcctIdFrom Rstr="">
<FromAcctId SrchType="" MaskVal="">{{TransferKey}}</FromAcctId>
<Ver_1/>
</AcctIdFrom>
<XferRec/>
<Custom></Custom>
<Ver_1/>
<XferType>ACH</XferType>
<ACHXferRec>
<ACHDrName>{{DebitAccount.AccountName}}</ACHDrName>
<ACHDrRtNum>{{DebitAccount.RoutingNumber}}</ACHDrRtNum>
<ACHDrAcctId>{{DebitAccount.AccountId}}</ACHDrAcctId>
<ACHCrRtNum>{{CreditAccount.RoutingNumber}}</ACHCrRtNum>
<ACHCrAcctId>{{CreditAccount.AccountId}}</ACHCrAcctId>
<ACHCrAcctType>{{CreditAccount.AccountType}}</ACHCrAcctType>
<ACHXferAmt>{{TransferAmountInDollars}}</ACHXferAmt>
<ACHOneTime>Y</ACHOneTime>
<ACHTermCnt>1</ACHTermCnt>
<ACHTermUnits>Days</ACHTermUnits>
<ACHNextXferDt>{{TransferDate}}</ACHNextXferDt>
</ACHXferRec>
</XferAdd>
A day or more after the Transfer Add request, I attempt to query from-transfers with the following Transfer Search request:
<XferSrch xmlns="http://jackhenry.com/jxchange/TPG/2008">
<SrchMsgRqHdr>
{{jxchange header ommitted}}
<MaxRec>50</MaxRec>
<Cursor/>
<Ver_1/>
<Ver_2/>
<Ver_3/>
</SrchMsgRqHdr>
<AccountId>
<AcctId>8004723</AcctId>
<AcctType>D</AcctType>
<Ver_1/>
</AccountId>
<ToOrFrom>From</ToOrFrom>
<LowAmt>0</LowAmt>
<HighAmt>100000</HighAmt>
<Ver_1/>
<XferType>ACH</XferType>
<Ver_2/>
<CustId/>
<Ver_3/>
</XferSrch>
Here is an example of the error description I get back when I try to include the ACHDrAcctType field in a TransferAdd request:
The element 'ACHXferRec' in namespace 'http://jackhenry.com/jxchange/TPG/2008' has invalid child element 'ACHDrAcctType' in namespace 'http://jackhenry.com/jxchange/TPG/2008'. List of possible elements expected: 'ACHCrBrCode, ACHCrTrnCodeCode, ACHXferAmt, ACHXferAmtLTD, ACHFeeAmt, ACHFeeAmtLTD, ACHSendPreNoteCode, ACHOneTime, ACHUseLnDtCode, ACHUseLnAmtCode, ACHNSFCode, ACHTermCnt, ACHTermUnits, ACHDayAdv, ACHSemiDay1, ACHSemiDay2, ACHOpenDt, ACHLastXferDt, ACHNextXferDay, ACHNextXferDt, ACHXferExpireDt, ACHCompDiscrData, ACHCompEntryDesc, ACHCompId, ACHCompName, ACHStdEntryClass, ACHFeeDrRtNum, ACHFeeDrAcctId, ACHFeeDrAcctType, ACHFeeDrBrCode, ACHFeeDrTrnCodeCode, ACHFeeCrRtNum, ACHFeeCrAcctId, ACHFeeCrAcctType, ACHFeeCrBrCode, ACHFeeCrTrnCodeCode, ACHAcctStat, ACHLastMainDt, SvcPrvdInfo, Ver_1' in namespace 'http://jackhenry.com/jxchange/TPG/2008'.
The above requests seem to work fine for transfers to the account (with the appropriate value in the ToOrFrom field in the Transfer Search call and no ACHDrAcctType field), just not transfers from the account.
Could this issue be due to the sandbox environment I'm working in? Is there something about the way I'm scheduling transfers that is wrong? Or am I querying for them wrong later?
Thanks for any help.