Developer Programs

Learn

Docs
jXchange REST-Legacy Migration announced. Deadline for migration is July 31, 2026.

Developer Resources

API by Reference > Core Services > Account Modification > Developer Resources

Details

SoapActionhttp://jackhenry.com/ws/AcctMod
Input NameAcctMod
Output NameAcctModResponse
Input Namespacehttp://jackhenry.com/jxchange/TPG/2008
Group NameDeposit
ContainerTPG_DepositMaster.xsd

Operation Summary

Account Modification (AcctMod) is a jXchange service designed to modify or delete a deposit, loan, or time deposit account. A consumer submits the account ID and type along with the complexes and simple elements containing values to be changed.

The AcctMod response will contain an element indicating the result of the operation, with a value of Success when completed normally or the operation will return an HdrFault if the provider was unable to complete the request.

XML Examples

AcctMod AcctType D Request

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>
  </SOAP-ENV:Header>
  <SOAP-ENV:Body>
    <AcctMod
      xmlns="http://jackhenry.com/jxchange/TPG/2008">
      <MsgRqHdr>
        <jXchangeHdr>
          <JxVer></JxVer>
          <AuditUsrId></AuditUsrId>
          <AuditWsId></AuditWsId>
          <AuthenUsrId></AuthenUsrId>
          <ConsumerName></ConsumerName>
          <ConsumerProd></ConsumerProd>
          <Ver_1/>
          <jXLogTrackingId>122222222</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/>
        <Ver_3/>
      </MsgRqHdr>
      <ErrOvrRdInfoArray>
        <ErrOvrRd>
          <ErrCode></ErrCode>
          <Ver_1/>
        </ErrOvrRd>
        <ErrOvrRd>
          <ErrCode></ErrCode>
          <Ver_1/>
        </ErrOvrRd>
      </ErrOvrRdInfoArray>
      <AccountId>
        <AcctId>33456</AcctId>
        <AcctType>D</AcctType>
        <Ver_1/>
      </AccountId>
      <DepMod>
        <DepInfoRec>
          <BrCode></BrCode>
          <AcctTitleArray>
            <AcctTitleInfo>
              <AcctTitle>Barnes and Goble</AcctTitle>
              <Ver_1/>
              <AddlName>
                <ComName></ComName>
                <FirstName>Jerry</FirstName>
                <MiddleName></MiddleName>
                <LastName>McGuire</LastName>
                <x_PersonName>
                  <TitlePrefix></TitlePrefix>
                  <NameSuffix></NameSuffix>
                  <LegalName></LegalName>
                  <SalName></SalName>
                  <Ver_1/>
                  <AbbName></AbbName>
                  <Ver_2/>
                </x_PersonName>
                <Ver_1/>
              </AddlName>
              <AddlPhoneArray>
                <PhoneInfo>
                  <PhoneNum>5554443434</PhoneNum>
                  <PhoneType></PhoneType>
                  <PhoneTime></PhoneTime>
                  <PhoneExt></PhoneExt>
                  <Ver_1/>
                  <ConStartTime>16:07:52.472Z</ConStartTime>
                  <ConEndTime>16:07:52.472Z</ConEndTime>
                  <MobPhoneInfo>
                    <MobPrvdCode></MobPrvdCode>
                    <MobPrvdCodeDesc></MobPrvdCodeDesc>
                    <MobPrvdDom></MobPrvdDom>
                    <MobBB></MobBB>
                    <MobSendTestText></MobSendTestText>
                    <Ver_1/>
                  </MobPhoneInfo>
                  <Ver_2/>
                  <PrioritySeq>0</PrioritySeq>
                  <Ver_3/>
                  <PhoneNumDsp></PhoneNumDsp>
                  <Ver_4/>
                </PhoneInfo>
              </AddlPhoneArray>
              <Ver_2/>
              <AddlNameStat></AddlNameStat>
              <Ver_3/>
            </AcctTitleInfo>
          </AcctTitleArray>
          <Ver_1/>
          <Ver_2/>
          <Ver_3/>
          <Ver_4/>
          <Ver_5/>
          <Ver_6/>
        </DepInfoRec>
        <Ver_1/>
        <Ver_2/>
      </DepMod>
    </AcctMod>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

AcctMod Delete Request

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>
  </SOAP-ENV:Header>
  <SOAP-ENV:Body>
    <AcctMod
      xmlns="http://jackhenry.com/jxchange/TPG/2008">
      <MsgRqHdr>
        <jXchangeHdr>
          <JxVer/>
          <AuditUsrId>INSERT</AuditUsrId>
          <AuditWsId>INSERT</AuditWsId>
          <AuthenUsrId/>
          <ConsumerName/>
          <ConsumerProd/>
          <Ver_1/>
          <jXLogTrackingId>INSERT</jXLogTrackingId>
          <Ver_2/>
          <InstRtId JHANull="" Rstr="">INSERT</InstRtId>
          <InstEnv>INSERT</InstEnv>
          <Ver_3/>
          <BusCorrelId/>
          <Ver_4/>
          <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"/>
        </AuthenUsrCred>
        <Ver_2/>
        <AuthenProdCred>
          <ns2:Security
            xmlns:ns2="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"/>
        </AuthenProdCred>
        <Ver_3/>
      </MsgRqHdr>
      <ErrOvrRdInfoArray>
        <ErrOvrRd>
          <ErrCode/>
          <Ver_1/>
        </ErrOvrRd>
      </ErrOvrRdInfoArray>
      <AccountId Rstr="">
        <AcctId JHANull="" Rstr="">INSERT</AcctId>
        <AcctType JHANull="" Rstr="">INSERT</AcctType>
        <Ver_1/>
      </AccountId>
      <Dlt>true</Dlt>
      <ActIntentKey/>
      <Ver_5/>
    </AcctMod>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope> 

AcctMod SafeDepInfoRec Request

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>
  </SOAP-ENV:Header>
  <SOAP-ENV:Body>
    <AcctMod
      xmlns="http://jackhenry.com/jxchange/TPG/2008">
      <MsgRqHdr>
        <jXchangeHdr>
          <JxVer></JxVer>
          <AuditUsrId>INSERT</AuditUsrId>
          <AuditWsId>INSERT</AuditWsId>
          <AuthenUsrId></AuthenUsrId>
          <ConsumerName></ConsumerName>
          <ConsumerProd></ConsumerProd>
          <Ver_1/>
          <jXLogTrackingId>INSERT</jXLogTrackingId>
          <Ver_2/>
          <InstRtId JHANull="" Rstr="">INSERT</InstRtId>
          <InstEnv>INSERT</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/>
        <Ver_3/>
      </MsgRqHdr>
      <ErrOvrRdInfoArray>
        <ErrOvrRd>
          <ErrCode></ErrCode>
          <Ver_1/>
        </ErrOvrRd>
        <ErrOvrRd>
          <ErrCode></ErrCode>
          <Ver_1/>
        </ErrOvrRd>
      </ErrOvrRdInfoArray>
      <AccountId Rstr="">
        <AcctId JHANull="" Rstr="" SrchType="">INSERT</AcctId>
        <AcctType>INSERT</AcctType>
        <Ver_1/>
      </AccountId>
      <Ver_1/>
      <Ver_2/>
      <Ver_3/>
      <SafeDepMod>
        <SafeDepInfoRec>
          <AcctStat JHANull="" Rstr="">INSERT</AcctStat>
        </SafeDepInfoRec>
      </SafeDepMod>
      <Ver_4/>
      <Ver_5/>
    </AcctMod>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope> 

AcctMod Loan Stop Request

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>{{X-UserName}}</wsse:Username>
                <wsse:Password
     Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">{{X-Password}}</wsse:Password>
                <wsu:Created
   xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">{{current_timestamp}}</wsu:Created>
            </wsse:UsernameToken>
        </wsse:Security>
    </SOAP-ENV:Header>
    <SOAP-ENV:Body>
        <AcctMod
      xmlns="http://jackhenry.com/jxchange/TPG/2008">
            <MsgRqHdr>
                <jXchangeHdr>
                    <JxVer/>
                    <AuditUsrId>{{X-AuditUser}}</AuditUsrId>
                    <AuditWsId>{{X-AuditWorkStation}}</AuditWsId>
                    <AuthenUsrId/>
                    <ConsumerName/>
                    <ConsumerProd/>
                    <Ver_1/>
                    <jXLogTrackingId>{{$guid}}</jXLogTrackingId>
                    <Ver_2/>
                    <InstRtId>{{X-InstitutionRoutingID}}</InstRtId>
                    <InstEnv>{{X-Environment}}</InstEnv>
                    <Ver_3/>
                    <BusCorrelId/>
                    <Ver_4/>
                    <WorkflowCorrelId/>
                    <Ver_5/>
                    <ValidConsmName>{{X-ValidConsumerName}}</ValidConsmName>
                    <ValidConsmProd>{{X-ValidConsumerProduct}}</ValidConsmProd>
                    <Ver_6/>
                </jXchangeHdr>
                <Ver_1/>
                <Ver_2/>
                <Ver_3/>
            </MsgRqHdr>
            <AccountId>
                <AcctId>116</AcctId>
                <AcctType>L</AcctType>
                <Ver_1/>
            </AccountId>
            <Ver_1/>
            <Ver_2/>
            <LnMod>
                <LnStopInfo>
                    <LnStopCode>STP</LnStopCode>
                    <LnStopInfoArray>
                        <LnStopFuncInfo>
                            <LnStopFuncCode>Pmt</LnStopFuncCode>
                            <LnStopFuncStat>Stop</LnStopFuncStat>
                            <Ver_1/>
                        </LnStopFuncInfo>
                    </LnStopInfoArray>
                    <Ver_1/>
                </LnStopInfo>
                <Ver_1/>
                <Ver_2/>
            </LnMod>
            <Ver_3/>
            <Ver_4/>
            <Ver_5/>
        </AcctMod>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

AcctMod FAQ

Is this the request to modify the value for User Defined Fields via UserDefInfo element?

Yes, AcctMod can be used to modify a User Defined Field. For AcctAdd/AcctMod/CustAdd/CustMod/etc fields can be sent in the UserDefInfoArray by simply passing in the proper name of the field in the UserDefTxt (Note: for Core Director this will be the field number instead of the field name.) along with that fields value. The field name/number would be sent in UserDefTxt and the field value would be sent in UserDefCode.

For example in Core Director, the below would set User Defined Field 828 to “TX”.

XML
<UserDefInfo>
  <UserDefTxt>828</UserDefTxt>
  <UserDefCode>TX</UserDefCode>
</UserDefInfo>

Updating the Maturity date MatDt for CD account 13003, to test Maturity alerts and the maturity date would not change. Why?

The 13003 account gets an interest check every day and you can’t change the Next Payment Date when interest is pending on the account, which is every day.


SilverLake We recently had Enterprise Workflow (EWF) installed on our system and are looking over some of the IDG and WebServiceTestTool documentation to learn about the jXChange calls. When going about changing someone’s name, we are needing to add an alternate name to a loan account under the CIF. In SilverLake, the name change button does not allow you to add an Alternate Name for the AcctRelCode. The only way it seems you can add an alternate name is through the Customer Account Alternate Name Maintenance menu under CIF Maintenance. I am unable to find where that jXChange call is so that we can do this in EWF instead of manually. What is the jXChange call to add an alternate name?

In AcctAdd/Mod/Inq additional names are mapped to AcctTitleArray.AcctTitleInfo.AddlName.ComName.


Core Director How do I stop a particular fee record?

To have a particular fee record stopped, or example Loan Stop Fee 808, they would need to utilize AcctMod. Within the LnStopInfoArray, element LnStopFuncCode=808, LnStopFuncStat=Stop, and if they have an expiration date then it would be input into LnStopFuncExpDt.


SilverLake I was looking in the documentation for the “AcctMod” Service the field used to change the account Credit Limit. What field should I use to change it?

Use the LOCMod operation via element LOCAmt.


When entering changes to an loan account, I am getting errors back saying certain fields have invalid values but I did not pass in those values in my AcctMod call. Why am I getting those errors?

The backend business service performs a validation of all the fields of the account, even ones that you are not changing. This account was opened back in 2001 and things have changed in the DMZ environment since that time. (For example, ProdCode 6 no longer exists.)

This could occur in production as well when dealing with older accounts. If this occurs, the bank would have to get involved to shore up the account or make the changes on your behalf.

For testing in the DMZ, so as to not encounter this error, we suggest that you use a loan account that you have created or search for one that has a rather recent create date.


I see that AcctAdd/AcctMod has a FedWithCode element. Is this used to model the W9 withholding status?

Yes. There are a number of fields within the AcctAdd/AcctMod that start with FedWith that are used to manage Federal Withholding.


What values are supported by the FedWithCode field?

This is a parameterized field and the values can vary by FI. Please use the ParmValSrch operation passing in ParmName = FedWithCode to get the applicable values for the FI in question.


** Is there a way to setup bounce protection via JX? **

Bounce protection cannot be configured through JX APIs. This process is managed at the FI level, either manually or through bank-specific automation. Please consult with the bank to identify their internal requirements and procedures for adding this protection.


Is there any way to set the withholding status at the customer level, for all accounts belonging to the customer?

No


Is there a way to setup bounce protection via JX?

Bounce protection cannot be configured through JX APIs. This process is managed at the FI level, either manually or through bank-specific automation. Please consult with the bank to identify their internal requirements and procedures for adding this protection.


What parameters are required in an AcctMod request to initialize a loan with an established balance and a defined payment amount due?

Loan balances cannot be modified directly via AcctAdd or AcctMod requests. To adjust a balance, you must submit a TrnAdd request; the system then updates the balance based on the specific TrnCodeCode provided. Additionally, the PmtAmtDue is calculated automatically once the system generates a bill.


What steps are required before closing out a safety deposit box?

Before calling AcctMod to change the status of a safety deposit box to “Unoccupied” any partial pay amounts or outstanding bills on the SDB account must be taken care of. AcctInq can be used to determine the total of the latecharges/pastdue/current due bills, you’ll find that in CurDueAmt. Once you have CurDueAmt, you can then call SafeDepPmtAdd to make payment on the account.


When adding in an account to SilverLake the FI is referring to Service Charge Type(SCTYPE) in Demand Deposits, and we need to know how this field is populated?

AcctAdd/AcctMod - The default is to set SilverLake Service Charge Type = C

SerChgWavDormantChgWavService Charge Type on SilverLake
blank/NABlankC
ChgBlankC
ChgChgC
WavBlankW
WavChgD
WavWavW

If SerChgWav or DormantChgWav is left other off of the AcctMod the other will pull from the Demand Deposit master record and may not have the change you anticipated if it does not meet one of the combinations above, or meets one that was not expected.


Can overdraft limits be set at the account level using exact dollar values (e.g., $105 on one account, $1,000,000 on another), instead of using the pre‑set mappings in jXchange?

No, overdraft limits cannot be set per account with custom dollar values. jXchange treats the overdraft limit as a 1‑digit code (0–9) mapped to predetermined dollar amounts. Because of this, you cannot directly assign an overdraft limit like $105 or $1,000,000 at the account level.

Some financial institutions may have implemented custom solutions or use an additional paid module called Smart EIP, but even with Smart EIP, overdraft limits are not exposed through jXchange APIs.


Is there a SOAP API or variable to remove or revoke Bounce Protection/Overdraft Protection from a DDA account?

No, there is currently no API method available to perform this action.


How do you mark an address as bad via jXchange?

Use the AddrInfo.Addr.InvAddr in AddrMod and set the value to ‘Y’.


Can the Paper Statement Auto Charge Override field be updated using the AcctMod API?

No, not at this time. However, since the Paper Statement Auto Charge Override field (DDPSAUTCOD) is currently mapped for Xperience, it is straightforward to add support for the field in the API.

Each Financial Institution would need to submit a Custom Work Request (CWR) to request the custom mapping.


In JHA Silverlake, how is AcctMod used to advance a maturity date based on a new term starting today, rather than calculating from the original account opening date?

Updating the Term Count automatically triggers a recalculation of the Maturity Date (MatDt) based on the original account opening date.

To achieve a specific maturity result, follow these guidelines:

  • Extending the Term: To add time to the current schedule (e.g., 30 months), you must provide the cumulative total (Original Term + New Extension).
  • Manual Maturity Override: If a specific MatDt is required regardless of the term, you must execute two separate AcctMod calls. Silverlake’s internal logic prioritizes the calculated date over the manual input if both are sent simultaneously.

Two-Step Update Process

  1. First AcctMod Call: Update the Term Count (this triggers the automatic calculation).
  2. Second AcctMod Call: Update the MatDt only (this overrides the previous calculation).

When using the AcctMod API to modify Certificates of Deposit (CDs), why does the field OVERRIDE DELAY INT change from N to Y even though it was not part of the request?

This can happen in two scenarios:

  1. If the request includes TimeDepAcctInqRec.x_TimeDepRateIntInfo.TimeDepRateIntInfo.DlyDayFinalIntPmt and its value differs from CDPAR2/P2DLYD (Delay interest # days), then CDMAST/OVRDLY will be set to Y if it isn’t already.
  2. If no value is passed, the system checks whether CDMAST/OVRDYS differs from CDPAR2/P2DLYD. If they don’t match, CDMAST/OVRDLY is flipped to Y.

Can the AcctMod call be used to change Account Status on GL Accounts?

No, there is not an option to modify GL account info via JX SOAP APIs.


Have a Question?

Did this page help you?

Last updated Wed Mar 4 2026