Developer Resources
Details
SoapAction | http://jackhenry.com/ws/CustMod |
Input Name | CustMod |
Output Name | CustModResponse |
Input Namespace | http://jackhenry.com/jxchange/TPG/2008 |
Group Name | Customer |
Container | TPG_CustomerMaster.xsd |
Operation Summary
OperationSummary-CustMod
The CustMod operation provides consumers the ability to modify or delete customer information existing in the core. Only the elements with values requiring change need to be included in the request, such as addresses, phone numbers, and email addresses. After a modification has been attempted, the CustMod response will return an RsStat value of Success if the requested modification was completed successfully.
Special Considerations
It is recommend to use the SvcDictSrch operation prior to calling an Add or Mod operation. SvcDictSrch will return the elements that are supported by the provider and will return information and values for most elements. The use of this operation will reduce repeated attempts to complete the operation if errors are returned from the provider.
When specifying a Foreign Address in Silverlake or CIF 20/20:
- The foreign address flag, FornAddr, must be set to ‘Y’ to indicate a non-US address
- The foreign address must be sent in using the FreeFormAddrArray
- City, StateCode, and PostalCode must be omitted or left blank.
Core Director does not provide fields for foreign addresses, the normal address fields should be used for entering in this information.
XML Examples
CustMod-XML
<?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>${Username}</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">${Password}</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>
<CustMod
xmlns="http://jackhenry.com/jxchange/TPG/2008">
<MsgRqHdr>
<jXchangeHdr>
<JxVer></JxVer>
<AuditUsrId ParasoftColumn="AuditUsrId">${AuditUsrId}</AuditUsrId>
<AuditWsId ParasoftColumn="AuditWsId">${AuditWsId}</AuditWsId>
<AuthenUsrId></AuthenUsrId>
<ConsumerName></ConsumerName>
<ConsumerProd></ConsumerProd>
<Ver_1/>
<jXLogTrackingId ParasoftColumn="jXLogTrackingId">${jXLogTrackingId}</jXLogTrackingId>
<Ver_2/>
<InstRtId ParasoftColumn="InstRtId" JHANull="" Rstr="">${InstRtId}</InstRtId>
<InstEnv ParasoftColumn="InstEnv">${InstEnv}</InstEnv>
<Ver_3/>
<BusCorrelId></BusCorrelId>
<Ver_4/>
<WorkflowCorrelId></WorkflowCorrelId>
<Ver_5/>
<ValidConsmName ParasoftColumn="ValidConsmName">${ValidConsmName}</ValidConsmName>
<ValidConsmProd ParasoftColumn="ValidConsmProd">${ValidConsmProd}</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>
<ErrOvrRdInfoArray>
<ErrOvrRd>
<ErrCode>410081</ErrCode>
<Ver_1/>
</ErrOvrRd>
<ErrOvrRd>
<ErrCode></ErrCode>
<Ver_1/>
</ErrOvrRd>
</ErrOvrRdInfoArray>
<CustId JHANull="" Rstr="">AAA1793</CustId>
<Dlt></Dlt>
<CustDetail>
<PersonName>
<ComName JHANull="" SrchType="" Rstr=""></ComName>
<FirstName JHANull="" SrchType="" Rstr=""></FirstName>
<MiddleName JHANull="" SrchType="" Rstr=""></MiddleName>
<LastName JHANull="" SrchType="" Rstr=""></LastName>
<x_PersonName>
<TitlePrefix JHANull="" Rstr=""></TitlePrefix>
<NameSuffix JHANull="" Rstr=""></NameSuffix>
<LegalName JHANull="" Rstr=""></LegalName>
<SalName JHANull="" Rstr=""></SalName>
<Ver_1/>
<Ver_2/>
</x_PersonName>
<SvcPrvdInfo/>
<Ver_1/>
</PersonName>
<Addr>
<FreeFormAddrArray>
<AddrLineInfo>
<AddrLine JHANull="" Rstr=""></AddrLine>
<Ver_1/>
</AddrLineInfo>
<AddrLineInfo>
<AddrLine JHANull="" Rstr=""></AddrLine>
<Ver_1/>
</AddrLineInfo>
</FreeFormAddrArray>
<StreetAddr1 JHANull="" Rstr=""></StreetAddr1>
<StreetAddr2 JHANull="" Rstr=""></StreetAddr2>
<City JHANull="" Rstr=""></City>
<StateProv JHANull="" Rstr=""></StateProv>
<StateCode JHANull="" Rstr=""></StateCode>
<PostalCode JHANull="" Rstr="" SrchType=""></PostalCode>
<DlvryPt JHANull="" Rstr=""></DlvryPt>
<County JHANull="" Rstr=""></County>
<Cntry JHANull="" Rstr=""></Cntry>
<CntryType JHANull="" Rstr=""></CntryType>
<BusAddr JHANull="" Rstr=""></BusAddr>
<FornAddr JHANull="" Rstr=""></FornAddr>
<InvAddr JHANull="" Rstr=""></InvAddr>
<SvcPrvdInfo/>
<Ver_1/>
<StreetAddr3 JHANull="" Rstr=""></StreetAddr3>
<Ver_2/>
</Addr>
<CustType JHANull="" Rstr=""></CustType>
<NAICSCode JHANull="" Rstr=""></NAICSCode>
<StdIndustCode JHANull="" Rstr=""></StdIndustCode>
<Gender JHANull="" Rstr=""></Gender>
<BirthDt JHANull="" Rstr="">2017-04-13</BirthDt>
<EmplName JHANull="" Rstr=""></EmplName>
<OccType JHANull="" Rstr=""></OccType>
<CustOrgDt JHANull="" Rstr="">2017-04-13</CustOrgDt>
<LastMainDt JHANull="" Rstr="">2017-04-13</LastMainDt>
<Deceased JHANull="" Rstr=""></Deceased>
<DeceasedDt JHANull="true" Rstr="">2017-04-13</DeceasedDt>
<EmailArray>
<EmailInfo>
<EmailAddr JHANull="true">amy@pasta.com</EmailAddr>
<EmailType JHANull="" Rstr="">Primary E-Mail</EmailType>
<Ver_1/>
</EmailInfo>
<EmailInfo>
<EmailAddr JHANull="" Rstr="" SrchType=""></EmailAddr>
<EmailType JHANull="" Rstr=""></EmailType>
<Ver_1/>
</EmailInfo>
</EmailArray>
<PhoneArray>
<PhoneInfo>
<PhoneNum JHANull="" SrchType="" Rstr="">5555554433</PhoneNum>
<PhoneType JHANull="" Rstr="">Home Phone</PhoneType>
<PhoneTime JHANull="" Rstr=""></PhoneTime>
<PhoneExt JHANull="" Rstr=""></PhoneExt>
<Ver_1/>
<ConStartTime JHANull="" Rstr="">20:28:37.945Z</ConStartTime>
<ConEndTime JHANull="" Rstr="">20:28:37.945Z</ConEndTime>
<MobPhoneInfo>
<MobPrvdCode JHANull="" Rstr=""></MobPrvdCode>
<MobPrvdCodeDesc JHANull=""></MobPrvdCodeDesc>
<MobPrvdDom JHANull="" Rstr=""></MobPrvdDom>
<MobBB JHANull=""></MobBB>
<MobSendTestText JHANull=""></MobSendTestText>
<Ver_1/>
</MobPhoneInfo>
<Ver_2/>
<PrioritySeq JHANull="" Rstr="">0</PrioritySeq>
<Ver_3/>
</PhoneInfo>
<PhoneInfo>
<PhoneNum JHANull="" SrchType="" Rstr=""></PhoneNum>
<PhoneType JHANull="" Rstr=""></PhoneType>
<PhoneTime JHANull="" Rstr=""></PhoneTime>
<PhoneExt JHANull="" Rstr=""></PhoneExt>
<Ver_1/>
<ConStartTime JHANull="" Rstr="">20:28:37.945Z</ConStartTime>
<ConEndTime JHANull="" Rstr="">20:28:37.945Z</ConEndTime>
<MobPhoneInfo>
<MobPrvdCode JHANull="" Rstr=""></MobPrvdCode>
<MobPrvdCodeDesc JHANull=""></MobPrvdCodeDesc>
<MobPrvdDom JHANull="" Rstr=""></MobPrvdDom>
<MobBB JHANull=""></MobBB>
<MobSendTestText JHANull=""></MobSendTestText>
<Ver_1/>
</MobPhoneInfo>
<Ver_2/>
<PrioritySeq JHANull="" Rstr="">0</PrioritySeq>
<Ver_3/>
</PhoneInfo>
</PhoneArray>
<SvcPrvdInfo/>
<Custom></Custom>
<Ver_1/>
<HouseHoldNum JHANull="" Rstr="">0</HouseHoldNum>
<HouseHoldName JHANull="" Rstr=""></HouseHoldName>
<SpouseName>
<ComName JHANull="" SrchType="" Rstr=""></ComName>
<FirstName JHANull="" SrchType="" Rstr=""></FirstName>
<MiddleName JHANull="" SrchType="" Rstr=""></MiddleName>
<LastName JHANull="" SrchType="" Rstr=""></LastName>
<x_PersonName>
<TitlePrefix JHANull="" Rstr=""></TitlePrefix>
<NameSuffix JHANull="" Rstr=""></NameSuffix>
<LegalName JHANull="" Rstr=""></LegalName>
<SalName JHANull="" Rstr=""></SalName>
<Ver_1/>
<Ver_2/>
</x_PersonName>
<SvcPrvdInfo/>
<Ver_1/>
</SpouseName>
<Ver_2/>
<EmplTitle JHANull="" Rstr=""></EmplTitle>
<AnnIncmAmt JHANull="" Rstr="">0.0</AnnIncmAmt>
<AssetTotAmt JHANull="" Rstr="">0.0</AssetTotAmt>
<EducLvl JHANull="" Rstr=""></EducLvl>
<HouseHoldMbrArray>
<HouseHoldMbrInfo>
<HouseHoldMbrText JHANull="" Rstr=""></HouseHoldMbrText>
<HouseHoldMbrName>
<ComName JHANull="" SrchType="" Rstr=""></ComName>
<FirstName JHANull="" SrchType="" Rstr=""></FirstName>
<MiddleName JHANull="" SrchType="" Rstr=""></MiddleName>
<LastName JHANull="" SrchType="" Rstr=""></LastName>
<x_PersonName>
<TitlePrefix JHANull="" Rstr=""></TitlePrefix>
<NameSuffix JHANull="" Rstr=""></NameSuffix>
<LegalName JHANull="" Rstr=""></LegalName>
<SalName JHANull="" Rstr=""></SalName>
<Ver_1/>
<Ver_2/>
</x_PersonName>
<SvcPrvdInfo/>
<Ver_1/>
</HouseHoldMbrName>
<HouseHoldMbrBirthDt JHANull="" Rstr="">2017-04-13</HouseHoldMbrBirthDt>
<HouseHoldMbrRel JHANull="" Rstr=""></HouseHoldMbrRel>
<Ver_1/>
</HouseHoldMbrInfo>
<HouseHoldMbrInfo>
<HouseHoldMbrText JHANull="" Rstr=""></HouseHoldMbrText>
<HouseHoldMbrName>
<ComName JHANull="" SrchType="" Rstr=""></ComName>
<FirstName JHANull="" SrchType="" Rstr=""></FirstName>
<MiddleName JHANull="" SrchType="" Rstr=""></MiddleName>
<LastName JHANull="" SrchType="" Rstr=""></LastName>
<x_PersonName>
<TitlePrefix JHANull="" Rstr=""></TitlePrefix>
<NameSuffix JHANull="" Rstr=""></NameSuffix>
<LegalName JHANull="" Rstr=""></LegalName>
<SalName JHANull="" Rstr=""></SalName>
<Ver_1/>
<Ver_2/>
</x_PersonName>
<SvcPrvdInfo/>
<Ver_1/>
</HouseHoldMbrName>
<HouseHoldMbrBirthDt JHANull="" Rstr="">2017-04-13</HouseHoldMbrBirthDt>
<HouseHoldMbrRel JHANull="" Rstr=""></HouseHoldMbrRel>
<Ver_1/>
</HouseHoldMbrInfo>
</HouseHoldMbrArray>
<Ver_3/>
<CustCrtRsnCode JHANull=""></CustCrtRsnCode>
<Ver_4/>
</CustDetail>
<RegDetail>
<DoNotCallExpDt JHANull="" Rstr="">2018-11-13</DoNotCallExpDt>
<DoNotCallCode JHANull="" Rstr=""></DoNotCallCode>
<RegPOptOutCode JHANull="" Rstr=""></RegPOptOutCode>
<RegPSentDt JHANull="" Rstr="">2017-04-13</RegPSentDt>
<CRARec>
<CRAStateCode JHANull="" Rstr=""></CRAStateCode>
<CRAStateDesc JHANull="" Rstr=""></CRAStateDesc>
<CRACountyCode JHANull="" Rstr=""></CRACountyCode>
<CRACountyDesc JHANull="" Rstr=""></CRACountyDesc>
<CRACenTract JHANull="" Rstr="">0</CRACenTract>
<CRASMSACode JHANull="" Rstr=""></CRASMSACode>
<CRASMSADesc JHANull="" Rstr=""></CRASMSADesc>
<CRALoc JHANull="" Rstr=""></CRALoc>
<CRAIncmLvl JHANull="" Rstr=""></CRAIncmLvl>
<CRAMilitaryCode JHANull="" Rstr=""></CRAMilitaryCode>
<CRAMilitaryDesc JHANull="" Rstr=""></CRAMilitaryDesc>
<Ver_1/>
<CRACode JHANull="" Rstr=""></CRACode>
<CRADesc JHANull="" Rstr=""></CRADesc>
<CRAAnnIncmAmt JHANull="" Rstr="">0.0</CRAAnnIncmAmt>
<CRAOrigLocCode JHANull="" Rstr=""></CRAOrigLocCode>
<CRAOrigLocDesc JHANull="" Rstr=""></CRAOrigLocDesc>
<CRAOrigBal JHANull="" Rstr="">0.0</CRAOrigBal>
<CRAAnnIncmAboveMil JHANull="" Rstr=""></CRAAnnIncmAboveMil>
<CRAPurchaseLn JHANull="" Rstr=""></CRAPurchaseLn>
<CRAId JHANull="" Rstr=""></CRAId>
<CRAOrigRenDt JHANull="" Rstr="">2017-04-13</CRAOrigRenDt>
<Ver_2/>
</CRARec>
<AflOptOutCode JHANull="" Rstr="">Y</AflOptOutCode>
<AflOptOutExcptCode JHANull="" Rstr=""></AflOptOutExcptCode>
<AflOptOutExcptDt JHANull="" Rstr="">2017-04-13</AflOptOutExcptDt>
<AflOptOutExpDt JHANull="" Rstr="">2017-04-13</AflOptOutExpDt>
<CustDataRtnPeriod JHANull="" Rstr="">1</CustDataRtnPeriod>
<RiskRateCode JHANull="" Rstr=""></RiskRateCode>
<RiskRateDt JHANull="" Rstr="">2017-04-13</RiskRateDt>
<RiskRateByCode JHANull="" Rstr=""></RiskRateByCode>
<Custom></Custom>
<Ver_1/>
</RegDetail>
<Custom></Custom>
<Ver_1/>
<ActIntentKey></ActIntentKey>
<Ver_2/>
</CustMod>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
FAQ
CustModFAQ
Q:SilverLake We noticed when removing a value from the ‘Address 2’ field. After a successful update of removing the value in Address 2 on the Change of Address form, we are receiving the old value while retrieving the address from the core. Is there a certain value we need to send to JHA to indicate ‘Address 2’ should be a blank field?
A: If you need to remove a value that exists in SilverLake, you’ll need to send the JHANull element attribute with a value of true.
<StreetAddr2 JHANull="true" />
Q:CIF 2020 We are trying to delete a customer record using the Dlt = True option. We are getting a Success in the response, but the customer record is still retained. Is there a batch job or some other action that needs to occur?
A: The response from the CustMod API is misleading. The request was successful per the way the business service works, but the CIF 2020 core does not have a process in place to delete customer records using the CustMod API. To remove the customer record, the core (green screen) must be used.
Q:CIF 2020 In the jXchange CIF 20/20 documentation for Emails, the docs read, "CIF 20/20 supports two email addresses but does not allow the user to define types, such as primary or secondary". Since there's not a way to define the types for the two possible emails, how would we target a specific email address associated to the customer for modification during the CustMod operation?
A: If a customer record has two email addresses defined and you call CustMod with an email array with just one email, it will overwrite the first email in the email array associated with the customer record:
<EmailArray>
<EmailInfo>
<EmailAddr>test@jackhenry.com</EmailAddr>
</EmailInfo>
</EmailArray>
If you want to update the second email you need to call CustMod and pass in an email array with two email elements, where the first email in the array is blank and the second email in the array containing the update:
<EmailArray>
<EmailInfo>
<EmailAddr></EmailAddr>
</EmailInfo>
<EmailInfo>
<EmailAddr>user@jackhenry.com</EmailAddr>
</EmailInfo>
</EmailArray>
But to delete an email you need to use the JHANull attribute on the email you wish to delete. So to delete the Primary Email:
<EmailArray>
<EmailInfo>
<EmailAddr JHANull="true" />
</EmailInfo>
</EmailArray>
And to delete just the Secondary Email:
<EmailArray>
<EmailInfo>
<EmailAddr></EmailAddr>
</EmailInfo>
<EmailInfo>
<EmailAddr JHANull="true" />
</EmailInfo>
</EmailArray>
Q: SilverLake Why are we able to add a Suffix of ESQ when using CustAdd, but not when using CustMod?
A:The CustAdd does not strictly enforce the below suffix list while the CustMod does.
- JR
- Jr
- SR
- Sr
- I
- II
- III
- IV
- V
- VI
- VII