0% found this document useful (0 votes)
185 views83 pages

Achworks - Soap Ver 4.0 Api Guide

Uploaded by

Juan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
185 views83 pages

Achworks - Soap Ver 4.0 Api Guide

Uploaded by

Juan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

 

API  Guide  Version  


1.3  

ACHWorks-­‐SOAP  Ver  4.0  API  Guide  

A C H W o r k s ,     a c h w o r k s . c o m ,   2 7 2 4   K i l g o r e   R d . ,   R a n c h o   C o r d o v a ,   C A   9 5 7 7 6  
 

Table  of  Contents  


1.  INTRODUCTION   3  

2.  DESCRIPTION  OF  METHODS/OPERATIONS   4  


2.1  CHECKING  CONNECTION  AND  ACCOUNT  STATUS   4  
2.1.1  CONNECTIONCHECK   4  
2.1.2  CHECKCOMPANYSTATUS   4  
2.2  SENDING  TRANSACTIONS   6  
2.2.1  SENDACHTRANS   6  
2.2.2  SENDACHTRANSBATCH   7  
2.2.3  SENDACHTRANSBATCHBIN   8  
2.3  GETTING  SETTLEMENTS  AND  RETURNS   11  
2.3.1  GETACHRETURNS   11  
2.3.2  GETACHRETURNSHIST   12  
2.4  RETRIEVING  PAST  CONNECTION  RESULTS  AND  ERRORS   14  
2.4.1  GETRESULTFILE   14  
2.4.2  GETERRORFILE   14  
2.5  VIEWING  AND  DELETING  BATCH  TRANSACTIONS   16    
2.5.1  VIEWACHTRANSBATCH   16  
2.5.2  DELETEACHTRANSBATCH   16  

3.  DATA  DEFINITIONS   17  
3.  1  COMPANYINFO   17  
3.  2  ACHTRANSRECORD   17  
3.  3  ACHFILE   20  
3.  4  ACHRETURNRECORD   21  
3.  5  ACHRETURNS   24  
3.  6  TRANSRESULT   25  
3.  7  RESULTFILE   26  
3.  8  ERRORRECORD   27  
3.  9  ERRORFILE   28  
3.  10  FIELD  TYPES  AND  LENGTHS   29  

4.  CONTACT  INFORMATION   30  

APPENDICES   31  
A1.  SERVICE  DESCRIPTION   31  
A2.  SAMPLE  CLIENT  CODES   48  
A2.1  PHP   48  
A2.2  VISUAL  BASIC  ([Link])   57  
A2.3  C#   65  
A2.4  JAVA   73  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  2  of  83  
1.  Introduction  
 
The  use  of  web  services  like  SOAP,  both  in  theory  and  by  experience,    is  said  to  be  one  of  the  most  suitable  
applications  for  easy  and  seamless  integration  with  existing  or  even  new  systems  regardless  of  
development  platform  and/or  operating  system.    This  is  proven  to  be  true  for  web  services  involving  
complex  data  structure  and  applications  that  require  frequent  connections  (data  updates)  like  the  ACH  
system.    Since  it’s  first  release  in  2001,  ACHWorks-­‐SOAP  (Figure  1)  has  been  a  reliable  and  stable  system.  
 
The  latest  version  of  ACHWorks-­‐SOAP  (Version  4,  2010)  provides  new  enhancements  which  include:    (a)  
instant  feedback  of  detailed  status  and/or  connection  errors  for  each  method  or  operation  call,  (b)  
improved  data  structure  for  input  and  output  eliminating  the  need  for  understanding  the  ACHWorks  
proprietary  data  format  (as  in  Version  3),    (c)  changing  from  the  XML-­‐RPC  to  the  Document/Literal  format  
for  compatibility  with  most  and  recent  versions  of  development  platforms,  and  (d)  increase  in  the  speed  of  
connection.  
 
The  new  version  features  a  data  structure  that  employs  full  object-­‐oriented    (OO)  design  that  easily  
translates  to  non-­‐fully  OO  formats  like  XML.      Consequently,  the  generated  classes  from  the  web  service  
WSDL  present  data  as  objects.      This  feature  facilitates  easier  and  more  intuitive  consuming  of  the  web  
service  i.e.  creation  of  a  SOAP  client  application.      
 

SOAP CLIENT REQUEST ACHWORKS-SOAP


APPLICATION API

C#, VB, ASP (.NET), Test:


PHP, ACH DATA IN [Link]/dnet/[Link]?wsdl
XSD/WSDL  
JAVA,
ENCAPSULATED
COLD FUSION, OBJECTS
 
RUBY, Production:
PYTHON, Live https server url will be provided to
registered merchants
DELPHI,
 
etc.
RESPONSE

 
Figure  1.  ACHWorks-­SOAP  Schematic  Diagram  

 
  ACH
SYSTEM

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  3  of  83  
2.  Description  of  Methods/Operations  
 
This  section  lists  the  methods  and  description  for  using  the  ACHWorks-­‐SOAP  web  service.    A  brief  
description  is  provided  for  each  method  to  complement  the  service  description  (test  WSDL  url)  which  can  
be  found  on  this  link:  [Link]  .      A  different  link  for  WSDL  to  
send  live  ACH  transactions  is  provided  for  registered  merchants.  
 
For  details  of  the  data  structure  and  definitions,  please  refer  to  Section  3  of  this  guide.  
 
Viewing  the  sample  codes,  Appendix  A2  in  this  guide,  also  prove  useful  in  understanding  on  how  a  method  
is  called  in  an  application  and  to  easily  get  started  quickly.  
 
2.1.  Checking  Connection  and  Account  Status  
2.1.1  ConnectionCheck
 
 
This  is  the  basic  method  for  accessing  the  web  service  to  determine  validity  of  company  credentials.    This  
method  may  be  used  for  initial  testing  of  the  service  only.    To  view  the  Request/Response  description  of  
this  operation  go  to  this  link:  [Link]  
 
Format:  
ConnectionCheckResult  =  ConnectionCheck(InpCompanyInfo),  
                   where  ConnectionCheckResult  is  of  type  String  
                                             InpCompanyInfo  is  of  type  CompanyInfo  (Section  3.1)                    
 
Example:      
The  InpCompanyInfo  can  have  the  following  value,  
     [Link]=”TST”  
     [Link]=”9505”  
     [Link]=”MYCOMPANY”  
     [Link]=”SASD%!%$DGLJGWYRRDGDDUDFDESDHDD”  
 
and  the  ConnectionCheckResult  object  may  have  the  following  value  after  the  method  call,  
     ConnectionCheckResult  -­‐>  “SUCCESS:Valid  Account”  
 
or  if  rejected,  
     ConnectionCheckResult  -­‐>  “REJECTED:Invalid  Account”  
 
2.1.2  CheckCompanyStatus
 
 
This  method  checks  the  status  of  the  company  credentials  whether  it’s  an  active  or  an  inactive  account.    It  
is  possible  that  an  account  is  valid  (e.g.  ConnectionCheck)  but  not  yet  activated  or  already  been  deactivated  
or  closed.    An  account  must  be  active  to  initiate  methods  for  sending  ACH  transactions  and  getting  ACH  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  4  of  83  
returns.    To  view  the  Request/Response  description  of  this  operation  go  to  this  link:  
[Link]  
 
Format:  
CheckCompanyStatusResult  =  CheckCompanyStatus(InpCompanyInfo),  
                   where  CheckCompanyStatusResult  is  of  type  String  
                                             InpCompanyInfo  is  of  type  CompanyInfo  (Section  3.1)                    
 
Example:    
The  InpCompanyInfo  can  have  the  following  value,  
     [Link]=”TST”  
     [Link]=”9505”  
     [Link]=”MYCOMPANY”  
     [Link]=”SASD%!%$DGLJGWYRRDGDDUDFDESDHDD”  
 
and  the  CheckCompanyStatusResult  object  may  have  the  following  value  after  the  method  call,  
     CheckCompanyStatusResult  -­‐>  “SUCCESS:Valid  And  Active  Account”  
 
or  if  rejected,  
     CheckCompanyStatusResult  -­‐>  “REJECTED:Invalid  And/Or  Inactive  Account”  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  5  of  83  
2.2.  Sending  Transactions  
2.2.1  SendACHTrans
 
 
This  method  is  used  for  sending  a  single  ACH  transaction  or  record.      ACHTransRecord  describes  the  format  
of  a  single  ACH  transaction  or  record  (see  Section  3.2).      To  view  the  Request/Response  description  of  this  
operation  go  to  this  link:  [Link]  
 
Format:  
SendACHTransResult  =  SendACHTrans(InpCompanyInfo,  InpACHTransRecord),  
           where  SendACHTransResult  is  of  type  TransResult  (Section  3.6)  
                                       InpCompanyInfo  is  of  type  CompanyInfo  (Section  3.1)    
                                       InpACHTransRecord  is  of  type  ACHTransRecord  (Section  3.2)  
 
Example:      
The  input  InpCompanyInfo  and  InpACHTransRecord  objects  may  have  the  following  values,  
     [Link]=”TST”  
     [Link]=”9502”  
     [Link]=”MYCOMPANY”  
     [Link]=”SASD%!%$DGLJGWYRRDGDDUDFDESDHDD”  
 
     [Link]=”TST”  
     [Link]=”9502”  
     [Link]=”XC#-­‐0002”  
     [Link]=”DOE,  JOHN”  
     [Link]=”123456780”  
     [Link]=”00002323044”  
     .     .   .   .   .   .   .  
     .     .   .   .   .   .   .  
     [Link]=”1”  
 
Then,  the  SendACHTransResult  object  may  have  the  following  value  after  the  method  call,  
     [Link]-­‐>”TST”  
     [Link]-­‐>”9502”    
     [Link]-­‐>”SUCCESS”  
     [Link]-­‐>”Transaction  record  received  and  queued  on  04/16/2010  [Link]  PM  Pacific  Time    
                                                                                                                             [FrontEndTrace=X9000123310].  Server  Processing  Time:15.625  ms”  
     [Link]  -­‐>0  
 
Or  if  rejected,  
     [Link]-­‐>”TST”  
     [Link]-­‐>”9502”    
     [Link]-­‐>”REJECTED”  
     [Link]-­‐>”Rejected  due  to  errors”  
     [Link]  -­‐>2  
     [Link][0]-­‐>”Error#1:FrontEndTrace  X9000123310  already  used.”  
     [Link][1]-­‐>”Error#2:Unable  to  complete  processing  of  data  due  to  error(s).”  
 
Special  Note:    All  transactions  sent  via  this  method  can  be  separately  managed  using  the  ACHWorks-­‐WEB  
online  application  (optional  but  useful  feature  for  online  viewing  and  editing  of  transactions).    Although  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  6  of  83  
ACHWorks-­‐WEB  requires  a  separate  license,  the  license  is  not  required  to  facilitate  the  processing  of  the  
transaction  sent  using  this  method.  
 
   
2.2.2  SendACHTransBatch
 
 
This  method  is  used  for  sending  multiple  or  batch  of  ACH  transactions.    ACHFile  describes  the  format  of  a  
batch  file  (see  Section  3.3).    To  view  the  Request/Response  description  of  this  operation  go  to  this  link:    
[Link]  
 
Format:  
SendACHTransBatchResult  =  SendACHTransBatch(InpCompanyInfo,  InpACHFile),  
           where  SendACHTransBatchResult  is  of  type  TransResult  (Section  3.6)  
                                       InpCompanyInfo  is  of  type  CompanyInfo  (Section  3.1)    
                                       InpACHFile  is  of  type  ACHFile  (Section  3.3)  
 
Example:      
The  input  InpCompanyInfo  and  InpACHFile  objects  may  have  the  following  values,  
     [Link]=”TST”  
     [Link]=”9502”  
     [Link]=”MYCOMPANY”  
     [Link]=”SASD%!%$DGLJGWYRRDGDDUDFDESDHDD”  
 
     [Link]=”TST”  
     [Link]=”9502”  
     [Link]=””    //we  recommend  that  you  leave  this  blank,    see  Section  3.3.3  for  forma  
     [Link]=3  
     [Link]=2  
     [Link]=600.5  
     [Link]=1  
     [Link]=350.25  
     [Link][0]=InpACHTransRecord1    //See  example  in  Section  2.2.2  for  assigning  InpACHransRecord    
     [Link][1]=InpACHTransRecord2    //See  example  in  Section  2.2.2  for  assigning  InpACHransRecord  
   [Link][2]=InpACHTransRecord3      //See  example  in  Section  2.2.2  for  assigning  InpACHransRecord    
     
Then,  the  SendACHTransBatchResult  object  may  have  the  following  value  after  the  method  call,  
     [Link]-­‐>”TST”  
     [Link]-­‐>”9502”    
     [Link]-­‐>”SUCCESS”  
     [Link]-­‐>”Transaction  records  received  and  queued  on  04/16/2010  [Link]  PM  Pacific  Time      
                                                                                                                                               [ACHFileName=TST9502-­‐[Link]].  Server  Processing  Time:<0.0001  ms”  
     SendACHTransBatchResult  TotalNumErrors  -­‐>0  
 
Or  if  rejected,  
     [Link]-­‐>”TST”  
     [Link]-­‐>”9502”    
     [Link]-­‐>”REJECTED”  
     [Link]-­‐>”Rejected  due  to  errors”  
     [Link]  -­‐>2  
     [Link][0]-­‐>”Error#1:  Record  count  defined  does  not  match  actual  number  of  records.”  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  7  of  83  
     [Link][1]-­‐>”Error#2:Unable  to  complete  processing  of  data  due  to  error(s).”  
 

 
 

2.2.3  SendACHTransBatchBin
 
Some  developers  prefer  to  send  a  ready-­‐made  file  instead  of  assembling  it  in  their  client  code.    This  method  
can  be  used  for  sending  multiple  or  batch  of  ACH  transactions  as  an  alternative  to  the  SendACHTransBatch  
method.    The  input    ACHFile  is  encoded  in  a  binary  format  (Figure  2.1).      This  method  is  also  recommended  
if  sending  more  than  5,000  transactions  per  send  call.    To  view  the  Request/Response  description  of  this  
operation  go  to  this  link:  [Link]  
 
Format:  
SendACHTransBatchBinResult  =  SendACHTransBatchBin(InpCompanyInfo,  InpBinFile),  
           where  SendACHTransBatchBINResult  is  of  type  TransResult  (Section  3.6)  
                                       InpCompanyInfo  is  of  type  CompanyInfo  (Section  3.1)    
                                       InpBinFile  is  of  type  base64binary,    binary  encoded  ACHFile  (see  Figure  2.1  below)  
 
Example:      
Then  input  InpCompanyInfo  and  InpACHFile  objects  may  have  the  following  values,  
     [Link]=”TST”  
     [Link]=”9502”  
     [Link]=”MYCOMPANY”  
     [Link]=”SASD%!%$DGLJGWYRRDGDDUDFDESDHDD”  
 
     InpBinFile  =  //assign  a  base64  binary  encoded  of  the  ACHFile,    see  Figure  2.1  below  
 
Then,  the  SendACHTransBatchBINResult  object  may  have  the  following  value  after  the  method  call,  
     [Link]-­‐>”TST”  
     [Link]-­‐>”9502”    
     [Link]-­‐>”SUCCESS”  
     [Link]-­‐>”Transaction  records  received  and  queued  on  04/16/2010  [Link]  PM  Pacific  Time      
                                                                                                                                               [ACHFileName=TST9502-­‐[Link]].  Server  Processing  Time:<0.0001  ms”  
     SendACHTransBatchResult  TotalNumErrors  -­‐>0  
 
Or  if  rejected,  
     [Link]-­‐>”TST”  
     [Link]-­‐>”9502”    
     [Link]-­‐>”REJECTED”  
     [Link]-­‐>”Rejected  due  to  errors”  
     [Link]  -­‐>2  
     [Link][0]-­‐>”Error#1:  Record  count  defined  does  not  match  actual  number  of  records.”  
     [Link][1]-­‐>”Error#2:Unable  to  complete  processing  of  data  due  to  error(s).”  
 
 
Figure  2.1  Sample  ACHFile  text  (to  be  encoded  in  base64  binary  format  as  InpBinFile):    
 <?xml  version="1.0"  encoding="utf-­‐8"  ?>    
<ACHFile>  
<SSS>TST</SSS>    
        <LocID>9505</LocID>    
        <ACHFileName>TST9505-­‐[Link]</ACHFileName>    

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  8  of  83  
        <TotalNumRecords>3</TotalNumRecords>    
        <TotalDebitRecords>2</TotalDebitRecords>    
        <TotalDebitAmount>600.5</TotalDebitAmount>    
        <TotalCreditRecords>1</TotalCreditRecords>    
        <TotalCreditAmount>350.25</TotalCreditAmount>    
<ACHRecords>  
<ACHTransRecord>  
            <SSS>TST</SSS>    
            <LocID>9505</LocID>    
            <FrontEndTrace>J-­‐00081</FrontEndTrace>    
            <OriginatorName>MYCOMPANY</  OriginatorName  >    
            <TransactionCode>PPD</TransactionCode>    
            <CustTransType>D</CustTransType>    
            <CustomerID>CUSTID123-­‐1</CustomerID>    
            <CustomerName>DOE,  JOHN</CustomerName>    
            <CustomerRoutingNo>987654320</CustomerRoutingNo>    
            <CustomerAcctNo>00332358882</CustomerAcctNo>    
            <CustomerAcctType>C</CustomerAcctType>    
            <TransAmount>100.25</TransAmount>    
            <CheckOrCustID>9166388811</CheckOrCustID>    
            <CheckOrTransDate>03/24/2010</CheckOrTransDate>    
            <EffectiveDate>03/24/2010</EffectiveDate>    
            <Memo>FirstPay</Memo>    
            <OpCode>S</OpCode>    
            <AccountSet>1</AccountSet>    
          </ACHTransRecord>  
<ACHTransRecord>  
            <SSS>TST</SSS>    
            <LocID>9505</LocID>    
            <FrontEndTrace>J-­‐00082</FrontEndTrace>    
            <  OriginatorName  >MYCOMPANY</  OriginatorName  >    
            <TransactionCode>PPD</TransactionCode>    
            <CustTransType>D</CustTransType>    
            <CustomerID>CUSTID123-­‐2</CustomerID>    
            <CustomerName>SMITH,  JANET</CustomerName>    
            <CustomerRoutingNo>987654320</CustomerRoutingNo>    
            <CustomerAcctNo>00332358882</CustomerAcctNo>    
            <CustomerAcctType>C</CustomerAcctType>    
            <TransAmount>500.25</TransAmount>    
            <CheckOrCustID>9166388811</CheckOrCustID>    
            <CheckOrTransDate>03/24/2010</CheckOrTransDate>    
            <EffectiveDate>03/24/2010</EffectiveDate>    
            <Memo>FirstPay</Memo>    
            <OpCode>S</OpCode>    
            <AccountSet>1</AccountSet>    
          </ACHTransRecord>  
<ACHTransRecord>  
            <SSS>TST</SSS>    
            <LocID>9505</LocID>    
            <FrontEndTrace>J-­‐00083</FrontEndTrace>    
            <  OriginatorName  >MYCOMPANY</  OriginatorName  >    
            <TransactionCode>PPD</TransactionCode>    
            <CustTransType>C</CustTransType>    
            <CustomerID>CUSTID123-­‐3</CustomerID>    
            <CustomerName>YOUNG,  JOE</CustomerName>    

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  9  of  83  
            <CustomerRoutingNo>987654320</CustomerRoutingNo>    
            <CustomerAcctNo>00332358882</CustomerAcctNo>    
            <CustomerAcctType>C</CustomerAcctType>    
            <TransAmount>350.25</TransAmount>    
            <CheckOrCustID>9166388811</CheckOrCustID>    
            <CheckOrTransDate>03/24/2010</CheckOrTransDate>    
            <EffectiveDate>03/24/2010</EffectiveDate>    
            <Memo>FirstPay</Memo>    
            <OpCode>S</OpCode>    
            <AccountSet>1</AccountSet>    
          </ACHTransRecord>  
        </ACHRecords>  
   </ACHFile>  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  10  of  83  
2.3  Getting  Settlements  and  Returns  
2.3.1  GetACHReturns
 
 
This  method  is  used  to  retrieve  outstanding  status  of  Returns  and  Settlements  from  the  ACH  system  for  a  
transaction  or  set  of  transactions.      The  output  is  stored  in  ACHReturns  file  described  in  Section  3.5.      A  file  
may  consist  of  one  or  more  list  or  array  of  return  records.    Each  return  record  is  formatted  as  an  
ACHReturnRecord  (Section  3.4).      
 
This  is  the  recommended  way  to  check  for  status  of  transactions.    Only  new  statuses  (not  previously  picked  
up)    will  be  available  using  this  method.    To  view  the  Request/Response  description  of  this  operation  go  to  
this  link:  [Link]  
 
Format:  
GetACHReturnsResult  =  GetACHReturns(InpCompanyInfo),  
           where  GetACHReturnsResult  is  of  type  ACHReturns  (Section  3.5)  
                                       InpCompanyInfo  is  of  type  CompanyInfo  (Section  3.1)    
 
Example:      
The  InpCompanyInfo  can  have  the  following  value,  
     [Link]=”TST”  
     [Link]=”9505”  
     [Link]=”MYCOMPANY”  
     [Link]=”SASD%!%$DGLJGWYRRDGDDUDFDESDHDD”  
 
and  the  GetACHReturnResult  object  may  have  the  following  value  after  the  method  call,  
     [Link]-­‐>”TST”  
     [Link]-­‐>”9502”    
     [Link]-­‐>”SUCCESS”    
     [Link]  -­‐>  “Retrieved  14  records  on  04/16/2010  [Link]  PM  Pacific  Time.    
                                                                                                                                 Server  Processing  Time:<0.0001  ms”  
     [Link]  -­‐>  14  
     [Link][0].FrontEndTrace  -­‐>  “X35948”  
     [Link][0].ResponseCode  -­‐>  “1SNT”  
     [Link][0].TransAmount  -­‐>  356.45  
     [Link][0].EffectiveDate  -­‐>  “2010-­‐03-­‐05T[Link]”  
     [Link][1].FrontEndTrace  -­‐>  “X35950”  
     [Link][1].ResponseCode  -­‐>  “1SNT”  
     [Link][1].TransAmount  -­‐>  50.25  
     [Link][1].EffectiveDate  -­‐>  “2010-­‐03-­‐05T[Link]”  
     [Link][2].FrontEndTrace  -­‐>  “X35951”  
     [Link][2].ResponseCode  -­‐>  “2STL”  
     [Link][2].TransAmount  -­‐>  750.25  
     [Link][2].EffectiveDate  -­‐>  “2010-­‐03-­‐05T[Link]”    
     [Link][2].ActionDetail  -­‐>  “A340016R  Credit  01  TS  00001”  
     .   .   .   .   .  
     .   .   .   .   .  
     [Link][14].FrontEndTrace  -­‐>  “X78531”  
     .   .   .   .   .  
     .   .   .   .   .  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  11  of  83  
     [Link][14].ActionDetail  -­‐>  “A340016W  Credit  03  TS  00003”  
 
Or  if  no  data  to  retrieve,  
     [Link]-­‐>”TST”  
     [Link]-­‐>”9502”    
     [Link]-­‐>”SUCCESS”    
   [Link]  -­‐>  “No  records  to  retrieve  at  this  time,  04/20/2010  [Link]  PM  Pacific  Time.    
                                                                                                                               Server  Processing  Time:<0.0001  ms”  
 
2.3.2  GetACHReturnsHist
 
 
This  method  is  used  to  retrieve  status  at  specified  date  range  of  Returns  and  Settlements  from  the  ACH  
system  for  a  transaction  or  set  of  transactions.      The  output  is  stored  in  ACHReturns  file  described  in  
Section  3.5.      A  file  may  consist  of  one  or  more  list  or  array  of  return  records.    Each  return  record  is  
formatted  as  an  ACHReturnRecord  (Section  3.4).    This  method  is  useful  for  rebuilding  historical  data  in  the  
event  of  hard  drive  failure  or  data  corruption.    To  view  the  Request/Response  description  of  this  operation  
go  to  this  link:  [Link]  
 
Format:  
GetACHReturnsHistResult  =  GetACHReturnsHist(InpCompanyInfo,ReturnDateFrom,ReturnDateTo),  
           where  GetACHReturnsHistResult  is  of  type  ACHReturns  (Section  3.5)  
                                       InpCompanyInfo  is  of  type  CompanyInfo  (Section  3.1)    
         ReturnDateFrom  and  ReturnDateTo  are  of  type  dateTime  (please  refer  to  sample  codes  for    
correct  implementation  of  dateTime  depending  on  the  development  platform)  
 
Example:      
The  InpCompanyInfo  can  have  the  following  value,  
     [Link]=”TST”  
     [Link]=”9505”  
     [Link]=”MYCOMPANY”  
     [Link]=”SASD%!%$DGLJGWYRRDGDDUDFDESDHDD”  
 
and  the  GetACHReturnHistResult  object  may  have  the  following  value  after  the  method  call,  
     [Link]-­‐>”TST”  
     [Link]-­‐>”9502”    
     [Link]-­‐>”SUCCESS”    
     [Link]  -­‐>  “Retrieved  142  records  on  04/16/2010  [Link]  PM  Pacific  Time.    
                                                                                                                                 Server  Processing  Time:<0.0001  ms”  
     [Link]  -­‐>  142  
     [Link]  –>“2010-­‐03-­‐25T[Link]”  
     [Link]  –>“2010-­‐03-­‐29T[Link]”  
     [Link][0].FrontEndTrace  -­‐>  “X35948”  
     [Link][0].ResponseCode  -­‐>  “1SNT”  
     [Link][0].TransAmount  -­‐>  356.45  
     [Link][0].EffectiveDate  -­‐>  “2010-­‐03-­‐05T[Link]”  
     [Link][1].FrontEndTrace  -­‐>  “X35950”  
     [Link][1].ResponseCode  -­‐>  “1SNT”  
     [Link][1].TransAmount  -­‐>  50.25  
     [Link][1].EffectiveDate  -­‐>  “2010-­‐03-­‐05T[Link]”  
     [Link][2].FrontEndTrace  -­‐>  “X35951”  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  12  of  83  
     [Link][2].ResponseCode  -­‐>  “2STL”  
     [Link][2].TransAmount  -­‐>  750.25  
     [Link][2].EffectiveDate  -­‐>  “2010-­‐03-­‐05T[Link]”    
     [Link][2].ActionDetail  -­‐>  “A340016R  Credit  01  TS  00001”  
     .   .   .   .   .  
     .   .   .   .   .  
     [Link][142].FrontEndTrace  -­‐>  “X78531”  
     .   .   .   .   .  
     .   .   .   .   .  
     [Link][142].ActionDetail  -­‐>  “A340016W  Credit  03  TS  00003”  
 
Or  if  no  data  to  retrieve,  
     [Link]-­‐>”TST”  
     [Link]-­‐>”9502”    
     [Link]-­‐>”SUCCESS”    
   [Link]  -­‐>  “No  records  to  retrieve  at  this  time,  04/20/2010  [Link]  PM  Pacific  Time.    
                                                                                                                                                 Server  Processing  Time:<0.0001  ms”  
 
 
A  derivate  method  called  GetACHReturnsHistRC  can  be  used  to  retrieve  ACH  Settlements  and  Returns  by  
response  code.    Response  codes  is  either  a  1SNT,  2STL,  3RET,  4INT,  5COR  or  9BNK  (see  Section  3.4.5).  
 
Format:  
GetACHReturnsHistRCResult  =  GetACHReturnsHistRC(InpCompanyInfo,ReturnDateFrom,ReturnDateTo,    
       InpResponseCode),  
           where  GetACHReturnsHistRCResult  is  of  type  ACHReturns  (Section  3.5)  
                                       InpCompanyInfo  is  of  type  CompanyInfo  (Section  3.1)    
         ReturnDateFrom  and  ReturnDateTo  are  of  type  dateTime  (please  refer  to  sample  codes  for    
correct  implementation  of  dateTime  depending  on  the  development  platform)  
       InpResponseCode  is  of  type  String  (Section  3.4.5)    
 
 
 
 
 
 
 
 
 

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  13  of  83  
2.4.  Retrieving  Past  Connection  Results  and  Errors  
2.4.1  GetResultFile
 
 
This  method  is  used  to  retrieve  past  results  of  connections.      The  output  is  stored  in  ResultFile  described  in  
Section  3.7.      A  file  may  consist  of  one  or  more  list  or  array  of    result  records.    Each  result  record  is  
formatted  as  a  TransResult  (Section  3.6).    To  view  the  Request/Response  description  of  this  operation  go  
to  this  link:  [Link]  
 
Format:  
GetResultFileResult  =  GetResultFile(InpCompanyInfo,ResultDateFrom,ResultDateTo),  
           where  GetResultFileResult  is  of  type  ResultFile  (Section  3.7)  
                                       InpCompanyInfo  is  of  type  CompanyInfo  (Section  3.1)    
         ResultDateFrom  and  ResultDateTo  are  of  type  dateTime  (please  refer  to  sample  codes  for    
correct  implementation  of  dateTime  depending  on  the  development  platform)  
 
Example:      
Calling  GetResultFile  may  have  following  values  for  the  GetResultFileResult    object,  
     [Link]  -­‐>”TST”  
     [Link]  -­‐>”9505”        
     [Link]  -­‐>”SUCCESS”  
     [Link]-­‐>”  Retrieved  15  connection  records  on  04/16/2010  [Link]  PM  Pacific  Time  ….”                      
     [Link]  –>“2010-­‐03-­‐25T[Link]”  
     [Link]  –>“2010-­‐03-­‐29T[Link]”  
     [Link]  -­‐>15  
     [Link][0].CallMethod  -­‐>  “SendACHTransBatch”  
     [Link][0].Status  -­‐>  “SUCCESS”  
     [Link][0].FileName  -­‐>  “TST9505-­‐[Link]”  
     [Link][1].CallMethod  -­‐>  “SendACHTransBatch”  
     [Link][1].Status  -­‐>  “SUCCESS”  
     [Link][1].FileName  -­‐>  “TST9505-­‐[Link]”  
     [Link][2].CallMethod  -­‐>  “SendACHTrans”  
     [Link][2].Status  -­‐>  “SUCCESS”  
     [Link][2].FrontEndTrace  -­‐>  “X9000123310454”  
     .   .       .     .     .   .   .   .   .  
     .   .       .     .     .   .   .   .   .  
     [Link][15].CallMethod  -­‐>  “SendACHTransBatch”  
     [Link][15].Status  -­‐>  “REJECTED”  
     [Link][15].FileName  -­‐>  “TST9505-­‐[Link]”  

 
2.4.2  GetErrorFile
 
 
This  method  is  used  to  retrieve  past  errors  in  connections.      The  output  is  stored  in  ErrorFile  described  in  
Section  3.9.      A  file  may  consist  of  one  or  more  list  or  array  of  error  records.    Each  error  record  is  formatted  
as  an  ErrorRecord  (Section  3.8).    To  view  the  Request/Response  description  of  this  operation  go  to  this  
link:  [Link]  
 

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  14  of  83  
Format:  
GetErrorFileResult  =  GetErrorFile(InpCompanyInfo,ErrorDateFrom,ErrorDateTo),  
           where  GetErrorFileResult  is  of  type  ErrorFile  (Section  3.9)  
                                       InpCompanyInfo  is  of  type  CompanyInfo  (Section  3.1)    
         ErrorDateFrom  and  ErrorDateTo  are  of  type  dateTime  (please  refer  to  sample  codes  for    
correct  implementation  of  dateTime  depending  on  the  development  platform)  
 
Example:      
Calling  GetErrorFile  may  have  following  values  for  the  GetErrorFileResult    object,  
     [Link]  -­‐>”TST”    
     [Link]  -­‐>”9505”  
     [Link]  -­‐>”SUCCESS”  
     [Link]-­‐>”Retrieved  9  error  records  on  04/16/2010  [Link]  PM  Pacific  Time  ….”    
     [Link]  –>“2010-­‐03-­‐25T[Link]”  
     [Link]  –>“2010-­‐03-­‐29T[Link]”  
     [Link]  -­‐>9  
     [Link][0].CallMethod  -­‐>  “SendACHTrans”  
     [Link][0].FrontEndTrace  -­‐>  “XT-­‐23201”  
     [Link][0].TotalNumErrors  -­‐>  2  
     [Link][0].Errors[0]  -­‐>  “Error#1:CustomerRoutingNo  is  a  required  field.”  
     [Link][0].Errors[1]  -­‐>  “Error#2:Unable  to  complete  processing  of  data  due  to  error(s).”  
     [Link][1].CallMethod  -­‐>  “SendACHTransBatch”  
     [Link][1].FileName  -­‐>  “TST9505-­‐[Link]”  
     [Link][1].TotalNumErrors  -­‐>  2  
     [Link][1].Errors[0]  -­‐>  “Error#1:  Invalid  CustomerAcctType,  Rec#1.”  
     [Link][1].Errors[1]  -­‐>  “Error#2:Unable  to  complete  processing  of  data  due  to  error(s).”  
     .   .       .     .     .   .   .   .   .  
     .   .       .     .     .   .   .   .   .  
     [Link][9].CallMethod  -­‐>  “SendACHTransBatch”  
     [Link][9].FileName  -­‐>  “TST9505-­‐[Link]”  
     [Link][9].TotalNumErrors  -­‐>  3  
     [Link][9].Errors[0]  -­‐>  “Error#1:  Invalid  CustomerAcctType,  Rec#1.”  
     [Link][9].Errors[1]  -­‐>  “Error#2:  TransAmount  has  invalid  or  zero  value,  Rec#1.”  
     [Link][9].Errors[2]  -­‐>  “Error#3:Unable  to  complete  processing  of  data  due  to  error(s).”  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  15  of  83  
2.5.  Viewing  and  Deleting  Batch  Transaction  
2.5.1  ViewACHTransBatch
 
 
This  method  is  used  to  view  or  read  an  ACH  Batch  File  specified  by  the  ACHFileName.      The  output  is  stored  
in  an  ACHFile  described  in  Section  3.3.      A  file  may  consist  of  one  or  more  list  or  array  of    ACHTransRecords.    
Each  transaction  record  is  formatted  as  an  ACHTransRecord  (Section  3.2).    To  view  the  Request/Response  
description,  go  to  this  link:  [Link]  
 
 
Format:  
ViewACHTransBatchResult  =  ViewACHTransBatch(InpCompanyInfo,  InpACHFileName),  
           where  ViewACHTransBatchResult  is  of  type  ACHFile  (Section  3.3)  
                                       InpCompanyInfo  is  of  type  CompanyInfo  (Section  3.1)    
                                       InpACHFileName  is  of  type  String  
 
 
 
2.5.2  DeleteACHTransBatch
 
 
This  method  is  used  to  delete  an  ACH  Batch  File  specified  by  the  ACHFileName  (if  it  still  possible  i.e.  file  not  
sent  yet  to  ACH  for  processing  or  not  previously  deleted).        
 
Format:  
DeleteACHTransBatchResult  =  DeleteACHTransBatch(InpCompanyInfo,  InpACHFileName),  
           where  DeleteACHTransBatchResult  is  of  type  TransResult  (Section  3.6)  
                                       InpCompanyInfo  is  of  type  CompanyInfo  (Section  3.1)    
                                       InpACHFileName  is  of  type  String  
 
To  view  the  Request/Response  description  of  this  operation  go  to  this  link:    
[Link]  
 
Special  Note:    Only  files  or  transactions  sent  via  the  SendACHTransBatch  and  SendACHTransBatchBIN  
methods  can  be  deleted  using  this  method.    Deleting  a  single  transaction  (sent  using  SendACHTrans)  can  be  
separately  done  using  the  ACHWorks-­‐WEB  online  application,    an  optional  but  useful  feature  for  online  
viewing  and  editing  of  transactions.  ACHWorks-­‐WEB  requires  a  separate  license.  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  16  of  83  
3.  Data  Definitions  
 
This  lists  the  data  types  for  input/output  in  using  the  ACHWorks-­‐SOAP  web  service.    A  brief  description  is  
provided  for  each  method  to  complement    the  service  description  (WSDL  url)  which  can  be  found  on  this  
link:  [Link]  .  
 
Please  see  Section  3.10  for  required  field  types  and  lengths.  
 
3.1  CompanyInfo
 
 
The  CompanyInfo  serves  as  the  basic  company  credential  for  accessing  the  ACHWorks-­‐SOAP  web  service.      
This  is  a  required  input  for  each  method  or  operation.    It  consists  of  SSS,  LocID,  Company  and  CompanyKey  
which  will  be  described  below.  
 
3.1.1  SSS  
SSS  is  a  3-­‐letter  code  furnished  to  registered  merchants.      For  sample  codes  and  for  using  the  test  server,  
the  value  ‘TST’  is  commonly  used.  
 
3.1.2  LocID  
LocID  is  a  4-­‐digit  alphanumeric    code  furnished  to  registered  merchants.    For  sample  codes  and  for  using  
the  test  server,  the  value  ‘9502’    or  ‘9505’  is  commonly  used.  
 
3.1.3  Company  
Company  is  an  alpha-­‐numeric  user  ID  (used  as  username  for  the  service)  furnished  to  registered  
merchants.    For  sample  codes  and  for  using  the  test  server,  the  value  ‘MY  COMPANY’  or  ‘THAT  COMPANY’  
is  commonly  used.  
 
3.1.4  CompanyKey  
CompanyKey  is  an  alpha-­‐numeric  user  KEY  (used  as  password  for  the  service)  furnished  to  registered  
merchants.      
 
3.2  ACHTransRecord
 
 
The  ACHTransRecord    represents  the  basic  or  single  ACH  record  or  transaction.    It  is  used  as  input  for  
sending  an  ACH  transaction  i.e.  using  the  SendACHTrans  method.    It  consists  of  SSS,  LocID,  FrontEndTrace,  
OriginatorName,  TransactionCode,  CustTransType,  CustomerID,  CustomerName,    CustomerRoutingNo,  
CustomerAcctNo,  TransAmount,  CheckOrCustID,  CheckOrTransDate,  EffectiveDate,  Memo,  OpCode,  and  
AccountSet  which  will  be  described  below.    For    details  on  the  field  types  and  format  please  refer  to  Table  
3.1.  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  17  of  83  
 
3.2.1  SSS  
SSS  is  a  3-­‐letter  code  furnished  to  registered  merchants.      For  sample  codes  and  for  using  the  test  server,  
the  value  ‘TST’  is  commonly  used.  
 
3.2.2  LocID  
LocID  is  a  4-­‐digit  alphanumeric    code  furnished  to  registered  merchants.    For  sample  codes  and  for  using  
the  test  server,  the  value  ‘9502’    or  ‘9505’  is  commonly  used.  
 
3.2.3  FrontEndTrace  
The  FrontEndTrace  is  used  to  track  this  particular    record  or  transaction.    A  unique  value  should  be  used  
for  this  field.    This  field  will  always  be  returned  for  referencing  this  record.    Important  Note:    The  
FrontEndTrace  number  should  not  start  with  the  character  W  to  ensure  uniqueness  especially  when  using  
the  SendACHTrans  method  (Transactions  entered  manually  through  ACHWorks-­‐WEB  automatically  be  
assigned  a  FrontEndTrace  beginning  with  the  char  “W”).  
 
3.2.4  OriginatorName  
The  OriginatorName  is  the  name  of  the  company  sending  the  transaction.    This  is  typically  the  name  of  the  
company  that  owns  the  ACH  account  (or  it’s  abbreviation).    This  name  will  appear  on  th  receiver  
(customer’s)  bank  statement.    It  is  important  that  the  OriginatorName  or  Abbreviation  is  recognizable  by  
the  receiver  to  reduce  the  possibility  of  a  chargeback  for  unauthorized  transaction.    For  RCK  transactions,    
this  is  the  original  payee  in  the  Check  i.e.  the  name  written  on  the  ‘Pay  to  the  order  of’  line.    
 
3.2.5  TransactionCode
The  TransactionCode  is  the  ACH  transaction  codes  such  as  PPD,  CCD,  TEL,  WEB,  RCK,  POS,  POP  and  ARC.  
The  code  indicates  what  type  of  authorization  has  been  obtained  to  approve  the  transaction.  The  most  
common  codes  are  PPD  which  is  a  signed  authorization  for  a  Debit  or  Credit  to  a  Personal  bank  account  and  
CCD  which  is  a  signed  authorization  do  Debit  or  Credit  a  business  bank  account.  WEB  is  used  for  
transactions  authorizations  obtained  from  consumers  through  the  internet  with  an  e-­‐signature.  TEL  is  for  
consumer  authorizations  obtained  over  the  telephone.  Please  contact  ACHWorks  for  assistance  in  
classifying  transactions  codes  to  be  used.  
 
3.2.6  CustTransType
 
CustTransType  is  the  transaction  type.    It  indicates  if  it  is  a  debit  or  a  credit  to  the  receiver’s  account,  ‘D’  for  
debit  and  ‘C’  for  credit.
 
3.2.7  CustomerID
CustomerID  is  an  optional  field  for  assigning  a  unique  identifier  for  a  customer.      
 

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  18  of  83  
3.2.8  CustomerName
CustomerName  is    the  name  of  the  customer.    Preferred  format  is  Lastname,    Firstname  and  all  caps.    The    
value  is  trimmed  to  the  maximum  length  allowed  by  the  ACH  which    22  characters.      
 
3.2.9  CustomerRoutingNo
This  is  the  customer’s  9-­‐digit  Bank  Routing  Number.  
 
3.2.10  CustomerAcctNo
This  is  the  customer’s  Bank  Account  Number.  
 
3.2.11  CustomerAcctType
This  is  the  customer’s  Bank  Account  Type  either  ‘C’  for  checking  account  or  ‘S’  for  savings  account.  
 
3.2.12  TransAmount
TransAmount  is  the  amount  of  the  transaction  in  US  dollars,  e.g.  575.45  
 
3.2.13  CheckOrCustID
CheckOrCustID  is  the  check  number.    This  field  may  contain  the  CustomerID  if  no  value  is  provided.  
 
3.2.14  CheckOrTransDate
CheckOrTransDate  is  the  original  date  printed  on  the  Check  or  usually  the  date  of  the  transaction.  
 
3.2.15  EffectiveDate
EffectiveDate  is  the  date  that  you  want  this  transaction  submitted  to  the  ACH  system.    If  date  is  ahead  of  
current  date,  the  transaction  will  be  warehoused  in  our  server.  
 
3.2.16  Memo
The  memo  is  the  ten  character  field  which  will  appear  on  the  customer’s  bank  statement.      
 
3.2.17  OpCode
 
OpCode  is  an  optional  code  which  is  either  ‘S’    for  single  entry  (default)  or  ‘R’  for  recurring  entry.    This  code  
is  required  for  POS  and  WEB  TransactionCodes.
 
 
 

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  19  of  83  
3.2.18  AccountSet
This  value  is  furnished  for  registered  merchants.  A  merchant  may  have  multiple  Account  Set  numbers  for  
each  of  the  merchant’s  bank  accounts  registered  with  ACHWorks,  a  corresponding  Account  Set  number  will  
be  defined  in  the  server.  I.E.  Account  set  1  is  your  B  of  A  account,  Account  Set  2  is  your  Wells  Fargo  account,  
etc.  
 
 
3.3  ACHFile
 
 
The  ACHFile    represents  the  file  with  elements  or  fields  that  describe  an  ACH  file.    It  contains  the  batch  of  
transactions  in  the  form  ACHRecords  (same  as  the  list  or  array  of  ACHTransRecord’s).    It  is  used  as  input  
for  sending  batch  of  ACH  transactions  i.e.  using  the  SendACHTransBatch  method.    It  consists  of  SSS,  LocID,  
ACHFileName,  TotalNumRecords,  TotalDebitRecords,  TotalCreditRecords,  TotalDebitAmount,  
TotalCreditAmount  and  the  ACHRecords  which  will  be  described  below.      
 
 
3.3.1  SSS  
SSS  is  a  3-­‐letter  code  furnished  to  registered  merchants.      For  sample  codes  and  for  using  the  test  server,  
the  value  ‘TST’  is  commonly  used.  
 
3.3.2  LocID  
LocID  is  a  4-­‐digit  alphanumeric    code  furnished  to  registered  merchants.    For  sample  codes  and  for  using  
the  test  server,  the  value  ‘9502’    or  ‘9505’  is  commonly  used.  
 
3.3.3  ACHFileName  
ACHFileName  is  the  unique  filename  of  the  batch  with  the  following  format:  
    SSSLLLL-­‐YYmmddAA  +    ‘.XML’,  
                                                 where  SSS  is  the  SSS  field  (see  3.3.1  above)  
                                                                             LLL  is  the  LocID  field  (3.3.2  above)  
                                                                             YYmmdd  (string  format  of  the  date  of  sending  the  file)  
                                                                             AA  is  an  alphanumeric  modifier  to  the  name  we  recommend  iterating  it    
(AA,  AB,  AC,  A9  ...  BA,  BB,  BC,  B9  ...  ZZ,  Z9)  etc.  
 
Important  Note:    If  you  want  the  system  to  automatically  create  a  unique  filename  for  you,  leave  the  
ACHFileName  blank.  
 
3.3.4  TotalNumRecords  
TotalNumRecords  is  the  total  number  of  records  (ACHTransRecord)  in  the  batch  file.  
 
3.3.5  TotalDebitRecords  
TotalDebitRecords  is  the  total  number  of  debit  transaction  records  (ACHTransRecord)  in  the  batch  file.  
 

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  20  of  83  
3.3.6  TotalCreditRecords  
TotalCreditRecords  is  the  total  number  of  credit  transaction  records  (ACHTransRecord)  in  the  batch  file.  
 
3.3.7  TotalDebitAmount  
TotalDebitAmount  is  the  total  amount  of  debit  transaction  records  (ACHTransRecord)  in  the  batch  file.  
 
3.3.8  TotalCreditAmount  
TotalCreditAmount  is  the  total  amount  of  credit  transaction  records  (ACHTransRecord)  in  the  batch  file.  
 
3.3.9  ACHRecords  
 
ACHRecords  is  the  list  or  array  of  ACHTransRecord’s  in  the  batch  file  (ArrayOfACHTransRecord).      See  
Section  3.2  above  for  the  data  structure  of  ACHTransRecord.      Again,  the  use  of  this  field  is  best  understood  
by  looking  at  the  WSDL  and/or  the  classes  generated  from  WSDL;  and  looking  at  the  sample  codes  given  in  
Appendix  A2  of  this  guide.  
 
3.4  ACHReturnRecord
 
 
The  ACHReturnRecord    represents  the  basic  or  single  ACH  return  and/or  settlement  record.    It  is  a  unit  
record  for  an  ACH  return  or  settlement  e.g.  using  the  GetACHReturns  method.    It  consists  of  SSS,  LocID,  
SourceFile,  FrontEndTrace,  ResponseCode,  CustTransType,  BackEndSN,  CustomerName,    TransAmount,  
EffectiveDate,  ActionDate  and  ActionDetail  which  will  be  described  below.    For    details  on  the  field  types  
and  format  please  refer  to  Table  3.2.  
 
3.4.1  SSS  
SSS  is  a  3-­‐letter  code  furnished  to  registered  merchants.      For  sample  codes  and  for  using  the  test  server,  
the  value  ‘TST’  is  commonly  used.  
 
3.4.2  LocID  
LocID  is  a  4-­‐digit  alphanumeric    code  furnished  to  registered  merchants.    For  sample  codes  and  for  using  
the  test  server,  the  value  ‘9502’    or  ‘9505’  is  commonly  used.  
 
3.4.3  FrontEndTrace  
The  FrontEndTrace  is  tracking  ID  of  this  particular    record  or  transaction  when  it  was  sent  or  submitted  to  
the  ACH.      
 
3.4.4  SourceFile  
This  is  the  source  file  name  of  the  returns.    This  is  for    internal  use  and  can  be  used  for  tracking  purposes.  
 

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  21  of  83  
3.4.5  ResponseCode  
The  response  codes  values  are  defined  and  described  as  follows:  
 
Value   Description  
1SNT:         The  transaction  was  sent  to  the  ACH  system  
2STL:   This  transaction  was  settled;  i.e.  as  a  result  of  this  transaction:  either  (a)  money  was  credited  to  
you  or  your  customer,  depending  on  transaction  type;  or(  b)  money  was  credited  or  debited  to  
you  as  a  result  of  a  return  on  this  transaction;  
3RET:         A  return  from  the  ACH  was  received  for  this  transaction.    The  ActionDetail  (Section  3.4.11  below)    
    contains  the  Return  Code.  
4INT:         ACHWorks  determined  that  this  transaction  cannot  be  processed  and  is  returned  to  you.    The  
    The  ActionDetail  (Section  3.4.11  below)  contains  the  Internal  Return  Code.  
5COR:         A  correction  or  notice  of  change  was  received  from  the  ACH.    The  ActionDetail  (Section  3.4.11    
below)    contains  the  notice  of  change  or  correction  code.  
9BNK:        This  represent  Total  Debit  or  Credit  on  your  account  as  a  result  of  various  settlements  (2STL.    The    
9BNK  transaction  should  match  your  bank  statement  exactly  and  can  be  used  to  reconcile  your    
bank  statement  with  your  ACH  transactions.  
 
3.4.6  CustTransType
 
CustTransType  is  the  transaction  type.    The  value  is  either  ‘D’  for  debit  customer  account  or  ‘C’  for  credit  
customer  account.    If  the  ResponseCode  value  is  9BNK,    CustTransType  is  set  to  blank.
 
3.4.7  CustomerName
CustomerName  is    the  name  of  the  customer.    The    value,  when  transaction  is  first  sent,    is  trimmed  to  the  
maximum  length  allowed  by  the  ACH  which    22  characters.      
 
3.4.8  TransAmount
TransAmount  is  the  amount  of  the  transaction  in  US  dollars,  e.g.  575.45  
 
3.4.9  EffectiveDate
EffectiveDate  is  the  date  when  the  transaction  was  first  submitted  to  the  ACH  system.      
 
3.4.10  ActionDate
ActionDate  is  the  date  which  has  a  value  depending  on  the  ResponseCode  (Section  3.4.5).    It  is  very  useful  
to  the  user  in  determining  the  order  of  events  when  reviewing  or  investigating  a  transaction.  
 
ResponseCode     ActionDate  
1SNT:       Date  transaction  is  sent  to  ACH  
2STL:       Date  transaction  was  settled  
3RET:       Date  transaction  was  returned  bay  ACH  Receiver  Bank  
4INT:       Date  transaction  was  not  processed  and  returned  
5COR:       Date  correction  was  received  from  the  ACH  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  22  of  83  
9BNK:       Date  money  was  credited  or  debited  to  your  bank  
 
3.4.11  ActionDetail
ActionDetail  contains  a  string  of  32  characters  and  has  a  value  depending  on  the  ResponseCode  (Section  
3.4.5):  
 
ResponseCode     ActionDetail  
1SNT:       This  field  is  blank  
2STL:       Contains  a  settlement  ID  by  which  this  transaction  was  settled,  and  a  debit  or  
        credit  was  done  into  your  bank  account.    The  format  for  this  is:  
 
        “AAAAAAAA  BBBBBB  CC  DD  EEEEE”  ,    where  
          AAAAAAAA  =  8  chars,    is  the  settlement  ID  which  also  appears  on  your  
            Bank  statement.    You  can  use  this  to  reconcile  with  your  bank  
            Statement.  
          BBBBBB  =  6  chars,  either  “DEBIT”  or  “CREDIT”  which  refers  to  DEBIT/  
            CREDIT  to  your  bank  account  
          CC  =  2  chars,  your  AccountSet  (see  Section  3.2.18)  by  which  this  transaction    
was  settled.    If  this  is  blank,  look  for  the  value  in  EEEEE  
          DD  =  2  chars,  either  “TS”  or  “RS”.    TS  refers  to  settlement  of  this    
            Transaction  when  it  clears.  RS  is  when  a  late  return  was  received  
            on  a  transaction  which  was  previously  settled.  
          EEEEE  =  your  AccountSet  (see  Section  3.2.18)  by  which  this  transaction    
            was  settled.    
 
3RET:       Contains  the  Return  Code  from  ACH.    Some  of  the  most  common  Return  Codes  are:  
        R01  –  Insufficient  Funds  
        R02  –  Closed  Account  
        R03  –  No  Account  
        R04  -­‐    Invalid  Account  Number  
R09  –  Uncollected  Funds  
 
Please  contact  ACHWorks  for  a  complete  list  of  Return  Codes.        
 
4INT:       Contains  the  Internal  Return  Code  from  ACHWorks.      Some  of  the  most    
common  Internal  Return  Codes  are:  
        X01  –  Insufficient  Funds  
        X02  –  Closed  Account  
        X03  –  No  Account  
        X04  -­‐    Invalid  Account  Number  
 
Please  contact  ACHWorks  for  a  complete  list  of  Internal  Return  Codes.        
 
5COR:       Contains  the  correction  code  and  values  from  the  ACH.    Of  the  32  characters  of  
the  ActionDetail,  the  first  3  characters  is  the  Correction  Code.    The  remaining  29    

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  23  of  83  
characters  contains  the  correction  value.    If  the  Correction  Code  is:  
         
C03  (Incorrect  Routing  and  Acct  No),    the  correction  routing  number  is  contained  
          from  the  4th  to  the  12th  character.    The  correction  account  number  is    
contained  from  the  16th  to  32nd  (the  last  character).  
C06,  the  correction  account  number  is  contained  from  the  4th  to  the  20th  character.      
The  correction  transaction  code  is  contained  from  24th  to  25th  character.  
        C07,  the  correction  routing  number  is  contained  from  the  4th  to  the  12th  character.  
The  correction  account  number  is  contained  from  the  13th  to  the  29th  
character.    The  correction  transaction  code  is  contained  from  30th    to  31st    
character.      
 
                                  Please  contact  ACHWorks  for  a  complete  list  of  Correction  Codes.    
 
9BNK:       Refer  to  a  settlement  ID  that  would  also  appear  on  your  bank  statement.    This  
        corresponds  to  a  collection  of  your  transactions  (2STL)  with  the  same  settlement    
        IDs.    Use  this  to  reconcile  with  your  bank  statement.  
 
 
 
3.5  ACHReturns
 
 
The  ACHReturns    represents  the  file  with  elements  or  fields  that  describe  an  ACH  return  file.    It  contains  
one  or  more  records  of  ACH  returns  as  ACHReturnRecords  (same  as  the  list  or  array  of  
ACHReturnRecord’s).    It  serves  as  the  output  in  getting  ACH  returns  i.e.  using  the  GetACHReturns  or  
GetACHReturnsHist  method.    It  consists  of  SSS,  LocID,    Status,  Details,  TotalNumRecords,  ReturnDateFrom,  
ReturnDateTo,  TotalNumErrors,  Errors,  and  ACHReturnRecords  which  will  be  described  below.      
 
3.5.1  SSS  
SSS  is  a  3-­‐letter  code  furnished  to  registered  merchants.        
 
3.5.2  LocID  
LocID  is  a  4-­‐digit  alphanumeric    code  furnished  to  registered  merchants.      
 
3.5.3  Status  
The  Status  describes  the  result  of  calling  the  GetACHReturns    and  GetACHReturnsHist  methods.  
 
3.5.4  Details  
This  field  desribe  the  details  of  the  Status  when  calling  the  GetACHReturns    and  GetACHReturnsHist  
methods.  
 
 

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  24  of  83  
3.5.5  TotalNumRecords  
This  is  the  total  number  of    returns  or  ACHReturnRecords.  
 
3.5.6  ReturnDateFrom  
The    specified  start  return  date  for  getting  a  set  of  ACHReturnRecords  for  this  LocID.  
 
3.5.7  ReturnDateTo  
The  specified  end  return  date  for  getting  a  set  of  ACHReturnRecords  for  this  LocID.  
 
3.5.8  TotalNumErrors  
This  is  the  total  number  of  errors  encountered  as  a  result  of  getting  the  ACHReturnRecords.  
 
3.5.9  Errors  
List  of  errors  as  an  array  of  String.  
 
3.5.10  ACHReturnRecords  
List  of  all  the  ACH  returns  and/or  settlements  as  an  array  of  ACHReturnRecord  
(ArrayOfACHReturnRecord).    See  Section  3.4  above  for  the  data  structure  of  ACHReturnRecord.  Again,  this  
field  is  best  understood  by  looking  at  the  WSDL  and/or  the  classes  generated  from  WSDL;  and  looking  at  
the  sample  codes  given  in  Appendix  A2  of  this  guide.  
 
3.6  TransResult
 
 
TransResult  is  the  data  structure  of  the  result  or  response  when  calling  send  methods  or  operations  e.g.  
SendACHTrans  or  SendACHTransBatch.    It  consists  of  SSS,  LocID,    Status,  Details,  CallMethod,  FileName,  
FrontEndTrace,  TotalNumErrors  and  Errors  which  will  be  described  below.      
 
3.6.1  SSS  
SSS  is  a  3-­‐letter  code  furnished  to  registered  merchants.      This  value  is  returned  when  doing  a  ‘send’  
method  call.  
 
3.6.2  LocID  
LocID  is  a  4-­‐digit  alphanumeric    code  furnished  to  registered  merchants.    This  value  is  returned  when  
doing  a  ‘send’  method  call.  
 
3.6.3  Status  
This  field  shows  the  connection  status  of  doing  a  ‘send’  method  call.    The  value  is  either  a  ‘SUCCESS’  or  a  
‘REJECT’.  
 

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  25  of  83  
3.6.4  Details  
  This  field  describe  in  detail  the  conection  status  in  doing  a  ‘send’  method  call.  
  Example:  
       ‘Rejected  due  to  errors  ‘or  ‘Transaction  records  received  and  queued  on  04/12/2010  [Link]  PM    
       Pacific  Time  [ACHFileName=TST9505-­‐[Link]].  Server  Processing  Time:15.6245  ms’  
 
 
3.6.5  CallMethod  
This  returns  the  ‘send’  method  used  i.e.  SendACHTrans,  SendACHTransBatch  or  SendACHTransBatchBIN.  
 
 
3.6.6  CallDateTime  
This  returns  the  time  stamp  of  the  ‘send’  method  call.  
 
 
3.6.7  FileName  
This  field  returns  the  FileName  used  or  generated  for  doing  a  ‘send’  method  call.      
e.g.  TST9505-­‐[Link]  
 
3.6.8  FrontEndTrace  
This  field  returns  the  FrontEndTrace  used  for  doing  a  SendACHTrans  method  call.  
 
3.6.9  TotalNumErrors  
This  field  returns  the  number  of  errors  encountered  in  a  ‘REJECTED’  send  method  call.    This  value  is  zero  if  
the  Status  is  a  ‘SUCCESS’.  
 
3.6.10  Errors  
List  of  all  the  Errors  encountered  in  a  ‘REJECTED’  send  method  call.      
Example:  
Error#1:FrontEndTrace X9000123310456 already used.
Error#2:Unable to complete processing of data due to error(s).

3.7  ResultFile
 
 
The  ResultFile    represents  the  file  with  elements  or  fields  that  describe  a  list  of  TransResult  from  specified  
data  range.    It  contains  one  or  more  records  of  TransResults  (same  as  the  list  of  TransResult  or  
ArrayOfTransResult).    It  serves  as  the  output  in  getting  past  connection  Results  and  Errors  i.e.  using  the  
GetResultFile  method.    It  consists  of  SSS,  LocID,    Status,  Details,  TotalResultRecords,  ResultDateFrom,  
ResultDateTo,  and  TransResults  which  will  be  described  below.      
 
3.7.1  SSS  
SSS  is  a  3-­‐letter  code  furnished  to  registered  merchants.        

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  26  of  83  
3.7.2  LocID  
LocID  is  a  4-­‐digit  alphanumeric    code  furnished  to  registered  merchants.      
 
3.7.3  Status  
This  is  the  Status  of  calling  the  GetResultFile  method,  either  a  ‘REJECTED’  or  ‘SUCCESS’  call.  
 
3.7.4  Details  
This  field  describe  in  detail  the  Status  of  calling  the  GetResultFile.  
Example:  
Retrieved 79 connection records on 04/12/2010 [Link] PM Pacific Time. Server Processing Time:<0.0001 ms
 
3.7.5  TotalResultRecords  
The  total  number  or  result  records  or  array  count  of  TransResults  .  
 
3.7.6  ResultDateFrom  
The    specified  start  result  date  for  getting  a  set  of  TransResults  for  this  LocID.  
 
3.7.7  ResultDateTo  
The    specified  end  result  date  for  getting  a  set  of  TransResults  for  this  LocID.  
 
3.7.8  TransResults  
List  of  all  the  transaction  results  as  an  array  of  TransResult  (ArrayOfTransResult).    See  Section  3.6  above  
for  the  data  structure  of  TransResult.  Again,  this  field  is  best  understood  by  looking  at  the  WSDL  and/or  the  
classes  generated  from  WSDL;  and  looking  at  the  sample  codes  given  in  Appendix  A2  of  this  guide.  
 
3.8  ErrorRecord
 
 
ErrorRecord  is  the  data  structure  of  an  error  when  calling  methods  or  operations  e.g.  SendACHTrans  or  
SendACHTransBatch.    It  consists  of  SSS,  LocID,    Status,  Details,  CallMethod,  CallDateTime,  FileName,  
FrontEndTrace,  TotalNumErrors  and  Errors  which  will  be  described  below.      
 
3.8.1  SSS  
SSS  is  a  3-­‐letter  code  furnished  to  registered  merchants.      This  field  shows  the  value  of  SSS  when  the  error  
occurred.  
 
3.8.2  LocID  
LocID  is  a  4-­‐digit  alphanumeric    code  furnished  to  registered  merchants.  This  field  shows  the  value  of  
LocID  when  the  error  occurred.  
 
 

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  27  of  83  
3.8.3  CallMethod  
This  field  shows  the  method  used  when  the  error  occured.  
 
3.8.4  CallDateTime  
This  returns  the  time  stamp  of  the  error  when  it  occured.  
 
3.8.5  FileName  
The  FileName  used  or  generated  in  the  method  (if  applicable)  when  the  error  occured.  
 
3.8.6  FrontEndTrace  
The  FrontEndTrace  used  in  the  method  (if  applicable)  when  the  error  occured.  
 
3.8.7  TotalNumErrors  
This  is  the  total  number  of  errors  encountered  as  a  result  of  using  the  ‘CallMethod’.  
 
3.8.8  Errors  
List  of  all  the  errors  encountered  as  a  result  of  a  ‘REJECTED’  CallMethod.  
 
3.9  ErrorFile
 
 
The  ErrorFile    represents  the  file  with  elements  or  fields  that  describe  a  list  of  ErrorRecord  from  specified  
data  range.    It  contains  one  or  more  records  of  ErrorRecords  (same  as  the  list  of  ErrorRecord  or  
ArrayOfErrorRecord).    It  serves  as  the  output  in  getting  past  connection  Errors  i.e.  using  the  GetErrorFile  
method.    It  consists  of  SSS,  LocID,    Status,  Details,  TotalErrorRecords,  ErrorDateFrom,  ErrorDateTo,  and  
ErrorRecords  which  will  be  described  below.      
 
3.9.1  SSS  
SSS  is  a  3-­‐letter  code  furnished  to  registered  merchants  
 
3.9.2  LocID  
LocID  is  a  4-­‐digit  alphanumeric    code  furnished  to  registered  merchants.      
 
3.9.3  Status  
This  is  the  Status  of  calling  the  GetErrorFile  method,  either  a  ‘REJECTED’  or  ‘SUCCESS’  call.  
 
3.9.4  Details  
This  field  describe  in  detail  the  Status  of  calling  the  GetErrorFile.  
Example:  
Retrieved 9 error records on 04/12/2010 [Link] PM Pacific Time. Server Processing Time:<0.0001 ms

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  28  of  83  
 
3.9.5  TotalErrorRecords  
The  total  number  or  error  records  or  array  count  of    ErrorRecords  .  
 
3.9.6  ErrorDateFrom  
The    specified  start  error  date  for  getting  a  set  of  ErrorRecords  for  this  LocID.  
 
3.9.7  ErrorDateTo  
The    specified  end  error  date  for  getting  a  set  of  ErrorRecords  for  this  LocID.  
 
3.9.8  ErrorRecords  
List  of  all  the  errors  as  an  array  of  ErrorRecord  (ArrayOfErrorRecord).    See  Section  3.8  above  for  the  data  
structure  of  ErrorRecord.  Again,  this  field  is  best  understood  by  looking  at  the  WSDL  and/or  the  classes  
generated  from  WSDL;  and  looking  at  the  sample  codes  given  in  Appendix  A2  of  this  guide.  
 
3.10  Field  Types  and  Length
 
 
Listed  in  the  table  below  are  the  fields  with  the  required  types  and  lengths  for  data  entry/output.      The  web  
service  allows  entry  of  some  of  the  string  types  e.g.  OriginatorName  or  CustomerName  to  exceed  the  
required  length  but  the  value  is  trimmed  to  the  required  length  during  processing  and  final  storage.  
 
Table  3.1    Fields  with  required  types  and  lengths.      
Field                Type   Length                                                                    Remarks  
SSS   String   3   Use  the  value  assigned  by  ACHWorks  
LocID   String   4   Use  the  value  assigned  by  ACHWorks  
FrontEndTrace     String   1-­‐12   First  character  should  not  be  ‘W’  
OriginatorName   String   1-­‐16   Originator  Name  (Individual  or  Company)  
TransactionCode   String   3   Value  is  either  PPD,  CCD,  TEL,  WEB,    RCK,  POS,  etc.  
CustTransType   String   1   Put  ‘D’  for  Debit,  ‘C’  for  Credit  
CustomerID   String   1-­‐12   Optional  field  for  ACHWorks-­‐WEB  
CustomerName   String   1-­‐22   Format:  Lastname,  Firstname  or  Companyname  
CustomerRoutingNo   String   9   Bank  Routing  No  
CustomerAcctNo   String   4-­‐17   Include  prefix  and  suffix  0’s,    include  hyphens  
CustomerAcctType   String   1   Put  ‘C’  for  Checking,  ‘S’  for  Savings  
TransAmount   Double   -­‐   Amount  in  dollars,  e.g.  100.75,  MAX  =  999999.99  
CheckOrCustID   String   1-­‐15   Check  number  or  Customer  ID  
CheckOrTransDate   ns:dateTime   -­‐   Value  should  be  <=  EffectiveDate  
EffectiveDate   ns:dateTime   -­‐   Value  should  be  >=  CheckOrTransDate  
Memo   String   1-­‐10   This  appears  on  customer’s  bank  statement  
OpCode   String   1   Put  ‘R’  if  recurring,  Default  value  is  ‘S’  
AccountSet   String   1-­‐3   Use  the  value(s)  assigned  by  ACHWorks    
ACHFileName     String   20   Format:  SSSLLLL-­‐[Link]    (see  Section  3.3.3)  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  29  of  83  
4.  Contact  Information  
 
For  more  information  and/or  questions  please  email  ACHWorks  support:    support@[Link]  or  
call  us  at  +1  916  638  8811.  
 

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  30  of  83  
 
APPENDICES  
 
A1.  Service  Description  
 
Test  WSDL  URL:    [Link]  
(A  Live  WSDL  URL  will  be  provided  to  registered  merchants)  
 
   <?xml  version="1.0"  encoding="utf-­‐8"  ?>    
-­‐  <wsdl:definitions  xmlns:soap="[Link]  
xmlns:tm="[Link]  
xmlns:soapenc="[Link]  
xmlns:mime="[Link]  xmlns:tns="[Link]  
xmlns:s="[Link]  
xmlns:soap12="[Link]  
xmlns:http="[Link]  targetNamespace="[Link]  
xmlns:wsdl="[Link]  
   <wsdl:documentation  xmlns:wsdl="[Link]  is  a  web  service  
(web  API)  by  <a  href="[Link]  that  provides  a  complete  solution  for  
Automated  Clearing  House  (ACH)  operations:  Sending  transactions  and  getting  status  of  returns  and  
settlements.  Please  click  <a  href="[Link]  to  contact  us  for  more  
information.  Last  updated  on:  03/25/2010.  Beta  Version.</wsdl:documentation>    
-­‐  <wsdl:types>  
-­‐  <s:schema  elementFormDefault="qualified"  targetNamespace="[Link]  
-­‐  <s:element  name="ConnectionCheck">  
-­‐  <s:complexType>  
-­‐  <s:sequence>  
   <s:element  minOccurs="0"  maxOccurs="1"  name="InpCompanyInfo"  type="tns:CompanyInfo"  />    
   </s:sequence>  
   </s:complexType>  
   </s:element>  
-­‐  <s:complexType  name="CompanyInfo">  
-­‐  <s:sequence>  
   <s:element  minOccurs="0"  maxOccurs="1"  name="SSS"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="LocID"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="Company"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="CompanyKey"  type="s:string"  />    
   </s:sequence>  
   </s:complexType>  
-­‐  <s:element  name="ConnectionCheckResponse">  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  31  of  83  
-­‐  <s:complexType>  
-­‐  <s:sequence>  
   <s:element  minOccurs="0"  maxOccurs="1"  name="ConnectionCheckResult"  type="s:string"  />    
   </s:sequence>  
   </s:complexType>  
   </s:element>  
-­‐  <s:element  name="SendACHTrans">  
-­‐  <s:complexType>  
-­‐  <s:sequence>  
   <s:element  minOccurs="0"  maxOccurs="1"  name="InpCompanyInfo"  type="tns:CompanyInfo"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="InpACHTransRecord"  type="tns:ACHTransRecord"  />    
   </s:sequence>  
   </s:complexType>  
   </s:element>  
-­‐  <s:complexType  name="ACHTransRecord">  
-­‐  <s:sequence>  
   <s:element  minOccurs="0"  maxOccurs="1"  name="SSS"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="LocID"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="FrontEndTrace"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="OriginatorName"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="TransactionCode"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="CustTransType"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="CustomerID"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="CustomerName"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="CustomerRoutingNo"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="CustomerAcctNo"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="CustomerAcctType"  type="s:string"  />    
   <s:element  minOccurs="1"  maxOccurs="1"  name="TransAmount"  type="s:double"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="CheckOrCustID"  type="s:string"  />    
   <s:element  minOccurs="1"  maxOccurs="1"  name="CheckOrTransDate"  type="s:dateTime"  />    
   <s:element  minOccurs="1"  maxOccurs="1"  name="EffectiveDate"  type="s:dateTime"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="Memo"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="OpCode"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="AccountSet"  type="s:string"  />    
   </s:sequence>  
   </s:complexType>  
-­‐  <s:element  name="SendACHTransResponse">  
-­‐  <s:complexType>  
-­‐  <s:sequence>  
   <s:element  minOccurs="0"  maxOccurs="1"  name="SendACHTransResult"  type="tns:TransResult"  />    
   </s:sequence>  
   </s:complexType>  
   </s:element>  
-­‐  <s:complexType  name="TransResult">  
-­‐  <s:sequence>  
   <s:element  minOccurs="0"  maxOccurs="1"  name="SSS"  type="s:string"  />    

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  32  of  83  
   <s:element  minOccurs="0"  maxOccurs="1"  name="LocID"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="Status"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="Details"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="CallMethod"  type="s:string"  />    
   <s:element  minOccurs="1"  maxOccurs="1"  name="CallDateTime"  type="s:dateTime"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="FileName"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="FrontEndTrace"  type="s:string"  />    
   <s:element  minOccurs="1"  maxOccurs="1"  name="TotalNumErrors"  type="s:int"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="Errors"  type="tns:ArrayOfString"  />    
   </s:sequence>  
   </s:complexType>  
-­‐  <s:complexType  name="ArrayOfString">  
-­‐  <s:sequence>  
   <s:element  minOccurs="0"  maxOccurs="unbounded"  name="string"  nillable="true"  type="s:string"  />    
   </s:sequence>  
   </s:complexType>  
-­‐  <s:element  name="SendACHTransBatch">  
-­‐  <s:complexType>  
-­‐  <s:sequence>  
   <s:element  minOccurs="0"  maxOccurs="1"  name="InpCompanyInfo"  type="tns:CompanyInfo"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="InpACHFile"  type="tns:ACHFile"  />    
   </s:sequence>  
   </s:complexType>  
   </s:element>  
-­‐  <s:complexType  name="ACHFile">  
-­‐  <s:sequence>  
   <s:element  minOccurs="0"  maxOccurs="1"  name="SSS"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="LocID"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="ACHFileName"  type="s:string"  />    
   <s:element  minOccurs="1"  maxOccurs="1"  name="TotalNumRecords"  type="s:int"  />    
   <s:element  minOccurs="1"  maxOccurs="1"  name="TotalDebitRecords"  type="s:int"  />    
   <s:element  minOccurs="1"  maxOccurs="1"  name="TotalDebitAmount"  type="s:double"  />    
   <s:element  minOccurs="1"  maxOccurs="1"  name="TotalCreditRecords"  type="s:int"  />    
   <s:element  minOccurs="1"  maxOccurs="1"  name="TotalCreditAmount"  type="s:double"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="ACHRecords"  type="tns:ArrayOfACHTransRecord"  />    
   </s:sequence>  
   </s:complexType>  
-­‐  <s:complexType  name="ArrayOfACHTransRecord">  
-­‐  <s:sequence>  
   <s:element  minOccurs="0"  maxOccurs="unbounded"  name="ACHTransRecord"  nillable="true"  
type="tns:ACHTransRecord"  />    
   </s:sequence>  
   </s:complexType>  
-­‐  <s:element  name="SendACHTransBatchResponse">  
-­‐  <s:complexType>  
-­‐  <s:sequence>  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  33  of  83  
   <s:element  minOccurs="0"  maxOccurs="1"  name="SendACHTransBatchResult"  type="tns:TransResult"  />    
   </s:sequence>  
   </s:complexType>  
   </s:element>  
-­‐  <s:element  name="SendACHTransBatchBin">  
-­‐  <s:complexType>  
-­‐  <s:sequence>  
   <s:element  minOccurs="0"  maxOccurs="1"  name="InpCompanyInfo"  type="tns:CompanyInfo"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="InpBinFile"  type="s:base64Binary"  />    
   </s:sequence>  
   </s:complexType>  
   </s:element>  
-­‐  <s:element  name="SendACHTransBatchBinResponse">  
-­‐  <s:complexType>  
-­‐  <s:sequence>  
   <s:element  minOccurs="0"  maxOccurs="1"  name="SendACHTransBatchBinResult"  type="tns:TransResult"  />    
   </s:sequence>  
   </s:complexType>  
   </s:element>  
-­‐  <s:element  name="SendIATACHTransBatch">  
-­‐  <s:complexType>  
-­‐  <s:sequence>  
   <s:element  minOccurs="0"  maxOccurs="1"  name="InpCompanyInfo"  type="tns:CompanyInfo"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="InpACHFile"  type="tns:IATACHFile"  />    
   </s:sequence>  
   </s:complexType>  
   </s:element>  
-­‐  <s:complexType  name="IATACHFile">  
-­‐  <s:sequence>  
   <s:element  minOccurs="0"  maxOccurs="1"  name="SSS"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="LocID"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="ACHFileName"  type="s:string"  />    
   <s:element  minOccurs="1"  maxOccurs="1"  name="TotalNumRecords"  type="s:int"  />    
   <s:element  minOccurs="1"  maxOccurs="1"  name="TotalDebitRecords"  type="s:int"  />    
   <s:element  minOccurs="1"  maxOccurs="1"  name="TotalDebitAmount"  type="s:double"  />    
   <s:element  minOccurs="1"  maxOccurs="1"  name="TotalCreditRecords"  type="s:int"  />    
   <s:element  minOccurs="1"  maxOccurs="1"  name="TotalCreditAmount"  type="s:double"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="IATOptions"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="IATACHRecords"  type="tns:ArrayOfIATACHTransRecord"  
/>    
   </s:sequence>  
   </s:complexType>  
-­‐  <s:complexType  name="ArrayOfIATACHTransRecord">  
-­‐  <s:sequence>  
   <s:element  minOccurs="0"  maxOccurs="unbounded"  name="IATACHTransRecord"  nillable="true"  
type="tns:IATACHTransRecord"  />    

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  34  of  83  
   </s:sequence>  
   </s:complexType>  
-­‐  <s:complexType  name="IATACHTransRecord">  
-­‐  <s:sequence>  
   <s:element  minOccurs="0"  maxOccurs="1"  name="SSS"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="LocID"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="FrontEndTrace"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="OriginatorName"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="TransactionCode"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="CustTransType"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="CustomerID"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="CustomerName"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="CustomerRoutingNo"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="CustomerAcctNo"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="CustomerAcctType"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="CustomerAddress"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="CustomerBank"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="CustomerBankAddress"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="CustomerBenef"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="CustomerBenefAddress"  type="s:string"  />    
   <s:element  minOccurs="1"  maxOccurs="1"  name="TransAmount"  type="s:double"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="CheckOrCustID"  type="s:string"  />    
   <s:element  minOccurs="1"  maxOccurs="1"  name="CheckOrTransDate"  type="s:dateTime"  />    
   <s:element  minOccurs="1"  maxOccurs="1"  name="EffectiveDate"  type="s:dateTime"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="Memo"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="OpCode"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="AccountSet"  type="s:string"  />    
   </s:sequence>  
   </s:complexType>  
-­‐  <s:element  name="SendIATACHTransBatchResponse">  
-­‐  <s:complexType>  
-­‐  <s:sequence>  
   <s:element  minOccurs="0"  maxOccurs="1"  name="SendIATACHTransBatchResult"  type="tns:TransResult"  />    
   </s:sequence>  
   </s:complexType>  
   </s:element>  
-­‐  <s:element  name="GetACHReturns">  
-­‐  <s:complexType>  
-­‐  <s:sequence>  
   <s:element  minOccurs="0"  maxOccurs="1"  name="InpCompanyInfo"  type="tns:CompanyInfo"  />    
   </s:sequence>  
   </s:complexType>  
   </s:element>  
-­‐  <s:element  name="GetACHReturnsResponse">  
-­‐  <s:complexType>  
-­‐  <s:sequence>  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  35  of  83  
   <s:element  minOccurs="0"  maxOccurs="1"  name="GetACHReturnsResult"  type="tns:ACHReturns"  />    
   </s:sequence>  
   </s:complexType>  
   </s:element>  
-­‐  <s:complexType  name="ACHReturns">  
-­‐  <s:sequence>  
   <s:element  minOccurs="0"  maxOccurs="1"  name="SSS"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="LocID"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="Status"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="Details"  type="s:string"  />    
   <s:element  minOccurs="1"  maxOccurs="1"  name="TotalNumRecords"  type="s:int"  />    
   <s:element  minOccurs="1"  maxOccurs="1"  name="ReturnDateFrom"  nillable="true"  type="s:dateTime"  />    
   <s:element  minOccurs="1"  maxOccurs="1"  name="ReturnDateTo"  nillable="true"  type="s:dateTime"  />    
   <s:element  minOccurs="1"  maxOccurs="1"  name="TotalNumErrors"  type="s:int"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="Errors"  type="tns:ArrayOfString"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="ACHReturnRecords"  
type="tns:ArrayOfACHReturnRecord"  />    
   </s:sequence>  
   </s:complexType>  
-­‐  <s:complexType  name="ArrayOfACHReturnRecord">  
-­‐  <s:sequence>  
   <s:element  minOccurs="0"  maxOccurs="unbounded"  name="ACHReturnRecord"  nillable="true"  
type="tns:ACHReturnRecord"  />    
   </s:sequence>  
   </s:complexType>  
-­‐  <s:complexType  name="ACHReturnRecord">  
-­‐  <s:sequence>  
   <s:element  minOccurs="0"  maxOccurs="1"  name="SSS"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="LocID"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="SourceFile"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="FrontEndTrace"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="ResponseCode"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="CustTransType"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="BackEndSN"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="CustomerName"  type="s:string"  />    
   <s:element  minOccurs="1"  maxOccurs="1"  name="TransAmount"  nillable="true"  type="s:double"  />    
   <s:element  minOccurs="1"  maxOccurs="1"  name="EffectiveDate"  nillable="true"  type="s:dateTime"  />    
   <s:element  minOccurs="1"  maxOccurs="1"  name="ActionDate"  nillable="true"  type="s:dateTime"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="ActionDetail"  type="s:string"  />    
   </s:sequence>  
   </s:complexType>  
-­‐  <s:element  name="GetACHReturnsHist">  
-­‐  <s:complexType>  
-­‐  <s:sequence>  
   <s:element  minOccurs="0"  maxOccurs="1"  name="InpCompanyInfo"  type="tns:CompanyInfo"  />    
   <s:element  minOccurs="1"  maxOccurs="1"  name="ReturnDateFrom"  type="s:dateTime"  />    

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  36  of  83  
   <s:element  minOccurs="1"  maxOccurs="1"  name="ReturnDateTo"  type="s:dateTime"  />    
   </s:sequence>  
   </s:complexType>  
   </s:element>  
-­‐  <s:element  name="GetACHReturnsHistResponse">  
-­‐  <s:complexType>  
-­‐  <s:sequence>  
   <s:element  minOccurs="0"  maxOccurs="1"  name="GetACHReturnsHistResult"  type="tns:ACHReturns"  />    
   </s:sequence>  
   </s:complexType>  
   </s:element>  
-­‐  <s:element  name="GetACHReturnsBin">  
-­‐  <s:complexType>  
-­‐  <s:sequence>  
   <s:element  minOccurs="0"  maxOccurs="1"  name="InpCompanyInfo"  type="tns:CompanyInfo"  />    
   <s:element  minOccurs="1"  maxOccurs="1"  name="InpReturnFormat"  type="tns:ReturnsFormat"  />    
   </s:sequence>  
   </s:complexType>  
   </s:element>  
-­‐  <s:simpleType  name="ReturnsFormat">  
-­‐  <s:restriction  base="s:string">  
   <s:enumeration  value="ByRecord"  />    
   <s:enumeration  value="ByFile"  />    
   </s:restriction>  
   </s:simpleType>  
-­‐  <s:element  name="GetACHReturnsBinResponse">  
-­‐  <s:complexType>  
-­‐  <s:sequence>  
   <s:element  minOccurs="0"  maxOccurs="1"  name="GetACHReturnsBinResult"  type="s:base64Binary"  />    
   </s:sequence>  
   </s:complexType>  
   </s:element>  
-­‐  <s:element  name="GetACHReturnsHistBin">  
-­‐  <s:complexType>  
-­‐  <s:sequence>  
   <s:element  minOccurs="0"  maxOccurs="1"  name="InpCompanyInfo"  type="tns:CompanyInfo"  />    
   <s:element  minOccurs="1"  maxOccurs="1"  name="ReturnDateFrom"  type="s:dateTime"  />    
   <s:element  minOccurs="1"  maxOccurs="1"  name="ReturnDateTo"  type="s:dateTime"  />    
   <s:element  minOccurs="1"  maxOccurs="1"  name="InpReturnFormat"  type="tns:ReturnsFormat"  />    
   </s:sequence>  
   </s:complexType>  
   </s:element>  
-­‐  <s:element  name="GetACHReturnsHistBinResponse">  
-­‐  <s:complexType>  
-­‐  <s:sequence>  
   <s:element  minOccurs="0"  maxOccurs="1"  name="GetACHReturnsHistBinResult"  type="s:base64Binary"  />    

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  37  of  83  
   </s:sequence>  
   </s:complexType>  
   </s:element>  
-­‐  <s:element  name="GetResultFile">  
-­‐  <s:complexType>  
-­‐  <s:sequence>  
   <s:element  minOccurs="0"  maxOccurs="1"  name="InpCompanyInfo"  type="tns:CompanyInfo"  />    
   <s:element  minOccurs="1"  maxOccurs="1"  name="ResultDateFrom"  type="s:dateTime"  />    
   <s:element  minOccurs="1"  maxOccurs="1"  name="ResultDateTo"  type="s:dateTime"  />    
   </s:sequence>  
   </s:complexType>  
   </s:element>  
-­‐  <s:element  name="GetResultFileResponse">  
-­‐  <s:complexType>  
-­‐  <s:sequence>  
   <s:element  minOccurs="0"  maxOccurs="1"  name="GetResultFileResult"  type="tns:ResultFile"  />    
   </s:sequence>  
   </s:complexType>  
   </s:element>  
-­‐  <s:complexType  name="ResultFile">  
-­‐  <s:sequence>  
   <s:element  minOccurs="0"  maxOccurs="1"  name="SSS"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="LocID"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="Status"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="Details"  type="s:string"  />    
   <s:element  minOccurs="1"  maxOccurs="1"  name="TotalResultRecords"  type="s:int"  />    
   <s:element  minOccurs="1"  maxOccurs="1"  name="ResultDateFrom"  nillable="true"  type="s:dateTime"  />    
   <s:element  minOccurs="1"  maxOccurs="1"  name="ResultDateTo"  nillable="true"  type="s:dateTime"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="TransResults"  type="tns:ArrayOfTransResult"  />    
   </s:sequence>  
   </s:complexType>  
-­‐  <s:complexType  name="ArrayOfTransResult">  
-­‐  <s:sequence>  
   <s:element  minOccurs="0"  maxOccurs="unbounded"  name="TransResult"  nillable="true"  
type="tns:TransResult"  />    
   </s:sequence>  
   </s:complexType>  
-­‐  <s:element  name="GetErrorFile">  
-­‐  <s:complexType>  
-­‐  <s:sequence>  
   <s:element  minOccurs="0"  maxOccurs="1"  name="InpCompanyInfo"  type="tns:CompanyInfo"  />    
   <s:element  minOccurs="1"  maxOccurs="1"  name="ErrorDateFrom"  type="s:dateTime"  />    
   <s:element  minOccurs="1"  maxOccurs="1"  name="ErrorDateTo"  type="s:dateTime"  />    
   </s:sequence>  
   </s:complexType>  
   </s:element>  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  38  of  83  
-­‐  <s:element  name="GetErrorFileResponse">  
-­‐  <s:complexType>  
-­‐  <s:sequence>  
   <s:element  minOccurs="0"  maxOccurs="1"  name="GetErrorFileResult"  type="tns:ErrorFile"  />    
   </s:sequence>  
   </s:complexType>  
   </s:element>  
-­‐  <s:complexType  name="ErrorFile">  
-­‐  <s:sequence>  
   <s:element  minOccurs="0"  maxOccurs="1"  name="SSS"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="LocID"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="Status"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="Details"  type="s:string"  />    
   <s:element  minOccurs="1"  maxOccurs="1"  name="TotalErrorRecords"  type="s:int"  />    
   <s:element  minOccurs="1"  maxOccurs="1"  name="ErrorDateFrom"  nillable="true"  type="s:dateTime"  />    
   <s:element  minOccurs="1"  maxOccurs="1"  name="ErrorDateTo"  nillable="true"  type="s:dateTime"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="ErrorRecords"  type="tns:ArrayOfErrorRecord"  />    
   </s:sequence>  
   </s:complexType>  
-­‐  <s:complexType  name="ArrayOfErrorRecord">  
-­‐  <s:sequence>  
   <s:element  minOccurs="0"  maxOccurs="unbounded"  name="ErrorRecord"  nillable="true"  
type="tns:ErrorRecord"  />    
   </s:sequence>  
   </s:complexType>  
-­‐  <s:complexType  name="ErrorRecord">  
-­‐  <s:sequence>  
   <s:element  minOccurs="0"  maxOccurs="1"  name="SSS"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="LocID"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="CallMethod"  type="s:string"  />    
   <s:element  minOccurs="1"  maxOccurs="1"  name="CallDateTime"  type="s:dateTime"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="FileName"  type="s:string"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="FrontEndTrace"  type="s:string"  />    
   <s:element  minOccurs="1"  maxOccurs="1"  name="TotalNumErrors"  type="s:int"  />    
   <s:element  minOccurs="0"  maxOccurs="1"  name="Errors"  type="tns:ArrayOfString"  />    
   </s:sequence>  
   </s:complexType>  
   </s:schema>  
   </wsdl:types>  
-­‐  <wsdl:message  name="ConnectionCheckSoapIn">  
   <wsdl:part  name="parameters"  element="tns:ConnectionCheck"  />    
   </wsdl:message>  
-­‐  <wsdl:message  name="ConnectionCheckSoapOut">  
   <wsdl:part  name="parameters"  element="tns:ConnectionCheckResponse"  />    
   </wsdl:message>  
-­‐  <wsdl:message  name="SendACHTransSoapIn">  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  39  of  83  
   <wsdl:part  name="parameters"  element="tns:SendACHTrans"  />    
   </wsdl:message>  
-­‐  <wsdl:message  name="SendACHTransSoapOut">  
   <wsdl:part  name="parameters"  element="tns:SendACHTransResponse"  />    
   </wsdl:message>  
-­‐  <wsdl:message  name="SendACHTransBatchSoapIn">  
   <wsdl:part  name="parameters"  element="tns:SendACHTransBatch"  />    
   </wsdl:message>  
-­‐  <wsdl:message  name="SendACHTransBatchSoapOut">  
   <wsdl:part  name="parameters"  element="tns:SendACHTransBatchResponse"  />    
   </wsdl:message>  
-­‐  <wsdl:message  name="SendACHTransBatchBinSoapIn">  
   <wsdl:part  name="parameters"  element="tns:SendACHTransBatchBin"  />    
   </wsdl:message>  
-­‐  <wsdl:message  name="SendACHTransBatchBinSoapOut">  
   <wsdl:part  name="parameters"  element="tns:SendACHTransBatchBinResponse"  />    
   </wsdl:message>  
-­‐  <wsdl:message  name="SendIATACHTransBatchSoapIn">  
   <wsdl:part  name="parameters"  element="tns:SendIATACHTransBatch"  />    
   </wsdl:message>  
-­‐  <wsdl:message  name="SendIATACHTransBatchSoapOut">  
   <wsdl:part  name="parameters"  element="tns:SendIATACHTransBatchResponse"  />    
   </wsdl:message>  
-­‐  <wsdl:message  name="GetACHReturnsSoapIn">  
   <wsdl:part  name="parameters"  element="tns:GetACHReturns"  />    
   </wsdl:message>  
-­‐  <wsdl:message  name="GetACHReturnsSoapOut">  
   <wsdl:part  name="parameters"  element="tns:GetACHReturnsResponse"  />    
   </wsdl:message>  
-­‐  <wsdl:message  name="GetACHReturnsHistSoapIn">  
   <wsdl:part  name="parameters"  element="tns:GetACHReturnsHist"  />    
   </wsdl:message>  
-­‐  <wsdl:message  name="GetACHReturnsHistSoapOut">  
   <wsdl:part  name="parameters"  element="tns:GetACHReturnsHistResponse"  />    
   </wsdl:message>  
-­‐  <wsdl:message  name="GetACHReturnsBinSoapIn">  
   <wsdl:part  name="parameters"  element="tns:GetACHReturnsBin"  />    
   </wsdl:message>  
-­‐  <wsdl:message  name="GetACHReturnsBinSoapOut">  
   <wsdl:part  name="parameters"  element="tns:GetACHReturnsBinResponse"  />    
   </wsdl:message>  
-­‐  <wsdl:message  name="GetACHReturnsHistBinSoapIn">  
   <wsdl:part  name="parameters"  element="tns:GetACHReturnsHistBin"  />    
   </wsdl:message>  
-­‐  <wsdl:message  name="GetACHReturnsHistBinSoapOut">  
   <wsdl:part  name="parameters"  element="tns:GetACHReturnsHistBinResponse"  />    

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  40  of  83  
   </wsdl:message>  
-­‐  <wsdl:message  name="GetResultFileSoapIn">  
   <wsdl:part  name="parameters"  element="tns:GetResultFile"  />    
   </wsdl:message>  
-­‐  <wsdl:message  name="GetResultFileSoapOut">  
   <wsdl:part  name="parameters"  element="tns:GetResultFileResponse"  />    
   </wsdl:message>  
-­‐  <wsdl:message  name="GetErrorFileSoapIn">  
   <wsdl:part  name="parameters"  element="tns:GetErrorFile"  />    
   </wsdl:message>  
-­‐  <wsdl:message  name="GetErrorFileSoapOut">  
   <wsdl:part  name="parameters"  element="tns:GetErrorFileResponse"  />    
   </wsdl:message>  
-­‐  <wsdl:portType  name="ACHWorksWSSoap">  
-­‐  <wsdl:operation  name="ConnectionCheck">  
   <wsdl:documentation  xmlns:wsdl="[Link]  validity  of  user/company  
information</wsdl:documentation>    
   <wsdl:input  message="tns:ConnectionCheckSoapIn"  />    
   <wsdl:output  message="tns:ConnectionCheckSoapOut"  />    
   </wsdl:operation>  
-­‐  <wsdl:operation  name="SendACHTrans">  
   <wsdl:documentation  xmlns:wsdl="[Link]  single  ACH  transaction  
record</wsdl:documentation>    
   <wsdl:input  message="tns:SendACHTransSoapIn"  />    
   <wsdl:output  message="tns:SendACHTransSoapOut"  />    
   </wsdl:operation>  
-­‐  <wsdl:operation  name="SendACHTransBatch">  
   <wsdl:documentation  xmlns:wsdl="[Link]  multiple  ACH  transaction  
records</wsdl:documentation>    
   <wsdl:input  message="tns:SendACHTransBatchSoapIn"  />    
   <wsdl:output  message="tns:SendACHTransBatchSoapOut"  />    
   </wsdl:operation>  
-­‐  <wsdl:operation  name="SendACHTransBatchBin">  
   <wsdl:documentation  xmlns:wsdl="[Link]  multiple  ACH  transaction  
records  in  a  binary  file</wsdl:documentation>    
   <wsdl:input  message="tns:SendACHTransBatchBinSoapIn"  />    
   <wsdl:output  message="tns:SendACHTransBatchBinSoapOut"  />    
   </wsdl:operation>  
-­‐  <wsdl:operation  name="SendIATACHTransBatch">  
   <wsdl:documentation  xmlns:wsdl="[Link]  multiple  IAT  ACH  transaction  
records</wsdl:documentation>    
   <wsdl:input  message="tns:SendIATACHTransBatchSoapIn"  />    
   <wsdl:output  message="tns:SendIATACHTransBatchSoapOut"  />    
   </wsdl:operation>  
-­‐  <wsdl:operation  name="GetACHReturns">  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  41  of  83  
   <wsdl:documentation  xmlns:wsdl="[Link]  returns  and  deletes  from  
server</wsdl:documentation>    
   <wsdl:input  message="tns:GetACHReturnsSoapIn"  />    
   <wsdl:output  message="tns:GetACHReturnsSoapOut"  />    
   </wsdl:operation>  
-­‐  <wsdl:operation  name="GetACHReturnsHist">  
   <wsdl:documentation  xmlns:wsdl="[Link]  returns  from  given  date  
range</wsdl:documentation>    
   <wsdl:input  message="tns:GetACHReturnsHistSoapIn"  />    
   <wsdl:output  message="tns:GetACHReturnsHistSoapOut"  />    
   </wsdl:operation>  
-­‐  <wsdl:operation  name="GetACHReturnsBin">  
   <wsdl:documentation  xmlns:wsdl="[Link]  binary  return  files  and  deletes  
from  server</wsdl:documentation>    
   <wsdl:input  message="tns:GetACHReturnsBinSoapIn"  />    
   <wsdl:output  message="tns:GetACHReturnsBinSoapOut"  />    
   </wsdl:operation>  
-­‐  <wsdl:operation  name="GetACHReturnsHistBin">  
   <wsdl:documentation  xmlns:wsdl="[Link]  binary  return  files  from  given  
date  range</wsdl:documentation>    
   <wsdl:input  message="tns:GetACHReturnsHistBinSoapIn"  />    
   <wsdl:output  message="tns:GetACHReturnsHistBinSoapOut"  />    
   </wsdl:operation>  
-­‐  <wsdl:operation  name="GetResultFile">  
   <wsdl:documentation  xmlns:wsdl="[Link]  result  records  at  specified  date  
range</wsdl:documentation>    
   <wsdl:input  message="tns:GetResultFileSoapIn"  />    
   <wsdl:output  message="tns:GetResultFileSoapOut"  />    
   </wsdl:operation>  
-­‐  <wsdl:operation  name="GetErrorFile">  
   <wsdl:documentation  xmlns:wsdl="[Link]  error  records  at  specified  date  
range</wsdl:documentation>    
   <wsdl:input  message="tns:GetErrorFileSoapIn"  />    
   <wsdl:output  message="tns:GetErrorFileSoapOut"  />    
   </wsdl:operation>  
   </wsdl:portType>  
-­‐  <wsdl:binding  name="ACHWorksWSSoap"  type="tns:ACHWorksWSSoap">  
   <soap:binding  transport="[Link]  />    
-­‐  <wsdl:operation  name="ConnectionCheck">  
   <soap:operation  soapAction="[Link]  style="document"  />    
-­‐  <wsdl:input>  
   <soap:body  use="literal"  />    
   </wsdl:input>  
-­‐  <wsdl:output>  
   <soap:body  use="literal"  />    
   </wsdl:output>  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  42  of  83  
   </wsdl:operation>  
-­‐  <wsdl:operation  name="SendACHTrans">  
   <soap:operation  soapAction="[Link]  style="document"  />    
-­‐  <wsdl:input>  
   <soap:body  use="literal"  />    
   </wsdl:input>  
-­‐  <wsdl:output>  
   <soap:body  use="literal"  />    
   </wsdl:output>  
   </wsdl:operation>  
-­‐  <wsdl:operation  name="SendACHTransBatch">  
   <soap:operation  soapAction="[Link]  style="document"  />    
-­‐  <wsdl:input>  
   <soap:body  use="literal"  />    
   </wsdl:input>  
-­‐  <wsdl:output>  
   <soap:body  use="literal"  />    
   </wsdl:output>  
   </wsdl:operation>  
-­‐  <wsdl:operation  name="SendACHTransBatchBin">  
   <soap:operation  soapAction="[Link]  style="document"  />    
-­‐  <wsdl:input>  
   <soap:body  use="literal"  />    
   </wsdl:input>  
-­‐  <wsdl:output>  
   <soap:body  use="literal"  />    
   </wsdl:output>  
   </wsdl:operation>  
-­‐  <wsdl:operation  name="SendIATACHTransBatch">  
   <soap:operation  soapAction="[Link]  style="document"  />    
-­‐  <wsdl:input>  
   <soap:body  use="literal"  />    
   </wsdl:input>  
-­‐  <wsdl:output>  
   <soap:body  use="literal"  />    
   </wsdl:output>  
   </wsdl:operation>  
-­‐  <wsdl:operation  name="GetACHReturns">  
   <soap:operation  soapAction="[Link]  style="document"  />    
-­‐  <wsdl:input>  
   <soap:body  use="literal"  />    
   </wsdl:input>  
-­‐  <wsdl:output>  
   <soap:body  use="literal"  />    
   </wsdl:output>  
   </wsdl:operation>  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  43  of  83  
-­‐  <wsdl:operation  name="GetACHReturnsHist">  
   <soap:operation  soapAction="[Link]  style="document"  />    
-­‐  <wsdl:input>  
   <soap:body  use="literal"  />    
   </wsdl:input>  
-­‐  <wsdl:output>  
   <soap:body  use="literal"  />    
   </wsdl:output>  
   </wsdl:operation>  
-­‐  <wsdl:operation  name="GetACHReturnsBin">  
   <soap:operation  soapAction="[Link]  style="document"  />    
-­‐  <wsdl:input>  
   <soap:body  use="literal"  />    
   </wsdl:input>  
-­‐  <wsdl:output>  
   <soap:body  use="literal"  />    
   </wsdl:output>  
   </wsdl:operation>  
-­‐  <wsdl:operation  name="GetACHReturnsHistBin">  
   <soap:operation  soapAction="[Link]  style="document"  />    
-­‐  <wsdl:input>  
   <soap:body  use="literal"  />    
   </wsdl:input>  
-­‐  <wsdl:output>  
   <soap:body  use="literal"  />    
   </wsdl:output>  
   </wsdl:operation>  
-­‐  <wsdl:operation  name="GetResultFile">  
   <soap:operation  soapAction="[Link]  style="document"  />    
-­‐  <wsdl:input>  
   <soap:body  use="literal"  />    
   </wsdl:input>  
-­‐  <wsdl:output>  
   <soap:body  use="literal"  />    
   </wsdl:output>  
   </wsdl:operation>  
-­‐  <wsdl:operation  name="GetErrorFile">  
   <soap:operation  soapAction="[Link]  style="document"  />    
-­‐  <wsdl:input>  
   <soap:body  use="literal"  />    
   </wsdl:input>  
-­‐  <wsdl:output>  
   <soap:body  use="literal"  />    
   </wsdl:output>  
   </wsdl:operation>  
   </wsdl:binding>  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  44  of  83  
-­‐  <wsdl:binding  name="ACHWorksWSSoap12"  type="tns:ACHWorksWSSoap">  
   <soap12:binding  transport="[Link]  />    
-­‐  <wsdl:operation  name="ConnectionCheck">  
   <soap12:operation  soapAction="[Link]  style="document"  />    
-­‐  <wsdl:input>  
   <soap12:body  use="literal"  />    
   </wsdl:input>  
-­‐  <wsdl:output>  
   <soap12:body  use="literal"  />    
   </wsdl:output>  
   </wsdl:operation>  
-­‐  <wsdl:operation  name="SendACHTrans">  
   <soap12:operation  soapAction="[Link]  style="document"  />    
-­‐  <wsdl:input>  
   <soap12:body  use="literal"  />    
   </wsdl:input>  
-­‐  <wsdl:output>  
   <soap12:body  use="literal"  />    
   </wsdl:output>  
   </wsdl:operation>  
-­‐  <wsdl:operation  name="SendACHTransBatch">  
   <soap12:operation  soapAction="[Link]  style="document"  />    
-­‐  <wsdl:input>  
   <soap12:body  use="literal"  />    
   </wsdl:input>  
-­‐  <wsdl:output>  
   <soap12:body  use="literal"  />    
   </wsdl:output>  
   </wsdl:operation>  
-­‐  <wsdl:operation  name="SendACHTransBatchBin">  
   <soap12:operation  soapAction="[Link]  style="document"  />    
-­‐  <wsdl:input>  
   <soap12:body  use="literal"  />    
   </wsdl:input>  
-­‐  <wsdl:output>  
   <soap12:body  use="literal"  />    
   </wsdl:output>  
   </wsdl:operation>  
-­‐  <wsdl:operation  name="SendIATACHTransBatch">  
   <soap12:operation  soapAction="[Link]  style="document"  />    
-­‐  <wsdl:input>  
   <soap12:body  use="literal"  />    
   </wsdl:input>  
-­‐  <wsdl:output>  
   <soap12:body  use="literal"  />    
   </wsdl:output>  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  45  of  83  
   </wsdl:operation>  
-­‐  <wsdl:operation  name="GetACHReturns">  
   <soap12:operation  soapAction="[Link]  style="document"  />    
-­‐  <wsdl:input>  
   <soap12:body  use="literal"  />    
   </wsdl:input>  
-­‐  <wsdl:output>  
   <soap12:body  use="literal"  />    
   </wsdl:output>  
   </wsdl:operation>  
-­‐  <wsdl:operation  name="GetACHReturnsHist">  
   <soap12:operation  soapAction="[Link]  style="document"  />    
-­‐  <wsdl:input>  
   <soap12:body  use="literal"  />    
   </wsdl:input>  
-­‐  <wsdl:output>  
   <soap12:body  use="literal"  />    
   </wsdl:output>  
   </wsdl:operation>  
-­‐  <wsdl:operation  name="GetACHReturnsBin">  
   <soap12:operation  soapAction="[Link]  style="document"  />    
-­‐  <wsdl:input>  
   <soap12:body  use="literal"  />    
   </wsdl:input>  
-­‐  <wsdl:output>  
   <soap12:body  use="literal"  />    
   </wsdl:output>  
   </wsdl:operation>  
-­‐  <wsdl:operation  name="GetACHReturnsHistBin">  
   <soap12:operation  soapAction="[Link]  style="document"  />    
-­‐  <wsdl:input>  
   <soap12:body  use="literal"  />    
   </wsdl:input>  
-­‐  <wsdl:output>  
   <soap12:body  use="literal"  />    
   </wsdl:output>  
   </wsdl:operation>  
-­‐  <wsdl:operation  name="GetResultFile">  
   <soap12:operation  soapAction="[Link]  style="document"  />    
-­‐  <wsdl:input>  
   <soap12:body  use="literal"  />    
   </wsdl:input>  
-­‐  <wsdl:output>  
   <soap12:body  use="literal"  />    
   </wsdl:output>  
   </wsdl:operation>  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  46  of  83  
-­‐  <wsdl:operation  name="GetErrorFile">  
   <soap12:operation  soapAction="[Link]  style="document"  />    
-­‐  <wsdl:input>  
   <soap12:body  use="literal"  />    
   </wsdl:input>  
-­‐  <wsdl:output>  
   <soap12:body  use="literal"  />    
   </wsdl:output>  
   </wsdl:operation>  
   </wsdl:binding>  
-­‐  <wsdl:service  name="ACHWorksWS">  
   <wsdl:documentation  xmlns:wsdl="[Link]  is  a  web  service  
(web  API)  by  <a  href="[Link]  that  provides  a  complete  solution  for  
Automated  Clearing  House  (ACH)  operations:  Sending  transactions  and  getting  status  of  returns  and  
settlements.  Please  click  <a  href="[Link]  to  contact  us  for  more  
information.  Last  updated  on:  03/25/2010.  Beta  Version.</wsdl:documentation>    
-­‐  <wsdl:port  name="ACHWorksWSSoap"  binding="tns:ACHWorksWSSoap">  
   <soap:address  location="[Link]  />    
   </wsdl:port>  
-­‐  <wsdl:port  name="ACHWorksWSSoap12"  binding="tns:ACHWorksWSSoap12">  
   <soap12:address  location="[Link]  />    
   </wsdl:port>  
   </wsdl:service>  
   </wsdl:definitions>.    

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  47  of  83  
 
A2.  Sample  Client  Codes  
 
The  sample  codes  below  are  written  for  the  most  popular  and  recent  development  platforms  namely  PHP,  C#,  
Visual  Basic  ([Link]),  [Link]  and  JAVA.        
 
Brief  descriptions  are  provided  to  provide  ease  in  understanding  the  required  input  and  output  and  their  
formats.  
 
Please  contact  us  if  you  want  a  digital  copy  of  the  sample  codes.    See  Section  4  for  contact  information.  
 
 
A2.1  PHP  (Version  5)    
 
[Link]    
<?php  
//ACHWORKS-­‐SOAP  Ver4.0  ConnectionCheck  (Connection  Check)  
//company  info  
class  CompanyInfo  {  
           public  $SSS;  
           public  $LocID;  
           public  $Company;  
           public  $CompanyKey;  
}  
 
$mycompanyinfo  =  new  CompanyInfo;  
$mycompanyinfo  -­‐>  SSS  =  "TST";  
$mycompanyinfo  -­‐>  LocID  =  "9505";  
$mycompanyinfo  -­‐>  Company  =  "THAT  COMPANY";  
$mycompanyinfo  -­‐>  CompanyKey  =  "RICO";    
 
 
$myclient  =  new  SoapClient("[Link]  
 
 
//Important:    use  InpCompanyInfo  in  the  soap  stru  not  CompanyInfo  
$myresult  =  $myclient-­‐>ConnectionCheck(array("InpCompanyInfo"=>$mycompanyinfo));  
 
print($myresult-­‐>ConnectionCheckResult);  
?>  
 
 

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  48  of  83  
[Link]    
<?php  
//ACHWORKS-­‐SOAP  Ver3.0  SendACHTrans  (Sends  a  single  record)  
//3.25.2010  -­‐  rico  pamplona,  rpamplonaATachworksDOTcom  
//company  info  
class  CompanyInfo  {  
           public  $SSS;  
           public  $LocID;  
           public  $Company;  
           public  $CompanyKey;  
}  
 
class  ACHTransRecord  {  
           public  $SSS;  
           public  $LocID;  
           public  $FrontEndTrace;  
           public  $OriginatorName;  
           public  $TransactionCode;  
           public  $CustTransType;  
           public  $CustomerID;  
           public  $CustomerName;  
           public  $CustomerRoutingNo;  
           public  $CustomerAcctNo;  
           public  $CustomerAcctType;  
           public  $TransAmount;  
           public  $CheckOrCustID;  
           public  $CheckOrTransDate;  
           public  $EffectiveDate;  
           public  $Memo;  
           public  $OpCode;  
           public  $AccountSet;  
}  
 
 
//CompanyInfo  
$mycompanyinfo  =  new  CompanyInfo;  
$mycompanyinfo  -­‐>  SSS  =  "TST";  
$mycompanyinfo  -­‐>  LocID  =  "9505";  
$mycompanyinfo  -­‐>  Company  =  "THAT  COMPANY";  
$mycompanyinfo  -­‐>  CompanyKey  =  "RICO";    
 
 
//ACHTransRecord  
$myachtransrecord  =  new  ACHTransRecord;  
$myachtransrecord  -­‐>  SSS  =  "TST";  //ACHWorks  assigned  
$myachtransrecord  -­‐>  LocID  =  "9505";  //ACHWorks  assigned  
$myachtransrecord  -­‐>  FrontEndTrace  =  "W9000123310454";  //impt!!!Needs  a  unique  value  each  record  per  LocID  
$myachtransrecord  -­‐>  OriginatorName  =  "MYCOMPANY";  
$myachtransrecord  -­‐>  TransactionCode  =  "PPD";  //PPD,  CCD,  WEB,  TEL,  RCK,  etc.  
$myachtransrecord  -­‐>  CustTransType  =  "D";    //D  for  debit,  C  for  credit  
$myachtransrecord  -­‐>  CustomerID  =  "CustID12235";  
$myachtransrecord  -­‐>  CustomerName  =  "DOE,  JOHNNY";  
$myachtransrecord  -­‐>  CustomerRoutingNo  ="987654320";  
$myachtransrecord  -­‐>  CustomerAcctNo  =  "0000388836291";  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  49  of  83  
$myachtransrecord  -­‐>  CustomerAcctType  =  "C";  //C  for  checking,  S  for  Savings  
$myachtransrecord  -­‐>  TransAmount  =  100.75;  
$myachtransrecord  -­‐>  CheckOrCustID  =  "9166388811";  
$myachtransrecord  -­‐>  CheckOrTransDate  =  '2010-­‐03-­‐24';    //include  leading  zero  for  mm  and  dd  e.g.  01  for  Jan  
$myachtransrecord  -­‐>  EffectiveDate  =  '2010-­‐03-­‐24';          //include  leading  zero  for  mm  and  dd  e.g.  01  for  Jan  
$myachtransrecord  -­‐>  Memo  =  "Payment";  
$myachtransrecord  -­‐>  OpCode  =  "S";  //S  for  Single,  R  for  recurring  
$myachtransrecord  -­‐>  AccountSet  =  "1";  //ACHWorks  assigned  
 
 
//SOAP  call  -­‐  test  server  
$myclient  =  new  SoapClient("[Link]  
$myresult  =  $myclient-­‐>SendACHTrans(array("InpCompanyInfo"=>$mycompanyinfo,"InpACHTransRecord"=>$myachtransrecord))-­‐
>SendACHTransResult;  
 
//print  status  and  details  
print($myresult-­‐>Status  .  ",  "  .  $myresult-­‐>Details  .  "<br>");  
 
//print  errors  if  there  is  any  
foreach  ($myresult-­‐>Errors-­‐>string  as  $myerror)  {  
print($myerror  .  "<br>");  
}  
?>  
 
 

[Link]    
<?php  
//ACHWORKS-­‐SOAP  Ver3.0  SendACHTransBatch  (Sends  multiple  records)  
//3.25.2010  -­‐  rico  pamplona,  rpamplonaATachworksDOTcom  
//company  info  
class  CompanyInfo  {  
           public  $SSS;  
           public  $LocID;  
           public  $Company;  
           public  $CompanyKey;  
}  
 
class  ACHTransRecord  {  
           public  $SSS;  
           public  $LocID;  
           public  $FrontEndTrace;  
           public  $OriginatorName;  
           public  $TransactionCode;  
           public  $CustTransType;  
           public  $CustomerID;  
           public  $CustomerName;  
           public  $CustomerRoutingNo;  
           public  $CustomerAcctNo;  
           public  $CustomerAcctType;  
           public  $TransAmount;  
           public  $CheckOrCustID;  
           public  $CheckOrTransDate;  
           public  $EffectiveDate;  
           public  $Memo;  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  50  of  83  
           public  $OpCode;  
           public  $AccountSet;  
}  
 
class  ACHFile  {  
           public  $SSS;  
           public  $LocID;  
           public  $ACHFileName;  
           public  $TotalNumRecords;  
           public  $TotalDebitRecords;  
           public  $TotalDebitAmount;  
           public  $TotalCreditRecords;  
           public  $TotalCreditAmount;  
           public  $ACHRecords;  
}  
 
//CompanyInfo  
$mycompanyinfo  =  new  CompanyInfo;  
$mycompanyinfo  -­‐>  SSS  =  "TST";  
$mycompanyinfo  -­‐>  LocID  =  "9505";  
$mycompanyinfo  -­‐>  Company  =  "THAT  COMPANY";  
$mycompanyinfo  -­‐>  CompanyKey  =  "RICO";    
 
 
//sample  ACHTransRecord  1,2  &  3    (2  debits  and  1  credit)  
//1  
$myachtransrecord1  =  new  ACHTransRecord;  
$myachtransrecord1  -­‐>  SSS  =  "TST";  //ACHWorks  assigned  
$myachtransrecord1  -­‐>  LocID  =  "9505";  //ACHWorks  assigned  
$myachtransrecord1  -­‐>  FrontEndTrace  =  "W3000123456";  //impt!!!Needs  a  unique  value  each  record  per  LocID  
$myachtransrecord1  -­‐>  OriginatorName  =  "MYCOMPANY";  
$myachtransrecord1  -­‐>  TransactionCode  =  "PPD";  //PPD,  CCD,  WEB,  TEL,  RCK,  etc.  
$myachtransrecord1  -­‐>  CustTransType  =  "D";    //D  for  debit,  C  for  credit  
$myachtransrecord1  -­‐>  CustomerID  =  "CustID12235";  
$myachtransrecord1  -­‐>  CustomerName  =  "DOE,  JOHNNY";  
$myachtransrecord1  -­‐>  CustomerRoutingNo  =  "987654320";  
$myachtransrecord1  -­‐>  CustomerAcctNo  =  "04038883674";  
$myachtransrecord1  -­‐>  CustomerAcctType  =  "C";  //C  forchecking,  S  for  Savings  
$myachtransrecord1  -­‐>  TransAmount  =  100.25;  
$myachtransrecord1  -­‐>  CheckOrCustID  =  "9166388811";  
$myachtransrecord1  -­‐>  CheckOrTransDate  =  '2010-­‐03-­‐16';  //include  leading  zero  for  mm  and  dd  e.g.  01  for  Jan  
$myachtransrecord1  -­‐>  EffectiveDate  =  '2010-­‐03-­‐16';        //include  leading  zero  for  mm  and  dd  e.g.  01  for  Jan  
$myachtransrecord1  -­‐>  Memo  =  "Payment";  
$myachtransrecord1  -­‐>  OpCode  =  "S";  //S  for  Single,  R  for  Recurring  
$myachtransrecord1  -­‐>  AccountSet  =  "1";  //ACHWorks  assigned  
 
//2  
$myachtransrecord2  =  new  ACHTransRecord;  
$myachtransrecord2  -­‐>  SSS  =  "TST";  //ACHWorks  assigned  
$myachtransrecord2  -­‐>  LocID  =  "9505";  //ACHWorks  assigned  
$myachtransrecord2  -­‐>  FrontEndTrace  =  "W3000123457";  //impt!!!Needs  a  unique  value  each  record  per  LocID  
$myachtransrecord2  -­‐>  OriginatorName  =  "MYCOMPANY";  
$myachtransrecord2  -­‐>  TransactionCode  =  "PPD";  //PPD,  CCD,  WEB,  TEL,  RCK,  etc.  
$myachtransrecord2  -­‐>  CustTransType  =  "D";    //D  for  debit,  C  for  credit  
$myachtransrecord2  -­‐>  CustomerID  =  "CustID12235";  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  51  of  83  
$myachtransrecord2  -­‐>  CustomerName  =  "DOE,  JANET";  
$myachtransrecord2  -­‐>  CustomerRoutingNo  =  "987654320";  
$myachtransrecord2  -­‐>  CustomerAcctNo  =  "0000388836291";  
$myachtransrecord2  -­‐>  CustomerAcctType  =  "C";  //C  forchecking,  S  for  Savings  
$myachtransrecord2  -­‐>  TransAmount  =  500.25;  
$myachtransrecord2  -­‐>  CheckOrCustID  =  "9166388811";  
$myachtransrecord2  -­‐>  CheckOrTransDate  =  '2010-­‐03-­‐16';    //include  leading  zero  for  mm  and  dd  e.g.  01  for  Jan  
$myachtransrecord2  -­‐>  EffectiveDate  =  '2010-­‐03-­‐16';          //include  leading  zero  for  mm  and  dd  e.g.  01  for  Jan  
$myachtransrecord2  -­‐>  Memo  =  "Payment";  
$myachtransrecord2  -­‐>  OpCode  =  "S";  //S  for  Single,  R  for  Recurring  
$myachtransrecord2  -­‐>  AccountSet  =  "1";  //ACHWorks  assigned  
 
//3  
$myachtransrecord3  =  new  ACHTransRecord;  
$myachtransrecord3  -­‐>  SSS  =  "TST";  //ACHWorks  assigned  
$myachtransrecord3  -­‐>  LocID  =  "9505";  //ACHWorks  assigned  
$myachtransrecord3  -­‐>  FrontEndTrace  =  "W1000123451";  //impt!!!Needs  a  unique  value  each  record  per  LocID  
$myachtransrecord3  -­‐>  OriginatorName  =  "MYCOMPANY";  
$myachtransrecord3  -­‐>  TransactionCode  =  "PPD";  //PPD,  CCD,  WEB,  TEL,  RCK,  etc.  
$myachtransrecord3  -­‐>  CustTransType  =  "C";    //D  for  debit,  C  for  credit  
$myachtransrecord3  -­‐>  CustomerID  =  "CustID12235";  
$myachtransrecord3  -­‐>  CustomerName  =  "SMITH,  JOE";  
$myachtransrecord3  -­‐>  CustomerRoutingNo  =  "987654320";  
$myachtransrecord3  -­‐>  CustomerAcctNo  =  "5500038883005";  
$myachtransrecord3  -­‐>  CustomerAcctType  =  "C";  //C  forchecking,  S  for  Savings  
$myachtransrecord3  -­‐>  TransAmount  =  350.25;  
$myachtransrecord3  -­‐>  CheckOrCustID  =  "9166388811";  
$myachtransrecord3  -­‐>  CheckOrTransDate  =  '2010-­‐03-­‐16';    //include  leading  zero  for  mm  and  dd  e.g.  01  for  Jan  
$myachtransrecord3  -­‐>  EffectiveDate  =  '2010-­‐03-­‐16';          //include  leading  zero  for  mm  and  dd  e.g.  01  for  Jan  
$myachtransrecord3  -­‐>  Memo  =  "Payment";  
$myachtransrecord3  -­‐>  OpCode  =  "S";  //S  for  Single,  R  for  Recurring  
$myachtransrecord3  -­‐>  AccountSet  =  "1";  //ACHWorks  assigned  
 
//ACHFile  
$myachfile  =  new  ACHFile;  
$myachfile  -­‐>  SSS  =  "TST";  
$myachfile  -­‐>  LocID  =  "9505";  
$myachfile  -­‐>  ACHFileName  =  "";    //leave  blank  to  automatically  name  the  file  
$myachfile  -­‐>  TotalNumRecords  =  3;  
$myachfile  -­‐>  TotalDebitRecords  =  2;  
$myachfile  -­‐>  TotalDebitAmount  =  600.50;  
$myachfile  -­‐>  TotalCreditRecords  =  1;  
$myachfile  -­‐>  TotalCreditAmount  =  350.25;  
//$myachfile  -­‐>  ACHRecords  =  array($myachtransrecord1,$myachtransrecord2,$myachtransrecord3);    //OR  
$myachfile  -­‐>  ACHRecords[]  =  $myachtransrecord1;  
$myachfile  -­‐>  ACHRecords[]  =  $myachtransrecord2;  
$myachfile  -­‐>  ACHRecords[]  =  $myachtransrecord3;  
 
 
//SOAP  Call  -­‐  test  server  
$myclient  =  new  SoapClient("[Link]  
$myresult  =  $myclient-­‐>SendACHTransBatch(array("InpCompanyInfo"=>$mycompanyinfo,"InpACHFile"=>$myachfile))-­‐
>SendACHTransBatchResult;    
 
//print  status  and  details  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  52  of  83  
print($myresult-­‐>Status  .  ",  "    .  $myresult-­‐>Details  .  "<br>");  
 
//print  errors  if  there  is  any  
foreach  ($myresult-­‐>Errors-­‐>string  as  $myerror)  {  
print($myerror  .  "<br>");  
}  
?>  
 

[Link]    
<?php  
//ACHWORKS-­‐SOAP  Ver3.0  GetACHReturns  (gets  unretrieved  ach  return  and  settlement  records)  
//3.25.2010  -­‐  rico  pamplona,  rpamplonaATachworksDOTcom  
//company  info  
class  CompanyInfo  {  
           public  $SSS;  
           public  $LocID;  
           public  $Company;  
           public  $CompanyKey;  
}  
 
 
//CompanyInfo  
$mycompanyinfo  =  new  CompanyInfo;  
$mycompanyinfo  -­‐>  SSS  =  "TST";  
$mycompanyinfo  -­‐>  LocID  =  "9505";  
$mycompanyinfo  -­‐>  Company  =  "THAT  COMPANY";  
$mycompanyinfo  -­‐>  CompanyKey  =  "RICO";    
 
 
//SOAP  call  -­‐  test  server  
$myclient  =  new  SoapClient("[Link]  
$myresult  =  $myclient-­‐>GetACHReturns(array("InpCompanyInfo"=>$mycompanyinfo))-­‐>GetACHReturnsResult;  
 
//print  status  and  details  
print($myresult-­‐>Status  .  ",  "  .  $myresult-­‐>Details  .  "<br>");  
 
//print  ACHReturnRecords  if  there  is  any  
foreach  ($myresult-­‐>ACHReturnRecords-­‐>ACHReturnRecord  as  $myACHReturnRecord)  {  
print("FrontEndTrace:"  .  $myACHReturnRecord-­‐>FrontEndTrace  .  ",  EffectiveDate:"  .  $myACHReturnRecord-­‐>EffectiveDate  .  ",  
Name:"  .  $myACHReturnRecord-­‐>CustomerName  .  ",  Amount:"  .  $myACHReturnRecord-­‐>TransAmount  .  ",  
ResponseCode:"  .  $myACHReturnRecord-­‐>ResponseCode  .  ",  ActionDetail:"  .  $myACHReturnRecord-­‐>ActionDetail  .  
"<br>");  
}  
?>  
 

[Link]    
<?php  
//ACHWORKS-­‐SOAP  Ver3.0  GetACHReturnsHist  (gets  ach  return  and  settlement  records  at  specified  date  range)  
//3.25.2010  -­‐  rico  pamplona,  rpamplonaATachworksDOTcom  
//company  info  
class  CompanyInfo  {  
           public  $SSS;  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  53  of  83  
           public  $LocID;  
           public  $Company;  
           public  $CompanyKey;  
}  
 
 
//CompanyInfo  
$mycompanyinfo  =  new  CompanyInfo;  
$mycompanyinfo  -­‐>  SSS  =  "TST";  
$mycompanyinfo  -­‐>  LocID  =  "9505";  
$mycompanyinfo  -­‐>  Company  =  "THAT  COMPANY";  
$mycompanyinfo  -­‐>  CompanyKey  =  "RICO";    
 
$myDateFrom  =  '2010-­‐01-­‐01';  //include  leading  zero  for  mm  and  dd  e.g.  01  for  Jan  
$myDateTo  =  '2010-­‐03-­‐20';      //include  leading  zero  for  mm  and  dd  e.g.  01  for  Jan  
 
 
//SOAP  call  -­‐  test  server  
$myclient  =  new  SoapClient("[Link]  
$myresult  =  $myclient-­‐>GetACHReturnsHist(array("InpCompanyInfo"=>$mycompanyinfo,  "ReturnDateFrom"=>$myDateFrom,  
"ReturnDateTo"=>$myDateTo))-­‐>GetACHReturnsHistResult;  
 
//print  status  and  details  
print($myresult-­‐>Status  .  ",  "  .  $myresult-­‐>Details  .  "<br>");  
 
//print  ACHReturnRecords  if  there  is  any  
foreach  ($myresult-­‐>ACHReturnRecords-­‐>ACHReturnRecord  as  $myACHReturnRecord)  {  
print("FrontEndTrace:"  .  $myACHReturnRecord-­‐>FrontEndTrace  .  ",  EffectiveDate:"  .  $myACHReturnRecord-­‐>EffectiveDate  .  ",  
Name:"  .  $myACHReturnRecord-­‐>CustomerName  .  ",  Amount:"  .  $myACHReturnRecord-­‐>TransAmount  .  ",  
ResponseCode:"  .  $myACHReturnRecord-­‐>ResponseCode  .  ",  ActionDetail:"  .  $myACHReturnRecord-­‐>ActionDetail  .  
"<br>");  
}  
?>  
 
 
 

[Link]    
<?php  
//ACHWORKS-­‐SOAP  Ver3.0  GetResultFile  (gets  send  transaction  results/responses  including  errors  at  specified  date  range)  
//3.25.2010  -­‐  rico  pamplona,  rpamplonaATachworksDOTcom  
//company  info  
class  CompanyInfo  {  
           public  $SSS;  
           public  $LocID;  
           public  $Company;  
           public  $CompanyKey;  
}  
 
 
//CompanyInfo  
$mycompanyinfo  =  new  CompanyInfo;  
$mycompanyinfo  -­‐>  SSS  =  "TST";  
$mycompanyinfo  -­‐>  LocID  =  "9505";  
$mycompanyinfo  -­‐>  Company  =  "THAT  COMPANY";  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  54  of  83  
$mycompanyinfo  -­‐>  CompanyKey  =  "RICO";    
 
$myDateFrom  =  '2010-­‐03-­‐25';  //include  leading  zero  for  mm  and  dd  e.g.  01  for  Jan  
$myDateTo  =  '2010-­‐03-­‐26';      //include  leading  zero  for  mm  and  dd  e.g.  01  for  Jan  
 
 
//SOAP  call  -­‐  test  server  
$myclient  =  new  SoapClient("[Link]  
$myresult  =  $myclient-­‐>GetResultFile(array("InpCompanyInfo"=>$mycompanyinfo,  "ResultDateFrom"=>$myDateFrom,  
"ResultDateTo"=>$myDateTo))-­‐>GetResultFileResult;  
 
//print  status  and  details  
print($myresult-­‐>Status  .  ",  "  .  $myresult-­‐>Details  .  "<br><br>");  
 
//print  TransResults  if  there  is  any  
print("PAST  CONNECTION  AND  TRANSACTION  RESULTS:<br>");  
foreach  ($myresult-­‐>TransResults-­‐>TransResult  as  $myTransResult)  {  
print("DateTime:"  .  $myTransResult-­‐>CallDateTime  .  ",  Method:"  .  $myTransResult-­‐>CallMethod  .  ",  Status:"  .  $myTransResult-­‐>Status  
.  ",  FileName:"  .  $myTransResult-­‐>FileName    .  "<br>");    
       foreach  ($myTransResult-­‐>Errors-­‐>string  as  $myError)  {  
       print("&nbsp&nbsp&nbsp  Error=>"  .  $myError  .  "<br>");        
       }  
}  
?>  
 
 

[Link]    
<?php  
//ACHWORKS-­‐SOAP  Ver3.0  GetErrorFile  (gets  send  transaction  errors  (only)  at  specified  date  range)  
//3.25.2010  -­‐  rico  pamplona,  rpamplonaATachworksDOTcom  
//company  info  
class  CompanyInfo  {  
           public  $SSS;  
           public  $LocID;  
           public  $Company;  
           public  $CompanyKey;  
}  
 
 
//CompanyInfo  
$mycompanyinfo  =  new  CompanyInfo;  
$mycompanyinfo  -­‐>  SSS  =  "TST";  
$mycompanyinfo  -­‐>  LocID  =  "9505";  
$mycompanyinfo  -­‐>  Company  =  "THAT  COMPANY";  
$mycompanyinfo  -­‐>  CompanyKey  =  "RICO";    
 
$myDateFrom  =  '2010-­‐03-­‐25';  //include  leading  zero  for  mm  and  dd  e.g.  01  for  Jan  
$myDateTo  =  '2010-­‐03-­‐26';      //include  leading  zero  for  mm  and  dd  e.g.  01  for  Jan  
 
 
//SOAP  call  -­‐  test  server  
$myclient  =  new  SoapClient("[Link]  
$myresult  =  $myclient-­‐>GetErrorFile(array("InpCompanyInfo"=>$mycompanyinfo,  "ErrorDateFrom"=>$myDateFrom,  
"ErrorDateTo"=>$myDateTo))-­‐>GetErrorFileResult;  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  55  of  83  
 
//print  status  and  details  
print($myresult-­‐>Status  .  ",  "  .  $myresult-­‐>Details  .  "<br><br>");  
 
//print  ErrorRecords  if  there  is  any  
print("PAST  CONNECTION  AND  TRANSACTION  ERRORS:<br>");  
foreach  ($myresult-­‐>ErrorRecords-­‐>ErrorRecord  as  $myErrorRecord)  {  
print("DateTime:"  .  $myErrorRecord-­‐>CallDateTime  .  ",  Method:"  .  $myErrorRecord-­‐>CallMethod  .  ",  Status:"  .  $myErrorRecord-­‐
>Status  .  ",  FileName:"  .  $myErrorRecord-­‐>FileName  .  ",  No  of  Errors:  "  .  $myErrorRecord-­‐>TotalNumErrors    .  "<br>");    
       foreach  ($myErrorRecord-­‐>Errors-­‐>string  as  $myError)  {  
       print("&nbsp&nbsp&nbsp  Error=>"  .  $myError  .  "<br>");        
       }  
}  
?>  
 

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  56  of  83  
A2.2  Visual  Basic  ([Link]/[Link])    
 
connectioncheck  
Sub  Button1Click(sender  As  Object,  e  As  EventArgs)  
   'named  nsACHWorksWS  as  the  namespace  when  adding  web  reference  
   Dim  myACHWS  As  [Link]  
   Dim  myCompanyInfo  As  [Link]  
     
   'instances  
   myACHWS  =  New  [Link]  
   myCompanyInfo  =  New  [Link]  
 
   'CompanyInfo  
   [Link]="TST"  
   [Link]="9505"  
   [Link]="THAT  COMPANY"  
   [Link]="RICO"  
     
   'call  ConnectionCheck  and  assign  result  to  textBox1  
   [Link]=[Link](myCompanyInfo)  
End  Sub  

sendachtrans  
Sub  Button2Click(sender  As  Object,  e  As  EventArgs)  
 
           
   'named  nsACHWorksWS  as  the  namespace  when  adding  web  reference
Dim  myACHWS  As  [Link]

   
Dim  myCompanyInfo  As  [Link]

   
   Dim  myACHTransRecord  As  [Link]
Dim  myACHTransResult  as  [Link]

     
       'minstances  
yACHWS  =  New  [Link]  
       mmyCompanyInfo  =  New  [Link]  
yACHTransRecord  =  New  [Link]  
   myACHTransResult  =  New  [Link]  
     
       'mCompanyInfo  
[Link]="TST"  
       [Link]="9505"  
[Link]="THAT  COMPANY"  
   [Link]="RICO"  
     
       'mACHTransRecord  
[Link]="TST"  'ACHWorks  assigned  
       [Link]="9505"  'ACHWorks  assigned  
[Link]="VVB-­‐0003"  'impt!!!  needs  a  unique  value  each  record  per  LocID  
   [Link]="MYCOMPANY"  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  57  of  83  
       [Link]="PPD"  'PPD,CCD,WEB,TEL,RCK,  etc
[Link]="D"  'D  for  debit,  C  for  credit  
 
       [Link]="CustID0001"  
[Link]="DOE,  JOHN"  'Lastname,  FirstName  -­‐  all  caps  
       [Link]="987654320"  '9-­‐digit  Bank  Routing  No
[Link]="034332222"  'Bank  Account  No  
 
       [Link]="C"  'C  for  checking,  S  for  savings
[Link]=100.75  
 
       [Link]="9166388811"
[Link]="2010-­‐03-­‐24"  
 
       [Link]="2010-­‐03-­‐24"
[Link]="FirstPay"  
 
       [Link]="S"  'S  for  single,  R  for  recurring
[Link]="1"  'ACHWorks  assigned  
 
     
       'mcall  SendACHTrans  method  
yACHTransResult=[Link](myCompanyInfo,myACHTransRecord)  

 
       'tassign  portion  of  result  to  textBox1  (e.g.  Status  and  Details)  
[Link]=[Link]  +  ",  "  +  [Link]  

     
       'lprint  errors  to  listBox  if  there  is  any
[Link]  
 
         I  f  [Link]>0  Then  
For  i=0  To  [Link]-­‐1  
                 N  ext  i
[Link]([Link](i).ToString)  

 End  If      
 End  Sub
 

sendachtransbatch  
       
Sub  Button3Click(sender  As  Object,  e  As  EventArgs)    
       
Dim  myACHWS  As  [Link]    
'named  nsACHWorksWS  as  the  namespace  when  adding  web  reference

Dim  myCompanyInfo  As  [Link]

         
Dim  myACHTransRecord1,myACHTransRecord2,myACHTransRecord3  As  [Link]  
Dim  myACHFile  As  [Link]
Dim  myACHTransResult  As  [Link]  
 
       'minstances  
yACHWS  =  New  [Link]  
       mmyCompanyInfo  =  New  [Link]  
yACHTransRecord1  =  New  [Link]  
       mmyACHTransRecord2  =  New  [Link]
yACHTransRecord3  =  New  [Link]  
 
       mmyACHFile  =  new  [Link]  
yACHTransResult  =  New  [Link]  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  58  of  83  
 
       'mCompanyInfo  
   [Link]="9505"  
[Link]="TST”  

       [Link]="THAT  COMPANY"
[Link]="RICO"  
 
 
       'mACHFile  
[Link]="TST"  
       [Link]="9505"  
[Link]=""  'leave  blank  to  automatically  name  the  file  
       [Link]=3
[Link]=2  
 
       [Link]=600.50
[Link]=1  
 
       [Link]=350.25  
[Link]  =  new  [Link](2){}  '(2)  is  3-­‐1  

     
       ''assign  records  to  file  
ACHTransRecord  (1,  2  &  3)  
       'm1st  record  
[Link]="TST"  'ACHWorks  assigned  
       [Link]="9505"  'ACHWorks  assigned  
[Link]="VVB-­‐0003"  'impt!!!  needs  a  unique  value  each  record  per  LocID  
       [Link]="MYCOMPANY"  
[Link]="PPD"  'PPD,CCD,WEB,TEL,RCK,  etc  
       [Link]="D"  'D  for  debit,  C  for  credit
[Link]="CustID0001"  
 
       [Link]="DOE,  JOHN"  'Lastname,  FirstName  -­‐  all  caps
[Link]="987654320"  '9-­‐digit  Bank  Routing  No  
 
       [Link]="034332222"  'Bank  Account  No  
[Link]="C"  'C  for  checking,  S  for  savings  
       [Link]=100.25
[Link]="9166388811"  
 
       [Link]="2010-­‐03-­‐24"
[Link]="2010-­‐03-­‐24"  
 
       [Link]="FirstPay"  
[Link]="S"  'S  for  single,  R  for  recurring  
       [Link]="1"  'ACHWorks  assigned  
[Link](0)=new  [Link]    'instance  
   [Link](0)=myACHTransRecord1    'instance  
     
       'm2nd  record  
[Link]="TST"  'ACHWorks  assigned  
       [Link]="9505"  'ACHWorks  assigned  
[Link]="VVB-­‐0004"  'impt!!!  needs  a  unique  value  each  record  per  LocID  
       [Link]="MYCOMPANY"  
[Link]="PPD"  'PPD,CCD,WEB,TEL,RCK,  etc  
   [Link]="D"  'D  for  debit,  C  for  credit  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  59  of  83  
       [Link]="CustID0002"  
[Link]="DOE,  JANE"  'Lastname,  FirstName  -­‐  all  caps  
       [Link]="987654320"  '9-­‐digit  Bank  Routing  No
[Link]="111034332222"  'Bank  Account  No  
 
       [Link]="C"  'C  for  checking,  S  for  savings
[Link]=500.25  
 
       [Link]="9166388811"
[Link]="2010-­‐03-­‐24"  
 
       [Link]="2010-­‐03-­‐24"
[Link]="FirstPay"  
 
       [Link]="S"  'S  for  single,  R  for  recurring
[Link]="1"  'ACHWorks  assigned  
 
       [Link](1)=new  [Link]  'instance
[Link](1)=myACHTransRecord2  
 
 
       'm3rd  record  
[Link]="TST"  'ACHWorks  assigned  
       [Link]="9505"  'ACHWorks  assigned  
[Link]="WVB-­‐0005"  'impt!!!  needs  a  unique  value  each  record  per  LocID  
       [Link]="MYCOMPANY"  
[Link]="PPD"  'PPD,CCD,WEB,TEL,RCK,  etc  
       [Link]="C"  'credit
[Link]="CustID0003"  
 
       [Link]="SMITH,  JOE"  'Lastname,  FirstName  -­‐  all  caps  
   [Link]="111034332222"  'Bank  Account  No  
[Link]="987654320"  '9-­‐digit  Bank  Routing  No  

       [Link]="C"  'C  for  checking,  S  for  savings


[Link]=350.25  
 
       [Link]="9166388811"
[Link]="2010-­‐03-­‐24"  
 
       [Link]="2010-­‐03-­‐24"
[Link]="FirstPay"  
 
       [Link]="S"  'S  for  single,  R  for  recurring
[Link]="1"  'ACHWorks  assigned  
 
       [Link](2)=new  [Link]  'instance
[Link](2)=myACHTransRecord3  
 
 
       'mcall  SendACHTransBatch  method  
yACHTransResult=[Link](myCompanyInfo,myACHFile)  

     
       'tassign  portion  of  result  to  textBox1  (e.g.  Status  and  Details)  
[Link]=[Link]  +  ",  "  +  [Link]  

 
       'lprint  errors  to  listBox  if  there  is  any
[Link]  
 
         I  f  [Link]>0  Then  
For  i=0  To  [Link]-­‐1  
                 N  ext  i
[Link]([Link](i).ToString)  
 

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  60  of  83  
 End  Sub
 End  If    
 

getachreturns  
       
Sub  Button4Click(sender  As  Object,  e  As  EventArgs)
Dim  myACHWS  As  [Link]      
   
Dim  myCompanyInfo  As  [Link]
Dim  myACHReturns  As  [Link]  
 
       'minstances  
yACHWS  =  New  [Link]  
       mmyCompanyInfo  =  New  [Link]
yACHReturns  =  New  [Link]  
 
     
       'mCompanyInfo  
[Link]="TST"  
       [Link]="9505"  
[Link]="THAT  COMPANY"  
   [Link]="RICO"  
 
       'mcall  GetACHReturns  method  
yACHReturns  =  [Link](myCompanyInfo)  
   [Link]=[Link]  +  ",  "  +  [Link]  
 
       'llist  returns  if  there  are  any
[Link]  
 
         I  f  [Link]>0  Then
For  i=0  To  [Link]-­‐1  
 
                         l  [Link]("FrontEndTrace:"  +  [Link](i).FrontEndTrace  +  _  
                                     
",  Date:"  +  [Link](i).[Link]  +  _  
                                                                                                       "",  Name:"  +  [Link](i).CustomerName  +  _  
,  Amount:"  +  [Link](i).[Link]  +  _  
                                                                                                       "",  ResponseCode:"  +  [Link](i).ResponseCode  +  _
,  ActionDetail:"  +  [Link](i).ActionDetail)  
 
         E  nd  If
Next  i  
 
End  Sub  
 

getachreturnshist  
       
Sub  Button5Click(sender  As  Object,  e  As  EventArgs)
   
   
Dim  myACHWS  As  [Link]

       
Dim  myCompanyInfo  As  [Link]
Dim  myACHReturns  As  [Link]
Dim  myDateFrom,myDateTo  as  Date  
     

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  61  of  83  
       'minstances  
yACHWS  =  New  [Link]  
       mmyCompanyInfo  =  New  [Link]
yACHReturns  =  New  [Link]  
 
     
       'mCompanyInfo  
[Link]="TST"  
       [Link]="9505"  
[Link]="THAT  COMPANY"  
   [Link]="RICO"  
     
       'mdate  
   myDateTo  =  "2010-­‐03-­‐20"  
yDateFrom  =  "2010-­‐01-­‐01”  

 
       'mcall  GetACHReturnsHist  method  
yACHReturns  =  [Link](myCompanyInfo,myDateFrom,myDateTo)  
   [Link]=[Link]  +  ",  "  +  [Link]  
     
       'llist  returns  if  there  are  any
[Link]  
 
         I  f  [Link]>0  Then
For  i=0  To  [Link]-­‐1  
 
                         l  [Link]("FrontEndTrace:"  +  [Link](i).FrontEndTrace  +  _  
                                     
",  Date:"  +  [Link](i).[Link]  +  _  
                                                                                                       "",  Name:"  +  [Link](i).CustomerName  +  _  
,  Amount:"  +  [Link](i).[Link]  +  _  
                                                                                                       "",  ResponseCode:"  +  [Link](i).ResponseCode  +  _
,  ActionDetail:"  +  [Link](i).ActionDetail)  
 
         E  nd  If
Next  i  
 
End  Sub  
 
 

getresultfile  
       
Sub  Button6Click(sender  As  Object,  e  As  EventArgs)
Dim  myACHWS  As  [Link]      
       
Dim  myCompanyInfo  As  [Link]
Dim  myResultFile  As  [Link]
Dim  myDateFrom,myDateTo  as  Date    
     
       'minstances  
yACHWS  =  New  [Link]  
       mmyCompanyInfo  =  New  [Link]
yResultFile  =  New  [Link]  
 

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  62  of  83  
     
       'mCompanyInfo  
[Link]="TST"  
       [Link]="9505"  
[Link]="THAT  COMPANY"  
   [Link]="RICO"  
 
       'mdate  
yDateFrom  =  "2010-­‐03-­‐25"  
   myDateTo  =  "2010-­‐03-­‐26"  
 
       'mcall  GetResultFile  method
yResultFile  =  [Link](myCompanyInfo,myDateFrom,myDateTo)  
 
 
       'tassign  status/details  to  textbox
[Link]=[Link]  +  ",  "  +  [Link]  
 
 
       'llist  past  connection  results  to  listBox1
[Link]  
 
         I  f  [Link]>0  Then
For  i=0  To  [Link]-­‐1  
 
                                                   ",  Method:"  +  [Link](i).CallMethod  +  _
         [Link]("DateTime:"  +  [Link](i).[Link]  +  _    
                                                                                                       "",  Status:"  +  [Link](i).Status  +  _
,  FileName:"  +  [Link](i).FileName)  
 
                         F  or  j=0  To  [Link](i).TotalNumErrors-­‐1
[Link](">"  +  [Link](i).Errors(j).ToString)  
 
                 N  ext  i
Next  j  

 End  If    
 End  Sub  
 

geterrorfile  
       
Sub  Button7Click(sender  As  Object,  e  As  EventArgs)
Dim  myACHWS  As  [Link]      
       
Dim  myCompanyInfo  As  [Link]
Dim  myErrorFile  As  [Link]
Dim  myDateFrom,myDateTo  as  Date    
 
       'minstances  
yACHWS  =  New  [Link]  
       mmyCompanyInfo  =  New  [Link]
yErrorFile  =  New  [Link]  
 
     

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  63  of  83  
       'mCompanyInfo  
[Link]="TST"  
       [Link]="9505"  
[Link]="THAT  COMPANY"  
   [Link]="RICO"  
 
       'mdate  
yDateFrom  =  "2010-­‐03-­‐25"  
   myDateTo  =  "2010-­‐03-­‐26"  
 
       'mcall  GetErrorFile  method
yErrorFile  =  [Link](myCompanyInfo,myDateFrom,myDateTo)  
 
 
       'tassign  status/details  to  textbox
[Link]=[Link]  +  ",  "  +  [Link]  
 
 
       'llist  past  connection  errors  to  listBox1
[Link]  
 
         I  f  [Link]>0  Then
For  i=0  To  [Link]-­‐1  
 
                                                   ",  Method:"  +  [Link](i).CallMethod  +  _
         [Link]("DateTime:"  +  [Link](i).[Link]  +  _  
                                                 ",  FileName:"  +  [Link](i).FileName  +  _    
                                                   ",  No  of  Errors:"  +  [Link](i).[Link])  
                         F  or  j=0  To  [Link](i).TotalNumErrors-­‐1
[Link](">"  +  [Link](i).Errors(j).ToString)  
 
                 N  ext  i
Next  j  

 End  If      
 End  Sub
 
 
 
 

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  64  of  83  
A2.3  C#    (.NET)  
 
connectioncheck  
 
         
void  Button1Click(object  sender,  EventArgs  e)
{

 
//named  nsACHWorksWS  as  the  namespace  when  adding  web  reference  
       
//instances
[Link]  myACHWS  =  new  [Link]();
[Link]    myCompanyInfo  =  new  [Link]();
   
 
        //company  info      
        [Link]="TST";

   
[Link]="9505";

    [Link]="THAT  COMPANY";
[Link]="RICO";

 
        //call  ConnectionCheck  method  
[Link]=[Link](myCompanyInfo);  
}  
 
sendachtrans  
     
void  Button2Click(object  sender,  EventArgs  e)  
{

       
//instances    
[Link]  myACHWS  =  new  [Link]();

         
   
[Link]    myCompanyInfo  =  new  [Link]();
[Link]  myACHTransRecord  =  new  [Link]();
[Link]  myACHTransResult  =  new  [Link]();

 
       /m/company  info  
[Link]="TST";  
       [Link]="9505";  
[Link]="THAT  COMPANY";  
   [Link]="RICO";  
     
       /m/ACHTransRecord  
[Link]="TST";  //ACHWorks  assigned  
       [Link]="9505";  //ACHWorks  assigned  
[Link]="CC#-­‐0003";  //impt!  needs  a  unique  value  each  record  per  LocID  
       [Link]="MYCOMPANY";  
[Link]="PPD";  //PPD,CCD,WEB,TEL,RCK,  etc.  
       [Link]="D";  //D  for  debit,  C  for  credit
[Link]="CustID0001";    
 

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  65  of  83  
       [Link]="DOE,  JOHN";    //Lastname,  Firstname  -­‐  all  caps
[Link]="987654320";  //9-­‐digit  Bank  Routing  No  
 
       [Link]="0002311331555";  //Bank  Account  No  
[Link]="C";  //C  for  checking,  S  for  savings  
       [Link]=100.75;  
[Link]="9166388811";  
       [Link]=[Link]("2010-­‐03-­‐24");
[Link]=[Link]("2010-­‐03-­‐24");  
 
       [Link]="FirstPay";  
[Link]="S";  //S  for  single,  R  for  recurring  
   [Link]="1";    //ACHWorks  assigned  
 
       /m/call  SendACHTrans  method  
yACHTransResult=[Link](myCompanyInfo,myACHTransRecord);  

     
       /t/assign  portion  of  result  to  textbox1  (e.g.  status  and  details)  
[Link]=[Link]  +  ",  "  +  [Link];  

 
       /l/print  errors  to  listBox  if  there  is  any
[Link]();  
 
       i{f  ([Link]>0)
   
                 f  or  (int  i=0;  i<[Link];  i++)
[Link]([Link][i]);  
 
 }      }  
 

sendachtransbatch  
 
         
void  Button3Click(object  sender,  EventArgs  e)
{
//instances    
       
[Link]  myACHWS  =  new  [Link]();
[Link]    myCompanyInfo  =  new  [Link]();      
       
[Link]  myACHTransRecord1  =  new  [Link]();
[Link]  myACHTransRecord2  =  new  [Link]();
 
       
[Link]  myACHTransRecord3  =  new  [Link]();
[Link]  myACHFile  =  new  [Link]();
[Link]  myACHTransResult  =  new  [Link]();
   
 
       /m/company  info  
[Link]="TST";  
       [Link]="9505";  
[Link]="THAT  COMPANY";  
   [Link]="RICO";  
     
       /m/ACHFile  
[Link]="TST";  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  66  of  83  
       [Link]="9505";  
[Link]="";  //leave  blank  to  automatically  name  the  file  
       [Link]=3;  
[Link]=2;  
       [Link]=600.50;
[Link]=1;  
 
       [Link]=350.25;  
[Link]=new  [Link][3];  

 
       ///ACHTransRecord(s)
/Record  1  
 
       [Link]="TST";  //ACHWorks  assigned
[Link]="9505";  //ACHWorks  assigned  
 
       [Link]="CC#-­‐00031";  //impt!  needs  a  unique  value  each  record  per  LocID
[Link]="MYCOMPANY";  
 
     [Link]="D";  //D  for  debit,  C  for  credit
 [Link]="PPD";  //PPD,CCD,WEB,TEL,RCK,  etc.    
       [Link]="CustID0001";      
       [Link]="DOE,  JOHN";    //Lastname,  Firstname  -­‐  all  caps
[Link]="987654320";  //9-­‐digit  Bank  Routing  No  
 
       [Link]="0002311331555";  //Bank  Account  No
[Link]="C";  //C  for  checking,  S  for  savings  
 
       [Link]=100.25;
[Link]="9166388811";  
 
       [Link]=[Link]("2010-­‐03-­‐24");
[Link]=[Link]("2010-­‐03-­‐24");  
 
       [Link]="FirstPay";
[Link]="S";  //S  for  single,  R  for  recurring  
 
       [Link]="1";    //ACHWorks  assigned
[Link][0]=new  [Link]();  
[Link][0]=myACHTransRecord1;  

 
       /m/Record  2  
[Link]="TST";  //ACHWorks  assigned  
       [Link]="9505";  //ACHWorks  assigned  
[Link]="CC#-­‐00032";  //impt!  needs  a  unique  value  each  record  per  LocID  
       [Link]="MYCOMPANY";  
[Link]="PPD";  //PPD,CCD,WEB,TEL,RCK,  etc.  
       [Link]="D";  //D  for  debit,  C  for  credit
[Link]="CustID0002";    
 
       [Link]="DOE,  JANE";    //Lastname,  Firstname  -­‐  all  caps
[Link]="987654320";  //9-­‐digit  Bank  Routing  No  
 
       [Link]="400231133002";  //Bank  Account  No  
[Link]="C";  //C  for  checking,  S  for  savings  
       [Link]=500.25;  
[Link]="9166388811";  
       [Link]=[Link]("2010-­‐03-­‐24");  
   [Link]="FirstPay";  
[Link]=[Link]("2010-­‐03-­‐24");  

       [Link]="S";  //S  for  single,  R  for  recurring


[Link]="1";    //ACHWorks  assigned  
 
   [Link][1]=new  [Link]();  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  67  of  83  
   [Link][1]=myACHTransRecord2;  
 
       /m/Record  3  
[Link]="TST";  //ACHWorks  assigned  
       [Link]="9505";  //ACHWorks  assigned  
[Link]="CC#-­‐00033";  //impt!  needs  a  unique  value  each  record  per  LocID  
       [Link]="MYCOMPANY";  
[Link]="PPD";  //PPD,CCD,WEB,TEL,RCK,  etc.  
       [Link]="C";  //D  for  debit,  C  for  credit  
   [Link]="SMITH,  JOE";    //Lastname,  Firstname  -­‐  all  caps  
[Link]="CustID0003";  

       [Link]="987654320";  //9-­‐digit  Bank  Routing  No


[Link]="90200231552";  //Bank  Account  No  
 
       [Link]="C";  //C  for  checking,  S  for  savings
[Link]=350.25;  
 
       [Link]="9166388811";  
[Link]=[Link]("2010-­‐03-­‐24");  
       [Link]=[Link]("2010-­‐03-­‐24");
[Link]="FirstPay";  
 
       [Link]="S";  //S  for  single,  R  for  recurring
[Link]="1";    //ACHWorks  assigned  
 
       [Link][2]=new  [Link]();
[Link][2]=myACHTransRecord3;  
 
 
       /m/call  SendACHTransBatch  method  
yACHTransResult=[Link](myCompanyInfo,myACHFile);  

 
       /t/assign  portion  of  result  to  textbox1  (e.g.  status  and  details)  
[Link]=[Link]  +  ",  "  +  [Link];  

 
       /l/print  errors  to  listBox  if  there  is  any
[Link]();  
 
       i{f  ([Link]>0)
   
                 f  or  (int  i=0;  i<[Link];  i++)
[Link]([Link][i]);  
 
 }    }  
 

getachreturns  
 
         
void  Button4Click(object  sender,  EventArgs  e)
{
//instances    
       
[Link]  myACHWS  =  new  [Link]();
[Link]    myCompanyInfo  =  new  [Link]();
[Link]  myACHReturns  =  new  [Link]();    
 

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  68  of  83  
       /m/company  info  
[Link]="TST";  
       [Link]="9505";  
[Link]="THAT  COMPANY";  
   [Link]="RICO";  
 
     myACHReturns=[Link](myCompanyInfo);
 //call  GetACHReturns  method    
   [Link]=[Link]  +  ",  "  +  [Link];  
 
       /l/list  returns  if  there  is  any
[Link]();  
 
       i{f  ([Link]>0)
   
             [Link]("FrontEndTrace:"  +  [Link][i].FrontEndTrace  +  
     for  (int  i=0;  i<[Link];  i++)  
                                             ",  EffectiveDate:"  +  [Link][i].[Link]()  +  
                                                                                               "",  Name:"  +  [Link][i].CustomerName  +    
,  Amount:"  +  [Link][i].[Link]()  +  
                                               ",  ActionDetail:"  +  [Link][i].[Link]()  +
                                             ",  ResponseCode:"  +  [Link][i].ResponseCode  +    
           ",  ActionDate:"  +  [Link][i].[Link]());  
 
   }  
}  
 

getachreturnshist  
     
void  Button5Click(object  sender,  EventArgs  e)  
{

       
//instances    
   
[Link]  myACHWS  =  new  [Link]();

       
[Link]    myCompanyInfo  =  new  [Link]();

 
[Link]  myACHReturns  =  new  [Link]();
DateTime  myDateFrom,  myDateTo;

 
       /m/company  info  
[Link]="TST";  
       [Link]="9505";  
[Link]="THAT  COMPANY";  
   [Link]="RICO";  
 
     
       /m/date  
yDateFrom=[Link]("2010-­‐01-­‐01");  
   myDateTo=[Link]("2010-­‐03-­‐20");  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  69  of  83  
 
       /m/call  GetACHReturnsHist  method  
yACHReturns=[Link](myCompanyInfo,myDateFrom,myDateTo);  
   [Link]=[Link]  +  ",  "  +  [Link];  
 
       /l/list  returns  if  there  is  any
[Link]();  
 
       i{f  ([Link]>0)
   
             [Link]("FrontEndTrace:"  +  [Link][i].FrontEndTrace  +  
     for  (int  i=0;  i<[Link];  i++)  
                                             ",  EffectiveDate:"  +  [Link][i].[Link]()  +  
                                                                                               "",  Name:"  +  [Link][i].CustomerName  +    
,  Amount:"  +  [Link][i].[Link]()  +  
                                                 ",  ActionDetail:"  +  [Link][i].ActionDetail  +    
         ",  ResponseCode:"  +  [Link][i].ResponseCode  +    
           ",  ActionDate:"  +  [Link][i].[Link]());  
 
   }  
}  
 
 

getresultfile  
void  Button6Click(object  sender,  EventArgs  e)  
{  

       
   //instances    
   
[Link]  myACHWS  =  new  [Link]();

       
[Link]    myCompanyInfo  =  new  [Link]();

 
[Link]  myResultFile  =  new  [Link]();
DateTime  myDateFrom,  myDateTo;

 
       /m/company  info  
[Link]="TST";  
       [Link]="9505";  
[Link]="THAT  COMPANY";  
   [Link]="RICO";  
 
       /m/date  
   myDateTo=[Link]("2010-­‐03-­‐26");  
yDateFrom=[Link]("2010-­‐03-­‐25");  

 
     myResultFile=[Link](myCompanyInfo,myDateFrom,myDateTo);
 //call  GetResultFile  method  
   [Link]=[Link]  +  ",  "  +  [Link];    
     

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  70  of  83  
       /l/list  past  connection  results
[Link]();  
 
       i{f  ([Link]>0)
   
               f{or  (int  i=0;  i<[Link];  i++)
   
                         l  [Link]("DateTime:"  +  [Link][i].[Link]()  +
                                    ",  Method:"  +  [Link][i].CallMethod  +  
 
                                                                                                       "",  Status:"  +  [Link][i].Status  +  
,  FileName:"  +  [Link][i].FileName);  
                         f  or  (int  j=0;  j<[Link][i].TotalNumErrors;  j++)
[Link](">"  +  [Link][i].Errors[j]);  
 
               
                   
       }  
   }      
}  
 

geterrorfile  
     
void  Button7Click(object  sender,  EventArgs  e)  
{

       
//instances    
[Link]  myACHWS  =  new  [Link]();

       
[Link]    myCompanyInfo  =  new  [Link]();
   
 
[Link]  myErrorFile  =  new  [Link]();
DateTime  myDateFrom,  myDateTo;

 
       /m/company  info  
[Link]="TST";  
       [Link]="9505";  
[Link]="THAT  COMPANY";  
   [Link]="RICO";  
 
       /m/date  
yDateFrom=[Link]("2010-­‐03-­‐25");  
   myDateTo=[Link]("2010-­‐03-­‐26");  
 
       /m/call  GetErrorFile  method  
yErrorFile=[Link](myCompanyInfo,myDateFrom,myDateTo);  
   [Link]=[Link]  +  ",  "  +  [Link];  
 
     
       /l/list  error  records
[Link]();  
 
       i{f  ([Link]>0)
   
       for  (int  i=0;  i<[Link];  i++)  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  71  of  83  
                 {    [Link]("DateTime:"  +  [Link][i].[Link]()  +  
                                                                                                       "",  Method:"  +    [Link][i].CallMethod  +  
,  FileName:"  +    [Link][i].FileName  +  
                         f  or  (int  j=0;  j<  [Link][i].TotalNumErrors;  j++)
                                   ",  No  of  Errors:"  +    [Link][i].[Link]());    
                 }        [Link](">"  +    [Link][i].Errors[j]);  
 }     }    
 
 

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  72  of  83  
A2.4  Java  (1.5/1.6)    
 
connectioncheck  
 private  void  jButton1MouseClicked([Link]  evt)  {                                                                              
           try  
           {  
               //instances  
               ACHWorksWS  myACHWS  =  new  ACHWorksWS();  
               CompanyInfo  myCompanyInfo  =  new  CompanyInfo();  
               
               //assign  values  for  myCompanyInfo  
               [Link]="TST";  
               [Link]="9505";  
               [Link]="THAT  COMPANY";  
               [Link]="RICO";  
               
               
               //put  value  of  ConnectionCheck  call  to  jTextField  
               [Link]([Link]().connectionCheck(myCompanyInfo));  
           }  
           catch  (Exception  e)  
           {  
               [Link]("Exception  caught:  "  +  e);  
           }  
}                                                                  
 
sendachtrans  
 private  void  jButton2MouseClicked([Link]  evt)  {          
           //need  to  'import'  the  following:  
           //import  [Link].*;  
           //import  [Link].*;  
           //import  [Link];  
           //import  [Link];  
           //import  [Link];  
           //import  [Link];  
 
           try  
           {  
               //instances  
               ACHWorksWS  myACHWS  =  new  ACHWorksWS();  
               CompanyInfo  myCompanyInfo  =  new  CompanyInfo();  
               ACHTransRecord  myACHTransRecord  =  new  ACHTransRecord();  
               TransResult  myACHTransResult  =  new  TransResult();  
               DatatypeFactory  myDTF;  
 
 
               //assign  values  for  myCompanyInfo  
               [Link]="TST";  
               [Link]="9505";  
               [Link]="THAT  COMPANY";  
               [Link]="RICO";  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  73  of  83  
               
               //ACHTransRecord  
               [Link]="TST";  //ACHWorks  assigned  
               [Link]="9505";  //ACHWorks  assigned  
               [Link]="JJ-­‐0007";  //impt!  needs  a  unique  value  for  each  record  per  locid  
               [Link]="MYCOMPANY";  
               [Link]="PPD";  //PPD,CCD,WEB,TEL,RCK,  etc.  
               [Link]="D";  //D  for  debit,  C  for  credit  
               [Link]="CUSTID123";  
               [Link]="DOE,  JOHN";    //Lastname,  Firstname  -­‐  all  caps  
               [Link]="987654320";  //9-­‐digit  Bank  Routing  No  
               [Link]="00332358882";  //Bank  Account  No  
               [Link]="C";  //C  for  checking,  S  for  savings  
               [Link]=100.75;  
               [Link]="9166388811";  
 
               try  
               {  
                     myDTF  =  [Link]();  
                     [Link]=[Link]("2010-­‐03-­‐24T[Link]");  
                     [Link]=[Link]("2010-­‐03-­‐24T[Link]");  
               }  
               catch  (DatatypeConfigurationException  e)  
               {  
                     [Link]("Date  exception  caught:  "  +  e);  
               }  
 
               [Link]="FirstPay";  
               [Link]="S";    //S  for  single,  R  for  recurring  
               [Link]="1";    //ACHWorks  assigned  
 
               //call  SendACHTrans  method  
               myACHTransResult  =  [Link]().sendACHTrans(myCompanyInfo,  myACHTransRecord);  
               [Link]([Link]  +  ",  "  +  [Link]);  
 
             
               //list  errors  if  there  are  any  
               if  ([Link]>0)  
               {  
                   DefaultListModel  myList  =  new  DefaultListModel();  
 
                   [Link]([Link]);  
                   for  (int  i=0;  i<[Link];  i++)  
                         [Link]([Link](i));  
 
                   [Link](myList);  
                 }  
           }  
           catch  (Exception  e)  
           {  
                 [Link]("Exception  caught:  "  +  e);  
           }  
}  
   
 

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  74  of  83  
sendachtransbatch  
 private  void  jButton3MouseClicked([Link]  evt)  {                                                                              
           //need  to  'import'  the  following:  
           //import  [Link].*;  
           //import  [Link].*;  
           //import  [Link];  
           //import  [Link];  
           //import  [Link];  
           //import  [Link];  
 
           try  
           {  
               //instances  
               ACHWorksWS  myACHWS  =  new  ACHWorksWS();  
               CompanyInfo  myCompanyInfo  =  new  CompanyInfo();  
               ACHTransRecord  myACHTransRecord1  =  new  ACHTransRecord();  
               ACHTransRecord  myACHTransRecord2  =  new  ACHTransRecord();  
               ACHTransRecord  myACHTransRecord3  =  new  ACHTransRecord();  
               ACHFile  myACHFile  =  new  ACHFile();  
               TransResult  myACHTransResult  =  new  TransResult();  
               DatatypeFactory  myDTF;  
 
 
               //assign  values  for  myCompanyInfo  
               [Link]="TST";  
               [Link]="9505";  
               [Link]="THAT  COMPANY";  
               [Link]="RICO";  
 
 
               //myACHFile  
               [Link]="TST";  
               [Link]="9505";  
               [Link]="";    //leave  blank  to  automatically  name  the  file  
               [Link]=3;  
               [Link]=2;  
               [Link]=600.50;  
               [Link]=1;  
               [Link]=350.25;  
 
               //initialize  records  
               [Link]  =  new  ArrayOfACHTransRecord();  
 
 
               //ACHTransRecord(s)  
               //Record  1  
               [Link]="TST";  //ACHWorks  assigned  
               [Link]="9505";  //ACHWorks  assigned  
               [Link]="JJ-­‐00081";  //impt!  needs  a  unique  value  for  each  record  per  locid  
               [Link]="MYCOMPANY";  
               [Link]="PPD";  //PPD,CCD,WEB,TEL,RCK,  etc.  
               [Link]="D";  //D  for  debit,  C  for  credit  
               [Link]="CUSTID123-­‐1";  
               [Link]="DOE,  JOHN";    //Lastname,  Firstname  -­‐  all  caps  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  75  of  83  
               [Link]="987654320";  //9-­‐digit  Bank  Routing  No  
               [Link]="00332358882";  //Bank  Account  No  
               [Link]="C";  //C  for  checking,  S  for  savings  
               [Link]=100.25;  
               [Link]="9166388811";  
 
               try  
               {  
                     myDTF  =  [Link]();  
                     [Link]=[Link]("2010-­‐03-­‐24T[Link]");  
                     [Link]=[Link]("2010-­‐03-­‐24T[Link]");  
               }  
               catch  (DatatypeConfigurationException  e)  
               {  
                     [Link]("Date  exception  caught:  "  +  e);  
               }  
 
               [Link]="FirstPay";  
               [Link]="S";    //S  for  single,  R  for  recurring  
               [Link]="1";    //ACHWorks  assigned  
 
 
               //Record  2  
               [Link]="TST";  //ACHWorks  assigned  
               [Link]="9505";  //ACHWorks  assigned  
               [Link]="JJ-­‐00082";  //impt!  needs  a  unique  value  for  each  record  per  locid  
               [Link]="MYCOMPANY";  
               [Link]="PPD";  //PPD,CCD,WEB,TEL,RCK,  etc.  
               [Link]="D";  //D  for  debit,  C  for  credit  
               [Link]="CUSTID123-­‐2";  
               [Link]="SMITH,  JANET";    //Lastname,  Firstname  -­‐  all  caps  
               [Link]="987654320";  //9-­‐digit  Bank  Routing  No  
               [Link]="00332358882";  //Bank  Account  No  
               [Link]="C";  //C  for  checking,  S  for  savings  
               [Link]=500.25;  
               [Link]="9166388811";  
 
               try  
               {  
                     myDTF  =  [Link]();  
                     [Link]=[Link]("2010-­‐03-­‐24T[Link]");  
                     [Link]=[Link]("2010-­‐03-­‐24T[Link]");  
               }  
               catch  (DatatypeConfigurationException  e)  
               {  
                     [Link]("Date  exception  caught:  "  +  e);  
               }  
 
               [Link]="FirstPay";  
               [Link]="S";    //S  for  single,  R  for  recurring  
               [Link]="1";    //ACHWorks  assigned  
 
 
               //Record  3  
               [Link]="TST";  //ACHWorks  assigned  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  76  of  83  
               [Link]="9505";  //ACHWorks  assigned  
               [Link]="JJ-­‐00083";  //impt!  needs  a  unique  value  for  each  record  per  locid  
               [Link]="MYCOMPANY";  
               [Link]="PPD";  //PPD,CCD,WEB,TEL,RCK,  etc.  
               [Link]="C";  //D  for  debit,  C  for  credit  
               [Link]="CUSTID123-­‐3";  
               [Link]="YOUNG,  JOE";    //Lastname,  Firstname  -­‐  all  caps  
               [Link]="987654320";  //9-­‐digit  Bank  Routing  No  
               [Link]="00332358882";  //Bank  Account  No  
               [Link]="C";  //C  for  checking,  S  for  savings  
               [Link]=350.25;  
               [Link]="9166388811";  
 
               try  
               {  
                     myDTF  =  [Link]();  
                     [Link]=[Link]("2010-­‐03-­‐24T[Link]");  
                     [Link]=[Link]("2010-­‐03-­‐24T[Link]");  
               }  
               catch  (DatatypeConfigurationException  e)  
               {  
                     [Link]("Date  exception  caught:  "  +  e);  
               }  
 
               [Link]="FirstPay";  
               [Link]="S";    //S  for  single,  R  for  recurring  
               [Link]="1";    //ACHWorks  assigned  
 
               
               //add  ACHTransRecords  to  ACHFile  
               [Link]().add(myACHTransRecord1);  
               [Link]().add(myACHTransRecord2);  
               [Link]().add(myACHTransRecord3);  
 
 
               //call  SendACHTransBatch  method  
               myACHTransResult  =  [Link]().sendACHTransBatch(myCompanyInfo,  myACHFile);  
               [Link]([Link]  +  ",  "  +  [Link]);  
 
 
               //list  errors  if  there  are  any  
               if  ([Link]>0)  
               {  
                   DefaultListModel  myList  =  new  DefaultListModel();  
 
                   [Link]([Link]);  
                   for  (int  i=0;  i<[Link];  i++)  
                         [Link]([Link](i));  
 
                   [Link](myList);  
                 }  
           }  
           catch  (Exception  e)  
           {  
                 [Link]("Exception  caught:  "  +  e);  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  77  of  83  
           }  
   }                    
 

getachreturns  
private  void  jButton4MouseClicked([Link]  evt)  {                                                                              
           //need  to  'import'  the  following:  
           //import  [Link].*;  
           //import  [Link].*;  
           //import  [Link];  
 
           try  
           {  
               //instances  
               ACHWorksWS  myACHWS  =  new  ACHWorksWS();  
               CompanyInfo  myCompanyInfo  =  new  CompanyInfo();  
               ACHReturns  myACHReturns  =  new  ACHReturns();  
 
 
               //assign  values  for  myCompanyInfo  
               [Link]="TST";  
               [Link]="9505";  
               [Link]="THAT  COMPANY";  
               [Link]="RICO";  
 
 
               //call  GetACHReturns  method  
               myACHReturns  =  [Link]().getACHReturns(myCompanyInfo);  
               [Link]([Link]  +  ",  "  +  [Link]);  
 
 
               //list  ACHReturns  if  there  are  any  
               if  ([Link]>0)  
               {  
                   DefaultListModel  myList  =  new  DefaultListModel();  
 
                   [Link]([Link]);  
                   for  (int  i=0;  i<[Link];  i++)  
                       [Link]("FrontEndTrace:"  +  
[Link]().get(i).frontEndTrace  +  
                                   ",  EffectiveDate:"  +  
[Link]().get(i).[Link]()  +  
                                   ",  Name:"  +  [Link]().get(i).customerName  +  
                                                           ",  Amount:"  +  
[Link]().get(i).[Link]()  +  
                                   ",  ResponseCode:"  +    
                             [Link]().get(i).responseCode  +  
                                   ",  ActionDetail:"  +    
                             [Link]().get(i).actionDetail  +  
                                                           ",  ActionDate:"  +  
[Link]().get(i).[Link]());  
 
 
                   [Link](myList);  
                 }  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  78  of  83  
           }  
           catch  (Exception  e)  
           {  
                 [Link]("Exception  caught:  "  +  e);  
           }  
       }                                                        
 

getachreturnshist  
private  void  jButton5MouseClicked([Link]  evt)  {                                                                              
           //need  to  'import'  the  following:  
           //import  [Link].*;  
           //import  [Link].*;  
           //import  [Link];  
           //import  [Link];  
           //import  [Link];  
           //import  [Link];  
 
           try  
           {  
               //instances  
               ACHWorksWS  myACHWS  =  new  ACHWorksWS();  
               CompanyInfo  myCompanyInfo  =  new  CompanyInfo();  
               ACHReturns  myACHReturns  =  new  ACHReturns();  
               DatatypeFactory  myDTF;  
   
 
               //assign  values  for  myCompanyInfo  
               [Link]="TST";  
               [Link]="9505";  
               [Link]="THAT  COMPANY";  
               [Link]="RICO";  
 
               try  
               {  
                     //instance  
                     myDTF  =  [Link]();  
 
                     //call  GetACHReturnsHist  method  
                     myACHReturns  =  
[Link]().getACHReturnsHist(myCompanyInfo,[Link]("2
010-­‐01-­‐01T[Link]"),[Link]("2010-­‐03-­‐20T[Link]"));  
               }  
               catch  (DatatypeConfigurationException  e)  
               {  
                     [Link]("Date  exception  caught:  "  +  e);  
               }  
 
               //assign  portion  of  result  to  jTextField  
               [Link]([Link]  +  ",  "  +  [Link]);  
 
 
               //list  ACHReturns  if  there  are  any  
               if  ([Link]>0)  
               {  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  79  of  83  
                   DefaultListModel  myList  =  new  DefaultListModel();  
 
                   [Link]([Link]);  
                   for  (int  i=0;  i<[Link];  i++)  
                       [Link]("FrontEndTrace:"  +  
[Link]().get(i).frontEndTrace  +  
                                               ",  EffectiveDate:"  +  
[Link]().get(i).[Link]()  +  
                                               ",  Name:"  +    
                             [Link]().get(i).customerName  +  
                                                           ",  Amount:"  +  
[Link]().get(i).[Link]()  +  
                                                           ",  ResponseCode:"  +  
[Link]().get(i).responseCode  +  
                                                           ",  ActionDetail:"  +  
[Link]().get(i).actionDetail  +  
                                                           ",  ActionDate:"  +  
[Link]().get(i).[Link]());  
 
 
                   [Link](myList);  
                 }  
           }  
           catch  (Exception  e)  
           {  
                 [Link]("Exception  caught:  "  +  e);  
           }  
       }                                        
 

getresultfile  
private  void  jButton6MouseClicked([Link]  evt)  {                                                                              
           //need  to  'import'  the  following:  
           //import  [Link].*;  
           //import  [Link].*;  
           //import  [Link];  
           //import  [Link];  
           //import  [Link];  
           //import  [Link];  
 
           try  
           {  
               //instances  
               ACHWorksWS  myACHWS  =  new  ACHWorksWS();  
               CompanyInfo  myCompanyInfo  =  new  CompanyInfo();  
               ResultFile  myResultFile  =  new  ResultFile();  
               DatatypeFactory  myDTF;  
 
 
               //assign  values  for  myCompanyInfo  
               [Link]="TST";  
               [Link]="9505";  
               [Link]="THAT  COMPANY";  
               [Link]="RICO";  
 

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  80  of  83  
               try  
               {  
                     //instance  
                     myDTF  =  [Link]();  
 
                     //call  GetResultFile  method  
                     myResultFile  =  
[Link]().getResultFile(myCompanyInfo,[Link]("2010-­‐
03-­‐25T[Link]"),[Link]("2010-­‐03-­‐26T[Link]"));  
               }  
               catch  (DatatypeConfigurationException  e)  
               {  
                     [Link]("Date  exception  caught:  "  +  e);  
               }  
 
               //assign  portion  of  result  to  jTextField  
               [Link]([Link]  +  ",  "  +  [Link]);  
 
 
               //list  past  connection  results  if  there  are  any  
               if  ([Link]>0)  
               {  
                   DefaultListModel  myList  =  new  DefaultListModel();  
 
                   [Link]([Link]);  
                   for  (int  i=0;  i<[Link];  i++)  
                   {  
                       [Link]("DateTime:"  +  
[Link]().get(i).[Link]()  +  
                                                           ",  Method"  +  [Link]().get(i).callMethod  +  
                                                           ",  Status"  +  [Link]().get(i).status  +  
                                                           ",  FileName:"  +  [Link]().get(i).fileName);  
                       for  (int  j=0;  j<[Link]().get(i).totalNumErrors;  j++)  
                             [Link](">"  +  
[Link]().get(i).[Link]().get(j));  
                   }  
 
                   [Link](myList);  
                 }  
           }  
           catch  (Exception  e)  
           {  
                 [Link]("Exception  caught:  "  +  e);  
           }  
     }                      
 
                     

geterrorfile  
private  void  jButton7MouseClicked([Link]  evt)  {                                                                              
           //need  to  'import'  the  following:  
           //import  [Link].*;  
           //import  [Link].*;  
           //import  [Link];  
           //import  [Link];  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  81  of  83  
           //import  [Link];  
           //import  [Link];  
 
           try  
           {  
               //instances  
               ACHWorksWS  myACHWS  =  new  ACHWorksWS();  
               CompanyInfo  myCompanyInfo  =  new  CompanyInfo();  
               ErrorFile  myErrorFile  =  new  ErrorFile();  
               DatatypeFactory  myDTF;  
 
 
               //assign  values  for  myCompanyInfo  
               [Link]="TST";  
               [Link]="9505";  
               [Link]="THAT  COMPANY";  
               [Link]="RICO";  
 
               try  
               {  
                     //instance  
                     myDTF  =  [Link]();  
 
                     //call  GetResultFile  method  
                     myErrorFile  =  
[Link]().getErrorFile(myCompanyInfo,[Link]("2010-­‐
03-­‐25T[Link]"),[Link]("2010-­‐03-­‐26T[Link]"));  
               }  
               catch  (DatatypeConfigurationException  e)  
               {  
                     [Link]("Date  exception  caught:  "  +  e);  
               }  
 
               //assign  portion  of  result  to  jTextField  
               [Link]([Link]  +  ",  "  +  [Link]);  
 
 
               //list  past  connection  results  if  there  are  any  
               if  ([Link]>0)  
               {  
                   DefaultListModel  myList  =  new  DefaultListModel();  
 
                   [Link]([Link]);  
                   for  (int  i=0;  i<[Link];  i++)  
                   {  
                       [Link]("DateTime:"  +    
                                               [Link]().get(i).[Link]()  +  
                                                           ",  Method"  +  [Link]().get(i).callMethod  +  
                                                           ",  FileName:"  +  [Link]().get(i).fileName  +  
                                                           ",  No  Of  Errors:"  +    
                                                                 [Link]().get(i).totalNumErrors);  
                       for  (int  j=0;  j<[Link]().getErrorRecord().get(i).totalNumErrors;  j++)  
                             [Link](">"  +  
[Link]().get(i).[Link]().get(j));  
                   }  

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  82  of  83  
 
                   [Link](myList);  
                 }  
           }  
           catch  (Exception  e)  
           {  
                 [Link]("Exception  caught:  "  +  e);  
           }  
   }                                                      
 

ACHWorks-­‐SOAP  Ver  4.0    Guide  Copyright  ©  ACHWorks  2010.  All  Rights  Reserved.   Page  83  of  83  

You might also like