Developer Resources
Details
SoapAction | http://jackhenry.com/ws/CustInq |
Input Name | CustInq |
Output Name | CustInqResponse |
Input Namespace | http://jackhenry.com/jxchange/TPG/2008 |
Group Name | Customer |
Container | TPG_CustomerMaster.xsd |
Operation Summary
OperationSummary-CustInq
Operation Summary
The Customer Inquiry operation, CustInq, allows consumers to retrieve individual customer details already existing in a provider s application. It supports the following two search criteria:
Element Name | Description |
AccountId | A complex element containing the incoming account identification information. The simple elements within this complex are: AcctId (Account Id) AcctType (Account Type) |
CustId | The identifier attached to a customer |
The CustInq operation response will provide demographic information regarding the customer. This information contains name, address, phone number, email addresses, date of birth, employer and additional information specific to this customer.
If the customer s AccountId or CustId are unavailable, then the CustSrch operation would have to be used to search for a matching customer record by passing in one of the following filters:
The CustSrch response will contain the CustId element which can then be passed into the CustInq operation to obtain the desired customer information.
Special Considerations
There are multiple address types available such as IRS Address, Physical Address, Seasonal Address, and others. The CustInq operation returns the Customer Address as stored in the Customer Master File.
To limit the size of the response payload and in an attempt to return relevant information to the request, jXchange incorporates the use of x_ elements for inquiries. These elements function as canonical values to specify the specific information needed by the consumers of the web service.
o The x_ values are added to the request array element, IncXtendElemArray. The valid values are found in the corresponding response for that particular operation. If requested, the x_ value is found in the matching complex element in the response. For example, by specifying x_TaxDetail in IncXtendElemArray, the response will include the TaxDetail complex containing the customer s tax detail.
XML Examples
CustInqXml
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Header>
<wsse:Security xmlns:wsse="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">
<wsse:UsernameToken xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:Username>{Insert}</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">{Insert}</wsse:Password>
<wsu:Created xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"/>
</wsse:UsernameToken>
</wsse:Security>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<CustInq xmlns="http://jackhenry.com/jxchange/TPG/2008">
<MsgRqHdr>
<jXchangeHdr>
<JxVer></JxVer>
<AuditUsrId></AuditUsrId>
<AuditWsId></AuditWsId>
<AuthenUsrId></AuthenUsrId>
<ConsumerName></ConsumerName>
<ConsumerProd></ConsumerProd>
<Ver_1/>
<jXLogTrackingId>{Insert}</jXLogTrackingId>
<Ver_2/>
<InstRtId>011001276</InstRtId>
<InstEnv>TEST</InstEnv>
<Ver_3/>
<BusCorrelId></BusCorrelId>
<Ver_4/>
<WorkflowCorrelId></WorkflowCorrelId>
<Ver_5/>
<ValidConsmName>{Insert}</ValidConsmName>
<ValidConsmProd>{Insert}</ValidConsmProd>
<Ver_6/>
</jXchangeHdr>
<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>
<CustId>BAA0463</CustId>
<AccountId Rstr="">
<AcctId></AcctId>
<AcctType></AcctType>
<Ver_1/>
</AccountId>
<IncXtendElemArray>
<IncXtendElemInfo>
<XtendElem>x_BusDetail</XtendElem>
<Ver_1/>
</IncXtendElemInfo>
<IncXtendElemInfo>
<XtendElem>x_ConDetail</XtendElem>
<Ver_1/>
</IncXtendElemInfo>
<IncXtendElemInfo>
<XtendElem>x_IdVerify</XtendElem>
<Ver_1/>
</IncXtendElemInfo>
<IncXtendElemInfo>
<XtendElem>x_RegDetail</XtendElem>
<Ver_1/>
</IncXtendElemInfo>
<!-- <IncXtendElemInfo> Max of 4 XtendElem for SilverLake and 20/20
<XtendElem>x_PersonName</XtendElem>
<Ver_1/>
</IncXtendElemInfo>
<IncXtendElemInfo>
<XtendElem>x_TaxDetail</XtendElem>
<Ver_1/>
</IncXtendElemInfo> -->
</IncXtendElemArray>
<Custom></Custom>
<Ver_1/>
<ActIntent>ReadOnly</ActIntent>
<Ver_2/>
</CustInq>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
CustInqXMLResponse
<?xml version="1.0" encoding="UTF-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<s:Header>
<o:Security
s:mustUnderstand="1"
xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<u:Timestamp
u:Id="_0">
<u:Created>2018-06-19T16:56:18.997Z</u:Created>
<u:Expires>2018-06-19T17:01:18.997Z</u:Expires>
</u:Timestamp>
</o:Security>
</s:Header>
<s:Body>
<CustInqResponse
xmlns="http://jackhenry.com/jxchange/TPG/2008"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<MsgRsHdr>
<jXchangeHdr>
<JxVer>R2017.4</JxVer>
<AuditUsrId>AuditUsrId1</AuditUsrId>
<AuditWsId>AuditWsId1</AuditWsId>
<Ver_1/>
<jXLogTrackingId>122222222</jXLogTrackingId>
<Ver_2/>
<InstRtId>011001276</InstRtId>
<InstEnv>TEST</InstEnv>
<Ver_3/>
<BusCorrelId>0f936ec5-51e9-4903-ae10-54ae9c70d388</BusCorrelId>
<Ver_4/>
<WorkflowCorrelId/>
<Ver_5/>
<ValidConsmName></ValidConsmName>
<ValidConsmProd></ValidConsmProd>
</jXchangeHdr>
<Ver_1/>
</MsgRsHdr>
<CustRec>
<CustDetail>
<PersonName>
<ComName>Lou Brock</ComName>
<FirstName>Lou</FirstName>
<LastName>Brock</LastName>
<Ver_1/>
</PersonName>
<Addr>
<FreeFormAddrArray>
<AddrLineInfo>
<AddrLine>Lou Brock</AddrLine>
<Ver_1/>
</AddrLineInfo>
<AddrLineInfo>
<AddrLine>222 E 22nd Street</AddrLine>
<Ver_1/>
</AddrLineInfo>
<AddrLineInfo>
<AddrLine>St. Louis MO 00007-2633</AddrLine>
<Ver_1/>
</AddrLineInfo>
</FreeFormAddrArray>
<StreetAddr1>222 E 22nd Street</StreetAddr1>
<City>St. Louis</City>
<StateCode>MO</StateCode>
<PostalCode>000072633</PostalCode>
<FornAddr>N</FornAddr>
<InvAddr>N</InvAddr>
<Ver_1/>
<StreetAddr3>St. Louis MO 00007-2633</StreetAddr3>
<Ver_2/>
</Addr>
<CustType>Individual</CustType>
<StdIndustCode>0</StdIndustCode>
<Gender>Male</Gender>
<BirthDt>1948-03-01</BirthDt>
<EmplName>Stl Cardinals</EmplName>
<CustOrgDt>2017-12-26</CustOrgDt>
<LastMainDt>2017-12-26</LastMainDt>
<Deceased>false</Deceased>
<EmailArray>
<EmailInfo>
<EmailType>Primary E-Mail</EmailType>
<Ver_1/>
</EmailInfo>
<EmailInfo>
<EmailType>Secondary E-Mail</EmailType>
<Ver_1/>
</EmailInfo>
</EmailArray>
<PhoneArray>
<PhoneInfo>
<PhoneType>Home Phone</PhoneType>
<Ver_1/>
<Ver_2/>
<Ver_3/>
<Ver_4/>
</PhoneInfo>
<!-- Removed excess Phone info -->
</PhoneArray>
<Ver_1/>
<Ver_2/>
<Ver_3/>
<Ver_4/>
</CustDetail>
<CustId>BAA0463</CustId>
<AccountId>
<AcctId>160390</AcctId>
<AcctType>D</AcctType>
<Ver_1/>
</AccountId>
<CondNotfArray>
<CondNotfInfo>
<CondNotf>AddrIRSRpt</CondNotf>
<Ver_1/>
</CondNotfInfo>
</CondNotfArray>
<Ver_1/>
<IntnetFinInstIdArray>
<IntnetFinInstIdArrayInfo>
<IntnetFinInstId>0</IntnetFinInstId>
<Ver_1/>
</IntnetFinInstIdArrayInfo>
</IntnetFinInstIdArray>
<Ver_2/>
<Ver_3/>
</CustRec>
<x_TaxDetail>
<TaxDetail>
<TINInfo>
<TINCode>A</TINCode>
<TINDesc>TIN Applied For</TINDesc>
<TaxId MaskVal="222-22-2224">222222224</TaxId>
<CertCode>C</CertCode>
<CertCodeDesc>Certified</CertCodeDesc>
<CertCodeDt>2017-03-01</CertCodeDt>
<BNotStat>0</BNotStat>
<BNotIRSDt>2017-03-01</BNotIRSDt>
<Ver_1/>
<Ver_2/>
<TINMatchType>Unknown</TINMatchType>
<Ver_3/>
</TINInfo>
<TaxExtDt>2017-03-01</TaxExtDt>
<TaxRetDt>2017-03-01</TaxRetDt>
<IRSNameCntl>BROC</IRSNameCntl>
<IRSPostAddr>
<StreetAddr1>222 E 22nd Street</StreetAddr1>
<City>St. Louis</City>
<StateCode>MO</StateCode>
<PostalCode>000072633</PostalCode>
<Ver_1/>
<Ver_2/>
</IRSPostAddr>
<Alien>
<IRSExmpCode>0</IRSExmpCode>
<IRSRecipCode>0</IRSRecipCode>
<Ver_1/>
<AlienTypeCode>N</AlienTypeCode>
<Ver_2/>
<Ver_3/>
<GIINDt>2017-03-01</GIINDt>
<GIINCertDt>2017-03-01</GIINCertDt>
<RptChapArray>
<RptChapInfoRec>
<RptChapExst>false</RptChapExst>
<RptChapType>3</RptChapType>
<IRSExmpCode>0</IRSExmpCode>
<IRSRecipCode>0</IRSRecipCode>
<Ver_1/>
</RptChapInfoRec>
<RptChapInfoRec>
<RptChapExst>false</RptChapExst>
<RptChapType>4</RptChapType>
<IRSExmpCode>0</IRSExmpCode>
<IRSRecipCode>0</IRSRecipCode>
<Ver_1/>
</RptChapInfoRec>
</RptChapArray>
<Ver_4/>
</Alien>
<Ver_1/>
</TaxDetail>
<Ver_1/>
</x_TaxDetail>
<Ver_1/>
<Ver_2/>
<Ver_3/>
<Ver_4/>
</CustInqResponse>
</s:Body>
</s:Envelope>
FAQ
FAQ
CustInq Questions
Q: For a company - can "Articles of incorporation" be generated from a CustInq API?
A: Yes they can as long as that form of ID has been setup in core.
Q: SilverLake, CIF 20/20, and Core Director We are trying to update a customer record and setting ActIntent with Upd to get the ActIntentKey in the response. ActIntentKey in the response is blank. Are we doing something wrong?
A: The cores do not support ActIntent for CustInq/CustMod.
Q: SilverLake and CIF 20/20 Is the address returned in the CustInq message a physical address?
A: Yes. The address provided by Primary and IRS addresses are returned. If a CIF does not have a Physical Address populated on core, it is assumed that the Primary=Physical, but that can’t always be assumed using CustInq. To verify that the Primary=Physical or to look up all the addresses (Physical, Seasonal, etc.) for a CIF then the AddrSrch call may be utilized.
Q: Which "Cust" call will give me whether the customer is an employee or not? If an employee what element would map to employee code?
A: You can utilize the CustInq operation to see if a
customer is an employee. The element
x_BusDetail.BusDetail.InsiderCode
is used. Since the bank may
choose to utilize more than the default values, we suggest you using the
ParmValSrch operation
passing in the element
<ParmName>InsiderCode</ParmName>
to query the
system to get a list of utilized Insider Codes.
Q: If a customer has ten Account IDs, does the response have this section repeat for each Account ID?
A: The CustInq does not perform an active search for accounts for the customer. The only time the AcctID element will be populated is when the AcctID is utilized as part of the request and then the AcctID is echoed back within the response. So there will not be multiple responses for the AcctID element. If you are needing to see a list of accounts related to a particular CIF/CustID you will need to use the AcctSrch operation.
Q: Is there a way for the CustInq service to return the TaxId and TaxCode?
A: The *Inq messages require the appropriate XtendElem element to be passed in for the information you are seeking. For Tax information you would pass in XtendElem = x_TaxDetail – Please review the message brief for the CustInq operation for more information on the available XtendElem options.
Q: How could we pull the Driver License and Passport along with the rest of the customer details?
A: The *Inq messages require the appropriate XtendElem element to be passed in for the information you are seeking. For Customer Identification information you would pass in XtendElem = x_IdVerify.
Q: For x_IdVerify, what are the sorting rules for the different ID types?
A: The array of identities is returned in the same order they are displayed in the User Interface, which is ordered alphabetically by the identity code, then numerically, if any numeric identity codes exist.
Q: Is there a way to identify the TIN certification status of the customer?
A: It is done via the TINCode.
Q: Where do I find the country codes?
A: ISO 3166
Q: The message brief for CustInq shows as values for TIN Codes: SSN, EIN, Forn. But the service ParamValSrch returns a longer list where I do not see SSN as I expected.
A: The message brief is written at a high level for multiple environments and can provided options that are not valid for a particular core or bank. This is especially true for parameterized values that usually end with the word *code, though not always. This is why the ParmValSrch operation was created to allow a query into the correct values. The ParmValSrch operation’s message brief provides a list of the available values that are available for lookup.
Q: SilverLake The field ShortName does not appear in the response when doing a CustInq request. Is it available in CustInq?
A: Yes, you must add x_PersonName in the IncXtendElemInfoArray. It appears in the response as the element AbbName.
<IncXtendElemInfo>
<XtendElem>x_PersonName</XtendElem>
<Ver_1/>
</IncXtendElemInfo>
Q: After a successful CustAdd, the tax id number is not returned on the subsequent CustInq call. Please advise if there is additional required fields that needs to be sent for an "Individual" customer type.
A: The problem is that your XML has six XtendElem’s, but iAdapter can only support four. Just remove two of XtendElem's and the TaxId should be shown.