We want to make payments easy for developers. Let us do the heavy lifting with these developer tools so you can simply and easily deploy payment and donation solutions.
CustomerLink allows you to create, update and delete tokens. These tokens can be stored on your database without the risk of storing clear text credit card or banking details. You can then use these tokens to either do one-time transactions, or recurring transactions where you manage the recurring schedule.
CustomerLink also allows you to set up recurring schedules where iATS will manage the recurring schedule. The results of these recurring transactions can be pulled out of our server using our ReportLink services. Our webservices allow you to modify these schedules (card data, start and end dates, etc.) via the API.
This guide provides an explanation of all the available iATS ProcessLink Web services, how they work, and how to set them up.
Below is a diagram on how ProcessLink fits with other web services from iATS (red boxes).
Please be advised that UK Direct Debit is highly regulated by BACS and has a number of best practices.
Functions available in CustomerLink that are explained in this guide:
Available actions include:
North American API Directory: https://www.iatspayments.com/netgate/customerlinkv4.asmx
API Directory: https://www.uk.iatspayments.com/netgate/ProcessLinkv2.asmx
MENU:
iATS CustomerLink Web Services are used to create secure tokens (Customer Codes) that can be used with iATS ProcessLink services for processing single transactions for credit cards or ACH or Direct Debit, which is authorized bank account withdrawal – referred to as ACHEFT. (For more information about ProcessLink, please see the ProcessLink Web Services Guide).
Available CustomerLink Web Services
The CustomerLink Web Services transactions available include creating, updating, and deleting credit card and ACHEFT Tokens (Customer Codes). If recurring is set to true (1) and recurring details (such as schedule type, begin and end date, schedule date etc.) are set up correctly, the iATS system will process recurring transactions automatically. This kind of Token (Customer code) is called recurring customer code. If recurring is set to false (0), this kind of Token (Customer code) is called single customer code.
Both recurring Tokens (Customer codes) and single Tokens (Customer codes) can be used to process single transactions. In other words, if you need to, you can process a single transaction using a recurring Token (Customer code).
Creating Tokens (Customer codes) allows future transactions to be carried out using the same credentials without the need to store sensitive credit card or ACH information on local servers.
For managing recurring transaction schedules, you have the option of managing them or having iATS manage them for you (except for UK Direct Debit which for various Direct Debit timing challenges in the UK, recurring schedules can only be managed by iATS):
You use CustomerLink to set up the individual Tokens (Customercodes) with the recurring tag set to false (0);
You then send a batch file containing the Tokens (Customer codes) using ProcessLink, or
Please note that iATS operates two server systems, one based in North America (NA) and one in the United Kingdom (UK). Clients in the United States and Canada will use the NA servers, while all other clients use our UK servers. The explanation of the specific services that follows will provide the links to each server address as available.
During single transaction processing calls, if a Customer Code Token is not being used, the default placeholder value is “Quick Client”. Please do not remove this default value during processing. When needed, this value should be replaced with the Customer Code token storing the payment details.
Encrypted Swipe credit card functionality is available. For more information or a copy of the installation guide, please email partnersupport@iatspayments.com.
Below is an outline regarding how the auto-processing works, and how some changes which are made to the Customer Code may affect when the donor is charged.
What happens when the schedule fields are modified?
We will not attempt a new transaction if an approval or reject was already processed for that cycle. For example if a donor is charged each month on the 15th and they request a pause in their giving cycle for 6 months, the day the Recurring Status flag is set to back to ON (1), a new transaction will be attempted for the missing current cycle within 1 hour. New future transactions will continue to be processed on the 15th of each month.
CustomerLink is primarily used for creating, updating, and deleting credit card and ACHEFT (ACH or direct debit) Customer Code Tokens and to setup recurring transactions. Creating Customer Code Tokens allows future transactions to be carried out using the same credentials without the need to store sensitive credit card or ACH information on local servers.
For managing recurring transactions, you have the option of managing them or having iATS manage them for you:
Please note that iATS operates two server systems, one based in North America (NA) and one in the United Kingdom (UK). Clients in the United States and Canada will use the NA servers, while all other clients use our UK servers. The explanation of the specific services that follows will provide the links to each server address as available.
During single transaction processing calls, if a Customer Code Token is not being used, the default placeholder value is “Quick Client”. Please do not remove this default value during processing. When needed, this value should be replaced with the Customer Code token storing the payment details.
Encrypted Swipe credit card functionality is available. For more information or a copy of the installation guide, please email partnersupport@iatspayments.com
When clients sign up with iATS they are provided with a unique merchant account. With this account and once you set up the Web services you require, you will be able to process transactions directly from your donor database, website, or online fundraising solution (without having to negotiate with individual credit card companies and payment processing vendors).
Our Web services are standard SOAP messages that are supported by a server-side programming language. If your Web server is Microsoft Internet Information Server (MS IIS), you can use C# to write the server side code to use the Web service. If your server is PHP-based, you can write PHP code to use the Web service.
A SOAP message is an XML file that contains the following elements:
For a full explanation of SOAP messages, please see https://www.w3schools.com/xml/xml_soap.asp.
A C# sample of an iATS consumer Web service is available for download here. In order to run the sample code, you will need Microsoft Visual Studio 2008 or later installed. The sample calls “GetCreditCardJournalCSVV1” method from our ReportLink.asmx Web service to get details (a journal) of a successful credit card transaction in csv type.
A PHP wrapper is available on our Github repository here. The base SOAP request and response structure for the specific services are explained below. To implement the services, you need to complete the code with your information and then integrate the code into your site or software platform. (Please note that all code will be hosted on your servers.) Once the calls are tested, you are good to go!
We have created a sample client code that allows you to test our payment systems. Please see, “Appendix A: Testing iATS Payments Systems” for details on how to use it.
For clients in the UK, you should also test the direct debit request, which requires additional parameters. That test is available below in Appendix B: Testing Direct Debit (UK Only).
For technical assistance, please email partnersupport@iatspayments.com
Guide to the ProcessLink Web Services
The guide that follows includes a complete overview of the requests available using our ProcessLink Web services. Each request overview includes the following:
|
|
This service is for when you want to create a new Customer Code token to store Credit Card information, and to optionally enable automated recurring processing within iATS. These calls cannot be used to setup new North American bank debit, UK Direct Debit or Euro SEPA bank debit Customer Codes. See their respective sections for more information.
If iATS manages the recurring schedule:
This call is available on either our NA or UK systems.
SOAP Request and Response Server Addresses
Depending on which server you require, you can find the SOAP request and response structures at the following URLs:
SOAP Request and Response Structure
The code below shows the SOAP request and response structure for the North American version of “CreateCreditCardCustomerCode”.
Notes:
Request (NA server, please use link above for UK server)
POST /netgate/CustomerLinkv4.asmx HTTP/1.1 Host: www.iatspayments.com <?xml version="1.0" encoding="utf-8"?> <soap12:Body> <agentCode>string</agentCode> <password>string</password> <customerIPAddress>string</customerIPAddress> <customerCode>string</customerCode> <firstName>string</firstName> <lastName>string</lastName> <companyName>string</companyName> <address>string</address> <city>string</city> <title>string</title> <country>string</country> <item1>string</item1> <item2>string</item2> <item3>string</item3> <item4>string</item4> <item5>string</item5> <item6>string</item6> </CreateCreditCardCustomerCode> </soap12:Body> </soap12:Envelope> |
Response
HTTP/1.1 200 OK Content-Type: application/soap+xml; charset=utf-8 Content-Length: length
<?xml version="1.0" encoding="utf-8"?> <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> <soap12:Body> <CreateCreditCardCustomerCodeResponse xmlns="https://www.iatspayments.com/NetGate/"> <CreateCreditCardCustomerCodeResult>xml</CreateCreditCardCustomerCodeResult> </CreateCreditCardCustomerCodeResponse> </soap12:Body> </soap12:Envelope> |
Overview of Request Parameters
Here is an overview of the request parameters for the “CreateCreditCardCustomerCode,” above. Parameters in red are mandatory.
Parameter |
Notes/Options |
Char. Limit |
agentCode |
10 |
|
password |
10 |
|
customerIPAddress |
This is the IP address of the donor’s computer. Please send to fully utilise the Fraud tools available from iATS. IPv4 only. |
N/A |
customerCode |
You can provide the Token (Customer code); if none is present, the iATS system will automatically assign one. |
40 |
firstName |
Optional but highly recommended |
100 |
lastName |
Optional but highly recommended |
100 |
companyName |
100 |
|
address |
Optional but highly recommended |
100 |
city |
Optional but highly recommended |
40 |
state |
State or province (NA only). Optional but highly recommended |
40 |
zipCode |
Optional but highly recommended |
40 |
phone |
40 |
|
fax |
40 |
|
alternatePhone |
Mobile |
40 |
|
100 |
|
comment |
100 |
|
recurring |
Boolean: true (1)/false (0). |
N/A |
amount |
Prevent the use of commas (,) within the dollar amount fields if possible. iATS reads a comma as a period in this field to compensate for different countries use of the comma within currency. For example: $1,000 |
N/A |
beginDate |
Value=”dateTime”; ISO 8601 format. |
N/A |
endDate |
Value=”dateTime”; ISO 8601 format. |
N/A |
scheduleType |
Options: Weekly, Monthly, Quarterly, Annually |
N/A |
scheduleDate |
Options: Monthly: 1~28,29,30 or 31; |
N/A |
creditCardCustomerName |
Donor’s name on credit card. If left empty, we will use firstName + lastName, and cut at 30 characters. |
30 |
creditCardNum |
32 digits |
|
creditCardExpiry |
“MM/YY” |
10 |
mop |
NA: VISA, MC, AMX, DSC UK: VISA, MC, AMX, MAESTR |
N/A |
title |
||
country |
||
item1 |
||
item2 |
||
item3 |
||
item4 |
||
item5 |
||
item6 |
Sample Reply Message Format
<IATSRESPONSE> <STATUS>StatusType</STATUS> <ERRORS>ErrorCodeType</ERRORS> <PROCESSRESULT> <AUTHORIZATIONRESULT>AuthorizationResultType </AUTHORIZATIONRESULT> <CUSTOMERCODE>CustomerCode</CUSTOMERCODE> </PROCESSRESULT> </IATSRESPONSE > |
The table below describes what can be expected for each of the return values:
Explanation of Sample Reply Message Values |
||
Return Value |
Occurrence |
Explanation |
STATUS |
Always |
The system-level acknowledgement code that indicates the iATS system status:
|
ERRORS |
Conditional |
Return information when Status = Failure. Return value will depend on the error. |
AUTHORIZATIONRESULT |
Conditional |
Return information when Status = Success. This value represents the application-level result that iATS processed the request:
in delivery, attempt by end-user to submit invalid or missing data, etc. Reject 40: Invalid card number |
CUSTOMERCODE |
Conditional |
Return information when Status = Success and AUTHORIZATIONRESULT = OK; value is new Token (Customer code). |
This service is for when you want to create a new Customer Code token to store Bank Account information, and to optionally enable automated recurring processing within iATS. This call cannot be used to setup new UK Direct Debit bank debit or Euro SEPA bank debit Customer Codes. It can be used to setup new Australian Dollar bank debit transactions however.
If iATS manages the recurring schedule:
If you manage the recurring schedule:
This call is available on either our NA or the AUD portion of our UK systems.
SOAP Request and Response Server Addresses
Depending on which server you require, you can find the SOAP request and response structures at the following URLs:
SOAP Request and Response Structure
The code below shows the SOAP request and response structure for the North American version of “CreateACHEFTCustomerCode”.
Notes:
The request parameter placeholders shown (e.g., “string”, “dateTime”, etc.) need to be replaced with actual values.
Request (NA, for AUD International use link above)
POST /netgate/CustomerLinkv4.asmx HTTP/1.1 Host: www.iatspayments.com Content-Type: application/soap+xml; charset=utf-8 Content-Length: length
<?xml version="1.0" encoding="utf-8"?> <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> <soap12:Body> <CreateACHEFTCustomerCode xmlns="https://www.iatspayments.com/NetGate/"> <agentCode>string</agentCode> <password>string</password> <customerIPAddress>string</customerIPAddress> <customerCode>string</customerCode> <firstName>string</firstName> <lastName>string</lastName> <companyName>string</companyName> <address>string</address> <city>string</city> <state>string</state> <zipCode>string</zipCode> <phone>string</phone> <fax>string</fax> <alternatePhone>string</alternatePhone> <email>string</email> <comment>string</comment> <recurring>boolean</recurring> <amount>string</amount> <beginDate>dateTime</beginDate> <endDate>dateTime</endDate> <scheduleType>string</scheduleType> <scheduleDate>string</scheduleDate> <accountCustomerName>string</accountCustomerName> <accountNum>string</accountNum> <accountType>string</accountType> <title>string</title> <country>string</country> <item1>string</item1> <item2>string</item2> <item3>string</item3> <item4>string</item4> <item5>string</item5> <item6>string</item6> </CreateACHEFTCustomerCode> </soap12:Body> </soap12:Envelope> |
Response
HTTP/1.1 200 OK Content-Type: application/soap+xml; charset=utf-8 Content-Length: length
<?xml version="1.0" encoding="utf-8"?> <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> <soap12:Body> <CreateACHEFTCustomerCodeResponse xmlns="https://www.iatspayments.com/NetGate/"> <CreateACHEFTCustomerCodeResult>xml</CreateACHEFTCustomerCodeResult> </CreateACHEFTCustomerCodeResponse> </soap12:Body> </soap12:Envelope>
|
Overview of Request Parameters
Here is an overview of the request parameters for the “CreateACHEFTCustomerCode” above. Parameters in red are mandatory.
Parameter |
Notes/Options |
Char. Limit |
agentCode |
10 |
|
password |
10 |
|
customerIPAddress |
This is the IP address of the donor’s computer. Please send to fully utilise the Fraud tools available from iATS. IPv4 only. |
N/A |
customerCode |
You can provide the Token (Customer code); if none is present, iATS system will automatically assign one. |
40 |
firstName |
Optional but highly recommended |
100 |
lastName |
Optional but highly recommended |
100 |
companyName |
Optional but highly recommended |
100 |
address |
Optional but highly recommended |
100 |
city |
Optional but highly recommended |
40 |
state |
State or province (NA only). Optional but highly recommended |
40 |
zipCode |
Optional but highly recommended |
40 |
phone |
40 |
|
fax |
40 |
|
alternatePhone |
Mobile |
40 |
|
|
100 |
comment |
|
100 |
recurring |
Boolean: true (1)/false (0). Required field – Use True if iATS will hold schedule, False if you will. |
N/A |
amount |
Prevent the use of commas (,) within the dollar amount fields if possible. iATS reads a comma as a period in this field to compensate for different countries use of the comma within currency. For example: $1,000 |
N/A |
beginDate |
Value=”dateTime”; ISO 8601 format. e.g. 2008-10-31T15:07:38.6875000 ("yyyy-MM-dd'T'HH:mm:ss.fffffffZ") Required, but if recurring status is set to false, use any generic values. iATS will override with default placeholder data. |
N/A |
endDate |
Value=”dateTime”; ISO 8601 format. e.g. 2008-10-31T15:07:38.6875000 ("yyyy-MM-dd'T'HH:mm:ss.fffffffZ") Required, but if recurring status is set to false, use any generic values. iATS will override with default placeholder data. |
N/A |
scheduleType |
Options: Weekly, Monthly, Quarterly, Annually |
N/A |
scheduleDate |
Options: Monthly: 1~28,29,30 or 31; Weekly: 1~7 (where Sunday = 1 and Saturday = 7) Quarterly or Annually: empty string |
N/A |
accountCustomerName |
Donor’s full name or name on file with bank. When left empty, we will use firstName + lastName and cut at 30 characters. |
30 |
accountNum |
* Order must be followed with NO spaces/dashes. Ie: 12312345123456789 * |
32 digits |
accountType |
Options: CHECKING, SAVING (NA only). These values are case sensitive and must be in capital letters. |
N/A |
title |
|
|
country |
|
|
item1 |
|
|
item2 |
|
|
item3 |
|
|
item4 |
|
|
item5 |
|
|
item6 |
|
|
Sample Reply Message Format
The response message format will be as follows:
<IATSRESPONSE> <STATUS>StatusType</STATUS> <ERRORS>ErrorCodeType</ERRORS> <PROCESSRESULT> <AUTHORIZATIONRESULT>AuthorizationResultType </AUTHORIZATIONRESULT> <CUSTOMERCODE>CustomerCode</CUSTOMERCODE> </PROCESSRESULT> </IATSRESPONSE > |
The table below describes what can be expected for each of the return values:
Explanation of Sample Reply Message Values |
||
Return Value |
Occurrence |
Explanation |
STATUS |
Always |
The system-level acknowledgement code that indicates the iATS system status:
|
ERRORS |
Conditional |
Return information when Status = Failure. Return value will depend on the error. |
AUTHORIZATIONRESULT |
Conditional |
Return information when Status = Success. This value represents the application-level result that iATS processed the request:
iATS does not currently have a list of possible error messages as they can be sent due to different types of processing and from different components, etc. Reject 3: Customer Code does not exist Or Account num is too long Reject 40: Invalid card number |
CUSTOMERCODE |
Conditional |
Return information when Status = Success and AUTHORIZATIONRESULT = OK; value is new Token (Customer code). |
These calls are for when you want to obtain details on a Customer Code token, and then update its values. You can also pull a list of Customer Codes in bulk.
If Customer Code has not yet been used to process a transaction, it can be deleted. If the token has already been used for transaction processing, it cannot be deleted from the iATS system.
Please note that Euro SEPA and UK Direct Debit services have their own update calls within their respective sections.
The following calls will be included in the below sections:
These calls are available on either our NA or UK systems however the ACH calls only apply to NA and the AUD portion of our UK system.
Important: In order to avoid data integrity issues when updating values within an existing Customer Code (Token), we recommend calling the existing values from the iATS Servers first and then the sending the update call. For example:
** If you are not updating the Credit Card or Bank Account numbers, use the value **** (four star symbols) in the credit card number field. This will ensure the card details are not overwritten with a blank value.
This call is to obtain the details of a specific Customer Code (any method of payment) to prepare for an update.
This call is available on either our NA or UK system.
Depending on which server you require, you can find the SOAP request and response structures at the following URLs:
SOAP Request and Response Structure
The code below shows the SOAP request and response structure for the North American version of “GetCustomerCodeDetail”.
Notes:
Request (NA, for UK see link above)
POST /netgate/CustomerLinkv4.asmx HTTP/1.1 Host: www.iatspayments.com Content-Type: application/soap+xml; charset=utf-8 Content-Length: length
<?xml version="1.0" encoding="utf-8"?> <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> <soap12:Body> <GetCustomerCodeDetail xmlns="https://www.iatspayments.com/NetGate/"> <agentCode>string</agentCode> <password>string</password> <customerIPAddress>string</customerIPAddress> <customerCode>string</customerCode> </GetCustomerCodeDetail> </soap12:Body> </soap12:Envelope> |
Response
HTTP/1.1 200 OK Content-Type: application/soap+xml; charset=utf-8 Content-Length: length
<?xml version="1.0" encoding="utf-8"?> <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> <soap12:Body> <GetCustomerCodeDetailResponse xmlns="https://www.iatspayments.com/NetGate/"> <GetCustomerCodeDetailResult>xml</GetCustomerCodeDetailResult> </GetCustomerCodeDetailResponse> </soap12:Body> </soap12:Envelope> |
Overview of Request Parameters
Here is an overview of the request parameters for the “GetCustomerCodeDetail,” above. Parameters in red are mandatory.
Parameters |
Notes/Options |
Char. Limit |
agentCode |
10 |
|
password |
10 |
|
customerCode |
Will be existing Token (Customer code). |
40 |
<IATSRESPONSE> <STATUS>StatusType</STATUS> <ERRORS>ErrorCodeType</ERRORS> <PROCESSRESULT> <AUTHORIZATIONRESULT>AuthorizationResultType </AUTHORIZATIONRESULT> <CUSTOMERCODE>CustomerCode</CUSTOMERCODE> </PROCESSRESULT> </IATSRESPONSE > |
The table below describes what can be expected for each of the return values:
Explanation of Sample Reply Message Values |
||
Return Value |
Occurrence |
Explanation |
STATUS |
Always |
The system-level acknowledgement code that indicates the iATS system status:
|
ERRORS |
Conditional |
Return information when Status = Failure. Return value will depend on the error |
AUTHORIZATIONRESULT |
Conditional |
Return information when Status = Success and process result is Error. This value represents the application-level result that iATS processed the request.
|
CUSTOMERCODE |
Conditional |
Return information when Status = Success and AUTHORIZATIONRESULT = Error. The value is the Token (Customer code) that has been inputted. |
In the case of a successful request, the response will resemble the example below. (The message type inside every xml node is an encoded XML string):
XML |
XML Tag Explanation |
<IATSRESPONSE> | |
<STATUS>Success</STATUS> | |
<ERRORS/> | |
<CUSTOMERS> | |
<CST> |
Customer |
<CSTC>A951386</CSTC> |
Token (Customer code) |
<FLN>Firstname Lastname</FLN> |
Full name |
<CO>Company name</CO> |
Company |
<ADD>1234 Any Street</ADD> |
Address |
<CTY>Anytown</CTY> |
City |
<ST>CA</ST> |
State/province |
<ZC>10023</ZC> |
Postcode |
<PH>1234567</PH> |
Phone |
<MB>7654321</MB> |
Mobile |
<FX>2345678</FX> |
Fax |
<EM>someone@here.com</EM> |
|
<CM>This is just a test</CM> |
Comment |
<RCR status ="ON"> |
Recurring (ON/OFF) |
<AMT>10.00</AMT> |
Amount |
<BD>03/21/2012</BD> |
Begin date |
<ED>08/30/2012</ED> |
End date |
<SCHTYP>Weekly</SCHTYP> |
Schedule type |
<SCHD>2</SCHD> |
Schedule date |
</RCR> |
|
<AC1 type ="ACH”> |
Account1 (CC or ACH) |
<ACH> |
ACHEFT |
<CSTN>Firstname Lastname</CSTN> |
Customer name |
<ACN>4222*********2111</ACN> |
Account number |
<ACTYP>SAVING</ACTYP> |
Account type |
</ACH> | |
</AC1> | |
<AC2 type ="CC"> |
Account2 (CC only) |
<CC> |
Credit card |
<CSTN>Firstname Lastname</CSTN> |
Customer name |
<MP>VISA</MP> |
Method of payment |
<CCN>4222*********2220</CCN> |
Credit card number |
<EXP>10/18</EXP> |
Expiry |
</CC> |
|
</AC2> |
|
</CST> |
|
</CUSTOMERS> |
|
</IATSRESPONSE> |
This call is to update the details of a Credit Card Customer Code token. Before proceeding, please refer to section 5.2 as you must perform the “GetCustomerCodeDetail” call to obtain the details of the Customer Code before sending the updated data.
Important: In order to avoid data integrity issues when updating values within an existing Customer Code (Token), we recommend calling the existing values from the iATS Servers first and then the sending the update call. For example:
** If you are not updating the Credit Card or Bank Account numbers, use the value **** (four star symbols) in the credit card number field. This will ensure the card details are not overwritten with a blank value.
This call is available on either our NA or UK system.
Depending on which server you require, you can find the SOAP request and response structures at the following URLs:
SOAP Request and Response Structure
The code below shows the SOAP request and response structure for the North American version of “UpdateCreditCardCustomerCode”.
Notes:
Request (NA, for UK see link above)
POST /netgate/CustomerLinkv4.asmx HTTP/1.1 Host: www.iatspayments.com Content-Type: application/soap+xml; charset=utf-8 Content-Length: length
<?xml version="1.0" encoding="utf-8"?> <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> <soap12:Body> <UpdateCreditCardCustomerCode xmlns="https://www.iatspayments.com/NetGate/"> <agentCode>string</agentCode> <password>string</password> <customerIPAddress>string</customerIPAddress> <customerCode>string</customerCode> <firstName>string</firstName> <lastName>string</lastName> <companyName>string</companyName> <address>string</address> <city>string</city> <state>string</state> <zipCode>string</zipCode> <phone>string</phone> <fax>string</fax> <alternatePhone>string</alternatePhone> <email>string</email> <comment>string</comment> <recurring>boolean</recurring> <amount>string</amount> <beginDate>dateTime</beginDate> <endDate>dateTime</endDate> <scheduleType>string</scheduleType> <scheduleDate>string</scheduleDate> <creditCardCustomerName>string</creditCardCustomerName> <creditCardNum>string</creditCardNum> <creditCardExpiry>string</creditCardExpiry> <mop>string</mop> <updateCreditCardNum>boolean</updateCreditCardNum> <title>string</title> <country>string</country> <item1>string</item1> <item2>string</item2> <item3>string</item3> <item4>string</item4> <item5>string</item5> <item6>string</item6> </UpdateCreditCardCustomerCode> </soap12:Body> </soap12:Envelope> |
Response
HTTP/1.1 200 OK Content-Type: application/soap+xml; charset=utf-8 Content-Length: length
<?xml version="1.0" encoding="utf-8"?> <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> <soap12:Body> <UpdateCreditCardCustomerCodeResponse xmlns="https://www.iatspayments.com/NetGate/"> <UpdateCreditCardCustomerCodeResult>xml</UpdateCreditCardCustomerCodeResult> </UpdateCreditCardCustomerCodeResponse> </soap12:Body> </soap12:Envelope> |
Overview of Request Parameters
Here is an overview of the request parameters for the “UpdateCreditCardCustomerCode,” above. Parameters in red are mandatory.
Parameter |
Notes/Options |
Char. Limit |
agentCode |
10 |
|
password |
10 |
|
customerIPAddress |
This is the IP address of the donor’s computer. Please send to fully utilise the Fraud tools available from iATS. IPv4 only. |
N/A |
customerCode |
Will be existing Token (Customer code). |
40 |
firstName |
100 |
|
lastName |
100 |
|
companyName |
100 |
|
address |
100 |
|
city |
40 |
|
state |
State or province (NA only) |
40 |
zipCode |
40 |
|
phone |
40 |
|
fax |
40 |
|
alternatePhone |
Mobile |
40 |
|
100 |
comment |
100 |
|
recurring |
Boolean: true (1)/false (0) |
N/A |
amount |
Prevent the use of commas (,) within the dollar amount fields if possible. iATS reads a comma as a period in this field to compensate for different countries use of the comma within currency. For example: $1,000 |
N/A |
beginDate |
Value=”dateTime”; ISO 8601 format. e.g. 2008-10-31T15:07:38.6875000 ("yyyy-MM-dd'T'HH:mm:ss.fffffffZ") |
N/A |
endDate |
Value=”dateTime”; ISO 8601 format. e.g. 2008-10-31T15:07:38.6875000 ("yyyy-MM-dd'T'HH:mm:ss.fffffffZ") |
N/A |
scheduleType |
Options: Weekly, Monthly, Quarterly, Annually |
N/A |
scheduleDate |
Options: Monthly: 1~28,29,30 or 31; Weekly: 1~7 (where Sunday = 1 and Saturday = 7) |
N/A |
creditCardCustomerName |
Donor’s name on credit card. If left empty we will use firstName + lastName and cut at 30 characters. |
30 |
creditCardNum |
32 digits |
|
creditCardExpiry |
“MM/YY” |
10 |
mop |
NA: VISA, MC, AMX, DSC UK: VISA, MC, AMX, MAESTR |
N/A |
updateCreditCardNum |
Boolean: true (1)/false (0) |
N/A |
title |
||
country |
||
item1 |
||
item2 |
||
item3 |
||
item4 |
||
item5 |
||
item6 |
Sample Reply Message Format
<IATSRESPONSE> <STATUS>StatusType</STATUS> <ERRORS>ErrorCodeType</ERRORS> <PROCESSRESULT> <AUTHORIZATIONRESULT>AuthorizationResultType </AUTHORIZATIONRESULT> <CUSTOMERCODE>CustomerCode</CUSTOMERCODE> </PROCESSRESULT> </IATSRESPONSE > |
The table below describes what can be expected for each of the return values:
Explanation of Sample Reply Message Values |
||
Return Value |
Occurrence |
Explanation |
STATUS |
Always |
The system-level acknowledgement code that indicates the iATS system status:
|
ERRORS |
Conditional |
Return information when Status = Failure. Return value will depend on the error. |
AUTHORIZATIONRESULT |
Conditional |
Return information when Status = Success. This value represents the application-level result that iATS processed the request: • OK - Request has been approved in delivery, attempt by end-user to submit invalid or missing data, etc. Reject 40: Invalid card number |
CUSTOMERCODE |
Conditional |
Return information when Status = Success and AUTHORIZATIONRESULT = OK; value is existing Token (Customer code) that has been inputted. |
This call is to update the details of a Bank Debit Customer Code token for North American or Australian Dollar. Before proceeding, please refer to section 5.2 as you must perform the “GetCustomerCodeDetail” call to obtain the details of the Customer Code before sending the updated data.
Important: In order to avoid data integrity issues when updating values within an existing Customer Code (Token), we recommend calling the existing values from the iATS Servers first and then the sending the update call. For example:
** If you are not updating the Credit Card or Bank Account numbers, use the value **** (four star symbols) in the credit card number field. This will ensure the card details are not overwritten with a blank value.
This call is available on either our NA or AUD International system.
Depending on which server you require, you can find the SOAP request and response structures at the following URLs:
SOAP Request and Response Structure
The code below shows the SOAP request and response structure for the North American version of “UpdateACHEFTCustomerCode”.
Notes:
Request (NA, for AUD International see link above)
POST /netgate/CustomerLinkv4.asmx HTTP/1.1 Host: www.iatspayments.com Content-Type: application/soap+xml; charset=utf-8 Content-Length: length
<?xml version="1.0" encoding="utf-8"?> <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> <soap12:Body> <UpdateACHEFTCustomerCode xmlns="https://www.iatspayments.com/NetGate/"> <agentCode>string</agentCode> <password>string</password> <customerIPAddress>string</customerIPAddress> <customerCode>string</customerCode> <firstName>string</firstName> <lastName>string</lastName> <companyName>string</companyName> <address>string</address> <city>string</city> <state>string</state> <zipCode>string</zipCode> <phone>string</phone> <fax>string</fax> <alternatePhone>string</alternatePhone> <email>string</email> <comment>string</comment> <recurring>boolean</recurring> <amount>string</amount> <beginDate>dateTime</beginDate> <endDate>dateTime</endDate> <scheduleType>string</scheduleType> <scheduleDate>string</scheduleDate> <accountCustomerName>string</accountCustomerName> <accountNum>string</accountNum> <accountType>string</accountType> <updateAccountNum>boolean</updateAccountNum> <title>string</title> <country>string</country> <item1>string</item1> <item2>string</item2> <item3>string</item3> <item4>string</item4> <item5>string</item5> <item6>string</item6> </UpdateACHEFTCustomerCode> </soap12:Body> </soap12:Envelope>Page Break |
Response
HTTP/1.1 200 OK Content-Type: application/soap+xml; charset=utf-8 Content-Length: length
<?xml version="1.0" encoding="utf-8"?> <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> <soap12:Body> <UpdateACHEFTCustomerCodeResponse xmlns="https://www.iatspayments.com/NetGate/"> <UpdateACHEFTCustomerCodeResult>xml</UpdateACHEFTCustomerCodeResult> </UpdateACHEFTCustomerCodeResponse> </soap12:Body> </soap12:Envelope> |
Overview of Request Parameters
Here is an overview of the request parameters for the “UpdateACHEFTCustomerCode”, above. Parameters in red are mandatory.
Parameter |
Notes/Options |
Char. Limit |
agentCode |
10 |
|
password |
10 |
|
customerIPAddress |
This is the IP address of the donor’s computer. Please send to fully utilise the Fraud tools available from iATS. IPv4 only. |
N/A |
customerCode |
Will be existing Token (Customer code). |
40 |
firstName |
Donor’s full name or name on file with their bank. |
100 |
lastName |
100 |
|
companyName |
100 |
|
address |
100 |
|
city |
40 |
|
state |
State or province (NA only) |
40 |
zipCode |
40 |
|
phone |
40 |
|
fax |
40 |
|
alternatePhone |
Mobile |
40 |
|
100 |
|
comment |
100 |
|
recurring |
Boolean: true (1)/false (0) |
N/A |
amount |
Prevent the use of commas (,) within the dollar amount fields if possible. iATS reads a comma as a period in this field to compensate for different countries use of the comma within currency. For example: $1,000 |
N/A |
beginDate |
Value=”dateTime”; ISO 8601 format. e.g. 2008-10-31T15:07:38.6875000 ("yyyy-MM-dd'T'HH:mm:ss.fffffffZ") |
N/A |
endDate |
Value=”dateTime”; ISO 8601 format. e.g. 2008-10-31T15:07:38.6875000 ("yyyy-MM-dd'T'HH:mm:ss.fffffffZ") |
N/A |
scheduleType |
Options: Weekly, Monthly, Quarterly, Annually |
N/A |
scheduleDate |
Options: Monthly: 1~28,29,30 or 31; Weekly: 1~7 (where Sunday = 1 and Saturday = 7) Quarterly or Annually: empty string |
N/A |
accountCustomerName |
Donor’s full name or name on file with their bank. If left empty, we will use firstName + lastName and cut at 30 characters. |
30 |
accountNum |
|
32 digits |
accountType |
Options: CHECKING, SAVING (NA only). These values are case sensitive and must be in capital letters. |
N/A |
updateAccountNum |
Boolean: true (1)/false (0) |
N/A |
title |
|
|
country |
ISO 3 digits ALPHA |
|
item1 |
|
|
item2 |
|
|
item3 |
|
|
item4 |
|
|
item5 |
|
|
item6 |
|
|
Sample Reply Message Format
<IATSRESPONSE> <STATUS>StatusType</STATUS> <ERRORS>ErrorCodeType</ERRORS> <PROCESSRESULT> <AUTHORIZATIONRESULT>AuthorizationResultType </AUTHORIZATIONRESULT> <CUSTOMERCODE>CustomerCode</CUSTOMERCODE> </PROCESSRESULT> </IATSRESPONSE > |
The table below describes what can be expected for each of the return values:
Explanation of Sample Reply Message Values |
||
Return Value |
Occurrence |
Explanation |
STATUS |
Always |
The system-level acknowledgement code that indicates the iATS system status:
|
ERRORS |
Conditional |
Return information when Status = Failure. Return value will depend on the error. |
AUTHORIZATIONRESULT |
Conditional |
Return information when Status = Success. This value represents the application-level result that iATS processed the request: • OK - Request has been approved in delivery, attempt by end-user to submit invalid or missing data, etc. Reject 40: Invalid card number |
CUSTOMERCODE |
Conditional |
Return information when Status = Success and AUTHORIZATIONRESULT = OK; value is existing Token (Customer code) that has been inputted. |
This call is to delete Customer Code token, when possible. If Customer Code has not yet been used to process a transaction, it can be deleted. If the token has already been used for transaction processing, it cannot be deleted from the iATS system.
This call is available on either our NA or UK systems.
Depending on which server you require, you can find the SOAP request and response structures at the following URLs:
SOAP Request and Response Structure
The code below shows the SOAP request and response structure for the North American version of “DeleteCustomerCode”.
Notes:
Request (NA, for UK see link above)
POST /netgate/CustomerLinkv4.asmx HTTP/1.1 Host: www.iatspayments.com Content-Type: application/soap+xml; charset=utf-8 Content-Length: length
<?xml version="1.0" encoding="utf-8"?> <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> <soap12:Body> <DeleteCustomerCode xmlns="https://www.iatspayments.com/NetGate/"> <agentCode>string</agentCode> <password>string</password> <customerIPAddress>string</customerIPAddress> <customerCode>string</customerCode> </DeleteCustomerCode> </soap12:Body> </soap12:Envelope> |
Response
HTTP/1.1 200 OK Content-Type: application/soap+xml; charset=utf-8 Content-Length: length
<?xml version="1.0" encoding="utf-8"?> <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> <soap12:Body> <DeleteCustomerCodeResponse xmlns="https://www.iatspayments.com/NetGate/"> <DeleteCustomerCodeResult>xml</DeleteCustomerCodeResult> </DeleteCustomerCodeResponse> </soap12:Body> </soap12:Envelope> |
Overview of Request Parameters
Here is an overview of the request parameters for the “DeleteCustomerCode,” above. Parameters in red are mandatory.
Parameter |
Notes/Options |
Char. Limit |
agentCode |
10 |
|
password |
10 |
|
customerIPAddress |
Optional. |
|
customerCode |
Will be existing Token (Customer code). |
40 |
<IATSRESPONSE> <STATUS>StatusType</STATUS> <ERRORS>ErrorCodeType</ERRORS> <PROCESSRESULT> <AUTHORIZATIONRESULT>AuthorizationResultType </AUTHORIZATIONRESULT> <CUSTOMERCODE>CustomerCode</CUSTOMERCODE> </PROCESSRESULT> </IATSRESPONSE > |
The table below describes what can be expected for each of the return values:
Explanation of Sample Reply Message Values |
|||
Return Value |
Occurrence |
Explanation |
|
STATUS |
Always |
The system-level acknowledgement code that indicates the iATS system status:
|
|
ERRORS |
Conditional |
Return information when Status = Failure. Return value will depend on the error. |
|
AUTHORIZATIONRESULT |
Conditional |
Return information when Status = Success. This value represents the application-level result that iATS processed the request:
|
|
CUSTOMERCODE |
Conditional |
|
Obtain List of all Customer Code Details
This service is to allow you to pull a full list of Customer Codes and their details. The call is setup to be pulled based on the creation time of the Customer Code, allowing you to obtain only those codes that were setup in a particular time frame, such as yesterday for example. These reports are available in either .csv or XML.
This call is available on either our NA or UK systems.
Depending on which server you require, you can find the SOAP request and response structures at the following URLs:
SOAP Request and Response Structure
The code below shows the SOAP request and response structure for the North American CSV version of “GetCustomerListByCreationTimeCSV”.
Notes:
Request (NA, for UK see link above)
POST /netgate/CustomerLinkv4.asmx HTTP/1.1 Host: www.iatspayments.com Content-Type: application/soap+xml; charset=utf-8 Content-Length: length
<?xml version="1.0" encoding="utf-8"?> <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> <soap12:Body> <GetCustomerListByCreationTimeCSV xmlns="https://www.iatspayments.com/NetGate/"> <agentCode>string</agentCode> <password>string</password> <customerIPAddress>string</customerIPAddress> <FromDate>dateTime</FromDate> <ToDate>dateTime</ToDate> </GetCustomerListByCreationTimeCSV> </soap12:Body> </soap12:Envelope> |
Response
HTTP/1.1 200 OK Content-Type: application/soap+xml; charset=utf-8 Content-Length: length
<?xml version="1.0" encoding="utf-8"?> <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> <soap12:Body> <GetCustomerListByCreationTimeCSVResponse xmlns="https://www.iatspayments.com/NetGate/"> <GetCustomerListByCreationTimeCSVResult>xml</GetCustomerListByCreationTimeCSVResult> </GetCustomerListByCreationTimeCSVResponse> </soap12:Body> </soap12:Envelope> |
Overview of Request Parameters
Here is an overview of the request parameters for the “GetCustomerListByCreationTimeCSV,” above. Parameters in red are mandatory.
Parameter |
Notes/Options |
Char. Limit |
agentCode |
10 |
|
password |
10 |
|
customerIPAddress |
This is the IP address of the donor’s computer. Please send to fully utilise the Fraud tools available from iATS. IPv4 or IPv6. |
|
FromDate |
Value=”dateTime”; ISO 8601 format. e.g. 2008-10-31T15:07:38.6875000 ("yyyy-MM-dd'T'HH:mm:ss.fffffffZ") |
|
ToDate |
Value=”dateTime”; ISO 8601 format. e.g. 2008-10-31T15:07:38.6875000 ("yyyy-MM-dd'T'HH:mm:ss.fffffffZ") |
Direct Debit collection is the preferred payment method for over 50% of the UK’s bill paying population for memberships, subscriptions, and donations. It is the method of electronically debiting funds directly from a Pound Sterling bank account in the UK.
UK Direct Debit processing is highly controlled by BACS (Bankers' Automated Clearing Services), and certain guidelines must be followed. Single one-time transactions and refunds are restricted for example, and only recurring scheduled transactions can be processed in the UK.
iATS uses a Direct Debiting Bureau partner to process Direct Debit transactions. For information regarding the set up a Direct Debit Merchant Account with iATS, please call 1.888.955.5545, Option 2 or email iats@iatspayments.com
Scheduling a new Direct Debit Instruction - Online vs. Offline Processing
A new Direct Debit Instruction can be scheduled either online via an organizations website, or offline via a software application.
** Important: As UK Direct Debit’s are strictly controlled by BACS, iATS must control the schedule for all Recurring donors.
** Important: As UK Direct Debit’s are strictly controlled by BACS, iATS must control the schedule for all Recurring donors.
For more information regarding the necessary pages and WebService calls needed for online scheduling, please refer to the Workflow Requirements for Online Direct Debit section below.
When a client is collecting new Direct Debit’s online, the webpages they use must be approved by a bank (or Smart Debit) to ensure they are meeting the Direct Debit BACS guidelines for formatting and content.
In the case where the client is building their own collection pages (such as using CustomerLink or AuraLink), or using a third party software, they need to be approved.
Who needs to provide the approval depends on their SUN type:
Workflow Requirements for Offline Direct Debit
For UK Direct Debit clients to validate and schedule Direct Debit Instructions on behalf of their donors, the following steps are required. For samples of the required phone script, please contact iATS at 1-888-955-5455, Option 1.
1. | Donor opts to provide the organization with their bank account details to start a new recurring Direct Debit Instruction over the phone (single transactions are not allowed). The client obtains the donors processing schedule, amount, personal details, etc. and enters it into a software tool which has been built to use our WebServices. Please note that due to the lengthy process of registering a new donor in the UK, there is a 12 day lead time required for all new Direct Debit schedules. Please ensure the client cannot select a begin date within 12 days of the current date. |
2. | Once the donor data has been received, their bank account details (Sort Number and Bank Account number) need to be verified for validation purposes.
While you are able to supply your own unique Reference ID if desired, we recommend leaving the value blank to allow iATS to create one. The format will be the 4 digit Client Code + Unique Number, for example “TEST123456”. If you choose to use your own Reference numbers instead, our system will check to ensure the number is unique, and send back an error if not. |
3. | Once the validation and creation of the Reference number has occurred, the donor’s bank and bank address details are supplied. The client must confirm that the details are correct with the donor on the phone. |
4. | Once confirmed, the donor’s details, all schedule and personal details they have already entered should be visible and confirmed with the donor. |
5. | After final confirmation has been received by the donor, the client will need to complete the schedule by creating a new Token (Customer Code) which will send these details to the iATS servers. You will need to program the “DirectDebitCreateACHEFTCustomerCodeV1” WebService below to obtain a new Token (Customer code) that links to the new Reference Number. |
6. | We recommend storing the Reference Number with the Token (Customer Code) for future reference. For information regarding how to update an existing Direct Debit reference, please see the CustomerLink WebService documentation. |
7. | Testing can be done using the UDDD88 UK Direct Debit test credentials found in the testing section of this document. |
8. | Once the new donor has been registered, our Direct Debit Acquiring Partner will send an email confirmation to the new donor confirming the details. These emails are also mandated by BACS and examples can be provided for reference if needed. If desired, you can take over the email notification process; however, different emails need to be sent for different update reasons and it’s usually easier to leave this task to them. |
9. | Six days before the Direct Debit process date, a file is sent for processing. Results can be pulled using ProcessLink if desired. |
Workflow Requirements for Online Direct Debit
For UK Direct Debit clients to validate and schedule Direct Debit Instructions via their website, the following steps are required. For samples of the required online pages, please click here. **Important: These pages have already been approved by the bank and should be followed exactly. Any format changes will result in the need to be approved by your UK bank.
1. | Donor selects recurring Direct Debit option on website (single transactions are not allowed), and enters processing schedule, amount, personal details, etc. Please note that due to the lengthy process of registering a new donor in the UK, there is a 12 day lead time required for all new Direct Debit schedules. Please ensure the donor cannot select a begin date within 12 days of the current date. |
2. | Donor is directed to the first of four required online pages, called the Declaration. This page asks the donor to checkmark a box indicating they wish to start a new Direct Debit Instruction. |
3. | Donor is directed to the second of four required online pages, called the Account/Payer Details page. This page asks the donor to enter their bank account details (Sort and Account) for validation purposes. Previously entered personal details can be carried over to pre-populate this form if desired.
Once the “proceed” button on the second page is clicked, the bank details will be displayed on the third page. During this call, a unique Reference Number is created and should also be displayed on the third online page. While you are able to supply your own unique Reference ID if desired, we recommend leaving the value blank to allow iATS to create one. The format will be the 4 digit Client Code + Unique Number, for example “TEST123456”. If you choose to use your own Reference numbers instead, our system will check to ensure the number is unique, and send back an error if not. |
4. | As the validation and creation of the Reference number is occurring, the donor will be directed to the third of four required online pages, called Validation Details and Confirmation. This page displays the donors’ bank account information, their new reference number, and all schedule and personal details they have already entered. Also, the Clients SUN (UK Direct Debit merchant number) must be displayed. The donor needs to review these details, and have the option to print or edit if needed. |
5. | As the donor clicks from the third page to the fourth and final required online page, you will need to program the “DirectDebitCreateACHEFTCustomerCodeV1” WebService to obtain a new Token (Customer code) that links to the new Reference Number. |
6. | If the post back URL has been set up for this AURA event, all details can be pushed to the URL specified. We recommend storing the Reference Number with the Token (Customer Code) for future reference. For information regarding how to update an existing Direct Debit reference, please see the CustomerLink WebService documentation. |
7. | Testing can be done using the UDDD88 UK Direct Debit test credentials found in the testing section of this document. |
8. | Once the new donor has been registered, the Direct Debit provider typically sends an email confirmation to the new donor confirming the details. These emails are also mandated by BACS and examples can be provided for reference if needed. If desired, you can take over the email notification process; however, different emails need to be sent for different update reasons and it’s usually easier to leave this task to them. |
9. | Six days before the Direct Debit process date, a file will be sent for processing. Results can be pulled using ProcessLink if desired. |
This call is used to perform the first step in creating a new UK Direct Debit Bank Debit Customer Code for UK Pound Sterling processing. This step both validates the bank account information, and creates or utilizes an existing Reference Number. The Reference Number is then used to create the Customer Code token for recurring processing with iATS.
If not already done, please read Section 6.1 for important information on our Direct Debit services.
This call is only available on our UK system.
SOAP Request and Response Server Addresses
You can find the SOAP request and response structures at the following URL:
SOAP Request and Response Structure
The code below shows the SOAP request and response structure for the North American version of “DirectDebitACHEFTPayerValidateV1”.
Notes:
Request
POST /netgate/CustomerLinkv4.asmx HTTP/1.1 Host: www.uk.iatspayments.com Content-Type: application/soap+xml; charset=utf-8 Content-Length: length
<?xml version="1.0" encoding="utf-8"?> <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> <soap12:Body> <DirectDebitACHEFTPayerValidate xmlns="https://www.iatspayments.com/NetGate/"> <agentCode>string</agentCode> <customerIPAddress>string</customerIPAddress> <ACHEFTReferenceNum>string</ACHEFTReferenceNum> <beginDate>dateTime</beginDate> <endDate>dateTime</endDate> <accountCustomerName>string</accountCustomerName> <accountNum>string</accountNum> <companyName>string</companyName> <firstName>string</firstName> <lastName>string</lastName> <address>string</address> <city>string</city> <state>string</state> <country>string</country> <email>string</email> <zipCode>string</zipCode> </DirectDebitACHEFTPayerValidate> </soap12:Body> </soap12:Envelope> |
Response
HTTP/1.1 200 OK Content-Type: application/soap+xml; charset=utf-8 Content-Length: length
<?xml version="1.0" encoding="utf-8"?> <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> <soap12:Body> <DirectDebitACHEFTPayerValidateResponse xmlns="https://www.iatspayments.com/NetGate/"> <DirectDebitACHEFTPayerValidateResult>xml</DirectDebitACHEFTPayerValidateResult> </DirectDebitACHEFTPayerValidateResponse> </soap12:Body> </soap12:Envelope> |
Overview of DD Validate Request Parameters
Here is an overview of the request parameters for the “DirectDebitACHEFTPayerValidateV1,” above. Parameters in red are mandatory.
Parameter |
Notes/Options |
Char. Limit |
agentCode |
10 |
|
customerIPAddress |
This is the IP address of the donor’s computer. Please send to fully utilise the Fraud tools available from iATS. IPv4 only. |
N/A |
ACHEFTReferenceNum |
Leave blank to allow iATS to create unique reference |
60 |
beginDate |
Value=”dateTime”; ISO 8601 format. |
N/A |
endDate |
Value=”dateTime”; ISO 8601 format. e.g. 2008-10-31T15:07:38.6875000 ("yyyy-MM-dd'T'HH:mm:ss.fffffffZ") |
N/A |
accountCustomerName |
Donor’s full name, or name on file with bank. If left empty we will use firstName + lastName and cut at 30 characters. |
30 |
accountNum |
GBP: Sort code (6 digits) + account no. (8 digits) |
32 digits |
companyName |
100 |
|
firstName |
100 |
|
lastName |
100 |
|
address |
100 |
|
city |
40 |
|
state |
State or province (North America only) |
40 |
country |
40 |
|
|
Optional but highly recommended for Smart Debit to send email communication to donor as per BACS requirements. |
100 |
zipCode |
40 |
DD Validate Sample Reply Message Format
The response message format will be as follows:
<IATSRESPONSE> <STATUS>StatusType</STATUS> <ERRORS>ErrorCodeType</ERRORS> <AUTHRESULT> <AUTHSTATUS>AuthorizationResultType</AUTHSTATUS> <AUTHCODE>AUTHCODE</AUTHCODE> <ACHREFNUM></ACHREFNUM> <BANKERROR>ErrorInfo</BANKERROR> <BANK_NAME></BANK_NAME> <BANK_BRANCH></BANK_BRANCH> <BANKADDRESS1></BANKADDRESS1> <BANKADDRESS2></BANKADDRESS2> <BANKADDRESS3></BANKADDRESS3> <BANKADDRESS4></BANKADDRESS4> <BANK_CITY></BANK_CITY> <BANK_STATE></BANK_STATE> <BANK_POSTCODE></BANK_POSTCODE> </AUTHRESULT> </IATSRESPONSE > |
The table below describes what can be expected for each of the return values:
Explanation of Sample Reply Message Format Values |
||
Return Value |
Occurrence |
Explanation |
STATUS |
Always |
The system-level acknowledgement code that indicates the iATS system status:
|
ERRORS |
Conditional |
Return information when Status = Failure. Return value will depend on the error. |
AUTHSTATUS |
Conditional |
Return information when Status = Success.
|
AUTHCODE |
Conditional |
Explanation for AUTHSTATUS REJ value; hidden if value is OK. |
BANKERROR |
Conditional |
Explanation for AUTHSTATUS REJ value; hidden if value is OK. |
This call is to create a Customer Code Token for recurring processing of UK Pound Sterling Direct Debit. If not already done, please read Section 6.1 for important information on our Direct Debit services.
When creating new tokens with a recurring schedule, the customer’s iATS account username, sub-code and password are included in the details that are sent to the iATS servers. For recurring schedules, please avoid using any sub-codes ending in 90-99 (for example ABDC99) as these will affect future scheduled transactions. We recommend using an 80 level code (eg ABDC80) for online webpage initiated schedules and a 01 level code (eg ABCD01) for offline software initiated schedules.
Please contact iATS support at webservice@iatspayments.com for more information or to request a new sub-code.
This call is only available on our UK system.
SOAP Request and Response Server Addresses
You can find the SOAP request and response structures at the following URL:
SOAP Request and Response Structure
The code below shows the SOAP request and response structure for the North American version of “DirectDebitCreateACHEFTCustomerCodeV1”.
Notes:
POST /netgate/CustomerLinkv4.asmx HTTP/1.1 Host: www.uk.iatspayments.com Content-Type: application/soap+xml; charset=utf-8 Content-Length: length
<?xml version="1.0" encoding="utf-8"?> <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> <soap12:Body> <DirectDebitCreateACHEFTCustomerCode xmlns="https://www.iatspayments.com/NetGate/"> <agentCode>string</agentCode> <password>string</password> <customerIPAddress>string</customerIPAddress> <customerCode>string</customerCode> <ACHEFTReferenceNum>string</ACHEFTReferenceNum> <firstName>string</firstName> <lastName>string</lastName> <companyName>string</companyName> <address>string</address> <city>string</city> <state>string</state> <zipCode>string</zipCode> <phone>string</phone> <fax>string</fax> <alternatePhone>string</alternatePhone> <email>string</email> <comment>string</comment> <recurring>boolean</recurring> <amount>string</amount> <beginDate>dateTime</beginDate> <endDate>dateTime</endDate> <scheduleType>string</scheduleType> <scheduleDate>string</scheduleDate> <accountCustomerName>string</accountCustomerName> <accountNum>string</accountNum> <accountType>string</accountType> <title>string</title> <country>string</country> <item1>string</item1> <item2>string</item2> <item3>string</item3> <item4>string</item4> <item5>string</item5> <item6>string</item6> </DirectDebitCreateACHEFTCustomerCode> </soap12:Body> </soap12:Envelope> |
Response
HTTP/1.1 200 OK Content-Type: application/soap+xml; charset=utf-8 Content-Length: length
<?xml version="1.0" encoding="utf-8"?> <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> <soap12:Body> <DirectDebitCreateACHEFTCustomerCodeResponse xmlns="https://www.iatspayments.com/NetGate/"> <DirectDebitCreateACHEFTCustomerCodeResult>xml</DirectDebitCreateACHEFTCustomerCodeResult> </DirectDebitCreateACHEFTCustomerCodeResponse> </soap12:Body> </soap12:Envelope> |
Overview of DD Create Request Parameters
Here is an overview of the request parameters for the “DirectDebitCreateACHEFTCustomerCodeV1,” above. Parameters in red are mandatory.
Parameter |
Notes/Options |
Char. Limit |
agentCode |
10 |
|
password |
10 |
|
customerIPAddress |
This is the IP address of the donor’s computer. Please send to fully utilise the Fraud tools available from iATS. IPv4 only. |
N/A |
customerCode |
You can provide the Token (Customer code); if none is present, iATS system will automatically assign one. |
40 |
ACHEFTReferenceNum |
The previously created Reference number (during Validation) needs to be captured from the validation response (<ACHREFNUM></ACHREFNUM> field) and included here to ensure the new token (Customer Code) is linked to the ref. |
60 |
firstName |
Donor’s full name or name on file with their bank. |
100 |
lastName |
100 |
|
companyName |
100 |
address |
100 |
|
city |
40 |
|
state |
State or province (North America only) |
40 |
zipCode |
40 |
|
phone |
40 |
|
fax |
40 |
|
alternatePhone |
Mobile |
40 |
|
100 |
|
comment |
100 |
|
recurring |
Boolean: true (1)/false (0) – Should be true (1) to schedule Recurring Direct Debit. |
N/A |
amount |
Prevent the use of commas (,) within the dollar amount fields if possible. iATS reads a comma as a period in this field to compensate for different countries use of the comma within currency. For example: $1,000 |
N/A |
beginDate |
Value=”dateTime”; ISO 8601 format. |
N/A |
endDate |
Value=”dateTime”; ISO 8601 format. e.g. 2008-10-31T15:07:38.6875000 ("yyyy-MM-dd'T'HH:mm:ss.fffffffZ") |
N/A |
scheduleType |
Options: Weekly, Monthly, Quarterly, Annually |
N/A |
scheduleDate |
Options: Monthly: 1~28,29,30 or 31; Weekly: 1~7; |
N/A |
accountCustomerName |
Donor’s full name, or name on file with bank. If left blank we will use firstName + lastName and cut at 30 characters. |
30 |
accountNum |
GBP: Sort code (6 digits) + account no. (8 digits) |
32 digits |
accountType |
Options: CHECKING, SAVING (NA accounts only). These values are case sensitive and must be in capital letters. |
N/A |
title |
||
country |
||
item1 |
||
item2 |
||
item3 |
||
item4 |
||
item5 |
||
item6 |
Sample Reply Message Format
The response message format will be as follows:
<IATSRESPONSE> <STATUS>StatusType</STATUS> <ERRORS>ErrorCodeType</ERRORS> <PROCESSRESULT> <AUTHORIZATIONRESULT>AuthorizationResultType</AUTHORIZATIONRESULT> <CUSTOMERCODE>CustomerCode</CUSTOMERCODE> <REGISTERREFNUMRESULT>RegisterResult</REGISTERREFNUMRESULT> <BANKERROR>ErrorMessage</BANKERROR> <ACHEFTREFERENCENUM>ReferenceNumber</ACHEFTREFERENCENUM> </PROCESSRESULT> </IATSRESPONSE > |
The table below describes what can be expected for each of the return values:
Explanation of Sample Reply Message Format Values |
||
Return Value |
Occurrence |
Explanation |
STATUS |
Always |
The system-level acknowledgement code that indicates the iATS system status:
|
ERRORS |
Conditional |
Return information when Status = Failure. Return value will depend on the error. |
AUTHORIZATIONRESULT |
Conditional |
Return information when Status = Success. This value represents the application-level result that iATS processed the request:
|
CUSTOMERCODE |
Conditional |
Return information when Status = Success and AUTHORIZATIONRESULT = OK; value is new Token (Customer code). |
REGISTERREFNUMRESULT |
Conditional
|
Return information when status = Success and AUTHORIZATIONRESULT = OK. Value is ACHEFT registration result from bank. |
BANKERROR |
Conditional |
Return error information when REGISTERREFNUMRESULT is Registration REJ. |
ACHEFTREFERENCENUM |
Conditional |
Return information when status = Success and AUTHORIZATIONRESULT = OK. Value is ACHEFT reference number iATS has registered with bank. |
This call is to perform an update on a Direct Debit Customer Code token using direct debit.
This call is only available on our UK system.
Due to strict BACS regulations regarding Direct Debit amendments, the client should have the ability to update only certain information via the WebService. For example, data such as the donors bank account information cannot be updated in full via iATS as the donor is required to contact their bank directly to update their details.
Some donor details can be updated within iATS via the WebService first and in turn, iATS will push the amended details to our Direct Debit Acquirer and updated as needed.
For more information regarding which fields should be open to the client to update, see the below table:
Change Request: |
Action Needed: |
A Cancellation request has been received on a BACS report, or has been requested directly by the donor. Note: If the DDI is cancelled in error or needs to be re-established, we recommend creating a new Customer Code token/new DDI instead of reactivating. |
The Direct Debit Instruction can be cancelled via the iATS Customer Code Token.
|
Change of banking details received on BACS report (actual account details are included), and are updated by Smart Debit automatically.
|
Amend the account details via WebService for record keeping purposes only. |
Change of schedule date or end date request received from Donor. This includes the option to “pause” a gift cycle temporarily. |
The Schedule details can be amended via the Update Customer Code token call. To “pause” a gift cycle, simple change the “Begin Date” field to a future date. iATS will ignore the schedule until the new Begin Date passes.
|
Change of dollar amount request received from the donor. |
Amend the amount field via WebService. Due to lengthy lead times to process Direct Debit transactions in the UK, all changes must be made at least 6 days in advance to affect the next payment.
|
Change of donor’s name, address or email address received from the donor |
Amend the details via WebService. The new information will automatically be pushed to Direct Debit Acquirer to update their records.
|
Soap Request and Response Server Addresses
You can find the SOAP request and response structures at the following URL:
SOAP Request and Response Structure
The code below shows the SOAP request and response structure for the North American version of “DirectDebitUpdateACHEFTCustomerCodeV1”.
Notes:
Request
POST /netgate/CustomerLinkv4.asmx HTTP/1.1 Host: www.uk.iatspayments.com Content-Type: application/soap+xml; charset=utf-8 Content-Length: length
<?xml version="1.0" encoding="utf-8"?> <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> <soap12:Body> <DirectDebitUpdateACHEFTCustomerCode xmlns="https://www.iatspayments.com/NetGate/"> <agentCode>string</agentCode> <password>string</password> <customerIPAddress>string</customerIPAddress> <customerCode>string</customerCode> <firstName>string</firstName> <lastName>string</lastName> <companyName>string</companyName> <address>string</address> <city>string</city> <state>string</state> <zipCode>string</zipCode> <phone>string</phone> <fax>string</fax> <alternatePhone>string</alternatePhone> <email>string</email> <comment>string</comment> <recurring>boolean</recurring> <amount>string</amount> <beginDate>dateTime</beginDate> <endDate>dateTime</endDate> <scheduleType>string</scheduleType> <scheduleDate>string</scheduleDate> <accountCustomerName>string</accountCustomerName> <accountNum>string</accountNum> <accountType>string</accountType> <updateAccountNum>boolean</updateAccountNum> <title>string</title> <country>string</country> <item1>string</item1> <item2>string</item2> <item3>string</item3> <item4>string</item4> <item5>string</item5> <item6>string</item6> </DirectDebitUpdateACHEFTCustomerCode> </soap12:Body> </soap12:Envelope> |
Response
HTTP/1.1 200 OK Content-Type: application/soap+xml; charset=utf-8 Content-Length: length
<?xml version="1.0" encoding="utf-8"?> <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> <soap12:Body> <DirectDebitUpdateACHEFTCustomerCodeResponse xmlns="https://www.iatspayments.com/NetGate/"> <DirectDebitUpdateACHEFTCustomerCodeResult>xml</DirectDebitUpdateACHEFTCustomerCodeResult> </DirectDebitUpdateACHEFTCustomerCodeResponse> </soap12:Body> </soap12:Envelope> |
Overview of Request Parameters
Here is an overview of the request parameters for “DirectDebitUpdateACHEFTCustomerCodeV1,” above. Parameters in red are mandatory.
Parameter |
Notes/Options |
Char. Limit |
agentCode |
10 |
|
password |
10 |
|
customerIPAddress |
This is the IP address of the donor’s computer. Please send to fully utilise the Fraud tools available from iATS. IPv4 only. |
N/A |
customerCode |
Existing Token (Customer code) |
40 |
firstName |
Donor’s full name or name on file with their bank. |
100 |
lastName |
100 |
|
companyName |
100 |
|
address |
100 |
|
city |
40 |
|
state |
State or province (North America only) |
40 |
zipCode |
40 |
|
phone |
40 |
fax |
40 |
|
alternatePhone |
Mobile |
40 |
|
100 |
|
comment |
100 |
|
recurring |
Boolean: true (1)/false (0) |
N/A |
amount |
Must be sent at least 6 days in advance of next debit. |
N/A |
beginDate |
Value=”dateTime”; ISO 8601 format.
|
N/A |
endDate |
Value=”dateTime”; ISO 8601 format. e.g. 2008-10-31T15:07:38.6875000 ("yyyy-MM-dd'T'HH:mm:ss.fffffffZ") |
N/A |
scheduleType |
Options: Weekly, Monthly, Quarterly, Annually
|
N/A |
scheduleDate |
Options: Monthly: 1~28,29,30 or 31; Weekly: 1~7; Quarterly or Annually: empty string
|
N/A |
accountCustomerName |
Donor’s full name or name on file with their bank. If left empty we will use firstName + lastName and cut at 30 characters. |
30 |
accountNum |
GBP: Sort code (6 digits) + account no. (8 digits)
|
32 digits |
accountType |
Options: CHECKING, SAVING (NA only) |
N/A |
updateAccountNum |
Boolean: true (1)/false (0) |
N/A |
title |
|
|
country |
|
|
item1 | ||
item2 | ||
item3 |
|
|
item4 |
||
item5 |
||
item6 |
Sample Reply Message Format
The response message format will be as follows:
<IATSRESPONSE> <STATUS>StatusType</STATUS> <ERRORS>ErrorCodeType</ERRORS> <PROCESSRESULT> <AUTHORIZATIONRESULT>AuthorizationResultType</AUTHORIZATIONRESULT> <CUSTOMERCODE>CustomerCode</CUSTOMERCODE> <REGISTERREFNUMRESULT>RegisterResult</REGISTERREFNUMRESULT> <BANKERROR>ErrorMessage</BANKERROR> <ACHEFTREFERENCENUM>ReferenceNumber</ACHEFTREFERENCENUM> </PROCESSRESULT> </IATSRESPONSE > |
The table below describes what can be expected for each of the return values:
Explanation of Sample Reply Message Format Values |
||
Return Value |
Occurrence |
Explanation |
STATUS |
Always |
The system-level acknowledgement code that indicates the iATS system status:
|
ERRORS |
Conditional |
Return information when Status = Failure. Return value will depend on the error. |
CUSTOMERCODE |
Conditional |
Return information when Status = Success. This value represents the application-level result that iATS processed the request:
|
CUSTOMERCODE |
Conditional |
Return information when Status = Success and AUTHORIZATIONRESULT = OK; value is existing Token (Customer code) that has been inputted. |
REGISTERREFNUMRESULT |
Conditional |
Return information when status = Success and AUTHORIZATIONRESULT = OK. Value is ACHEFT registration result from bank. |
BANKERROR |
Conditional |
Return error information when REGISTERREFNUMRESULT is Registration REJ. |
ACHEFTREFERENCENUM |
Conditional
|
Return information when status = Success and AUTHORIZATIONRESULT = OK. Value is ACHEFT reference number iATS has registered with bank. |
The Single Euro Payments Area (SEPA) is a payment-integration initiative of the European Union for simplification of bank transfers denominated in Euro.
SEPA processing is very similar to the ACHEFT and Direct Debit UK systems however it has its own regulations and best practices that need to be followed. We have introduced three new API calls focused on creating a Mandate ID (unique reference number for each donors schedule), creating a new Customer Code Token utilizing the Mandate ID, and to update a SEPA Customer Code Token.
iATS uses the international bank JP Morgan to process SEPA transactions. For more information regarding SEPA and how to set up a Merchant Account with iATS, please email iats@iatspayments.com or call 1.888.955.5455, Option 2.
Scheduling a new SEPA Debit Instruction - Online vs. Offline Processing
A new SEPA Debit Instruction can be scheduled either online via an organizations website, or offline via a software application.
Workflow for Offline or Online SEPA Debit
Regardless of the method of collection, a donor’s recurring schedule must be issued a Mandate ID and a new iATS Customer Code Token.
Full details of these calls can be found in the following sections.
This call is to create a new SEPA Mandate ID for use with SEPA Debit recurring Customer Code Tokens. If not already done, please read Section 5 for information on our SEPA services.
This call is only available on our UK systems.
SOAP Request and Response Server Addresses
Depending on which server you require, you can find the SOAP request and response structures at the following URLs:
SOAP Request and Response Structure
The code below shows the SOAP request and response structure for “SEPAGenerateMandateId”.
Notes:
The request parameter placeholders shown (e.g., “string”, “dateTime,” etc.) need to be replaced with actual values.
Request (Euro currency on UK server only)
POST /netgate/CustomerLinkv2.asmx HTTP/1.1 Host: www.uk.iatspayments.com Content-Type: application/soap+xml; charset=utf-8 Content-Length: length
<?xml version="1.0" encoding="utf-8"?> <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> <soap12:Body> <SEPAGenerateMandateId xmlns="https://www.iatspayments.com/NetGate/"> <agentCode>string</agentCode> <password>string</password> <customerIPAddress>string</customerIPAddress> </SEPAGenerateMandateId> </soap12:Body> </soap12:Envelope> |
Response
HTTP/1.1 200 OK Content-Type: application/soap+xml; charset=utf-8 Content-Length: length
<?xml version="1.0" encoding="utf-8"?> <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> <soap12:Body> <SEPAGenerateMandateIdResponse xmlns="https://www.iatspayments.com/NetGate/"> <SEPAGenerateMandateIdResult>xml</SEPAGenerateMandateIdResult> </SEPAGenerateMandateIdResponse> </soap12:Body> </soap12:Envelope> |
Overview of DD Validate Request Parameters
Here is an overview of the request parameters for the “SEPAGenerateMandateId,” above. Parameters in red are mandatory.
Parameter |
Notes/Options |
Char. Limit |
agentCode |
Client’s six digit iATS Sub-Code |
10 |
Password |
Password assigned to Sub-Code |
10 |
customerIPAddress |
This is the IP address of the donor’s computer. Please send to fully utilise the Fraud tools available from iATS. IPv4 only. |
N/A |
Sample Reply Message Format
<IATSRESPONSE xmlns=""> <STATUS>Success</STATUS> <ERRORS/> <PROCESSRESULT> <AUTHORIZATIONRESULT>result</AUTHORIZATIONRESULT> <GENERATEDSEPAMANDATEID>MandateID</GENERATEDSEPAMANDATEID> </PROCESSRESULT> </IATSRESPONSE> |
The table below describes what can be expected for each of the return values:
Explanation of Sample Reply Message Values |
||
Return Value |
Occurrence |
Explanation |
STATUS |
Always |
The system-level acknowledgement code that indicates the iATS system status:
|
ERRORS |
Conditional |
Return information when Status = Failure. Return value will depend on the error. |
AUTHORIZATIONRESULT |
Conditional |
Return information when Status = Success. • OK - Request has been approved • Error - Request not approved, an error has occurred—possibly due to problems in delivery, attempt by end-user to submit invalid or missing data, etc. iATS does not currently have a list of possible error messages as they can be sent due to different types of processing and from different components, etc. Reject 3: Customer Code does not exist |
GENERATEDSEPAMANDATEID |
Conditional |
Return information when Status = Success and AUTHORIZATIONRESULT = OK; value is new Mandate ID. |
This call is to create a new SEPA Customer Code for setting up new recurring SEPA Euro Bank Debit transactions. If not already done, please read Section 5 for information on our SEPA services.
This call is only available on our UK systems.
SOAP Request and Response Server Addresses
Depending on which server you require, you can find the SOAP request and response structures at the following URLs:
SOAP Request and Response Structure
The code below shows the SOAP request and response structure for “SEPACreateACHEFTCustomerCode”.
Notes:
Request (UK International Only)
POST /netgate/CustomerLinkv2.asmx HTTP/1.1 Host: www.uk.iatspayments.com Content-Type: application/soap+xml; charset=utf-8 Content-Length: length
<?xml version="1.0" encoding="utf-8"?> <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> <soap12:Body> <SEPACreateACHEFTCustomerCode xmlns="https://www.iatspayments.com/NetGate/"> <agentCode>string</agentCode> <password>string</password> <customerIPAddress>string</customerIPAddress> <customerCode>string</customerCode> <firstName>string</firstName> <lastName>string</lastName> <companyName>string</companyName> <address>string</address> <city>string</city> <state>string</state> <zipCode>string</zipCode> <phone>string</phone> <fax>string</fax> <alternatePhone>string</alternatePhone> <email>string</email> <comment>string</comment> <recurring>boolean</recurring> <amount>string</amount> <beginDate>dateTime</beginDate> <endDate>dateTime</endDate> <scheduleType>string</scheduleType> <scheduleDate>string</scheduleDate> <accountCustomerName>string</accountCustomerName> <accountNum>string</accountNum> <accountType>string</accountType> <SEPABankId>string</SEPABankId> <SEPAMandateId>string</SEPAMandateId> <SEPAMandateSigningDate>dateTime</SEPAMandateSigningDate> <title>string</title> <country>string</country> <item1>string</item1> <item2>string</item2> <item3>string</item3> <item4>string</item4> <item5>string</item5> <item6>string</item6> </SEPACreateACHEFTCustomerCode> </soap12:Body> </soap12:Envelope> |
Response
HTTP/1.1 200 OK Content-Type: application/soap+xml; charset=utf-8 Content-Length: length
<?xml version="1.0" encoding="utf-8"?> <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> <soap12:Body> <SEPACreateACHEFTCustomerCodeResponse xmlns="https://www.iatspayments.com/NetGate/"> <SEPACreateACHEFTCustomerCodeResult>xml</SEPACreateACHEFTCustomerCodeResult> </SEPACreateACHEFTCustomerCodeResponse> </soap12:Body> </soap12:Envelope> |
Overview of Request Parameters
Here is an overview of the request parameters for the “SEPACreateACHEFTCustomerCode” above. Parameters in red are mandatory.
Parameter |
Notes/Options |
Char. Limit |
agentCode |
Clients six digit iATS Sub-Code |
10 |
password |
Password assigned to iATS Sub-Code |
10 |
customerIPAddress |
This is the IP address of the donor’s computer. Please send to fully utilise the Fraud tools available from iATS. IPv4 only. |
N/A |
customerCode |
You can provide the Token (Customer code); if none is present, iATS system will automatically assign one (recommended) |
40 |
firstName |
Donor’s full name or name on file with their bank. |
100 |
lastName |
100 |
|
companyName |
100 |
|
address |
100 |
|
city |
40 |
|
state |
40 |
|
zipCode |
40 |
phone |
40 |
|
fax |
40 |
|
alternatePhone |
Mobile |
40 |
|
100 |
|
comment |
100 |
|
recurring |
Boolean: true (1)/false (0) – Should be true (1) to schedule Recurring SEPA Debit. |
N/A |
amount |
Prevent the use of commas (,) within the dollar amount fields if possible. iATS reads a comma as a period in this field to compensate for different countries use of the comma within currency. For example: $1,000 |
N/A |
beginDate |
Value=”dateTime”; ISO 8601 format. e.g. 2008-10-31T15:07:38.6875000 ("yyyy-MM-dd'T'HH:mm:ss.fffffffZ"). |
N/A |
endDate |
Value=”dateTime”; ISO 8601 format. e.g. 2008-10-31T15:07:38.6875000 ("yyyy-MM-dd'T'HH:mm:ss.fffffffZ") |
N/A |
scheduleType |
Options: Weekly, Monthly, Quarterly, Annually |
N/A |
scheduleDate |
Options: Monthly: 1~28,29,30 or 31; Weekly: 1~7; |
N/A |
accountCustomerName |
Donor’s full name, or name on file with bank. If left blank we will use firstName + lastName and cut at 30 characters. |
30 |
accountNum |
EURO IBAN (Account) – AphaNumeric *NO spaces* |
32 digits |
accountType |
Options: CHECKING, SAVING (NA accounts only). These values are case sensitive and must be in capital letters. |
N/A |
SEPABankId |
EURO Bank Id (BIC) *NO spaces* |
N/A |
SEPAMandateId |
Mandate ID previously generated using the Mandate Generate API call. If preferred you can supply your own unique properly formatted Mandate though we recommend having iATS auto-generate one for you. |
N/A |
SEPAMandateSigningDate |
Value=”dateTime”; ISO 8601 format. e.g. 2008-10-31T15:07:38.6875000 ("yyyy-MM-dd'T'HH:mm:ss.fffffffZ") |
N/A |
**Use Today’s date. This signifies the donor agrees to the recurring schedule on today’s date. Should not be amended or changed in the future. |
||
title |
||
country |
||
item1 |
||
item2 |
||
item3 |
||
item4 |
||
item5 |
||
item6 |
Sample Reply Message Format
The response message format will be as follows:
<IATSRESPONSE> <STATUS>StatusType</STATUS> <ERRORS>ErrorCodeType</ERRORS> <PROCESSRESULT> <AUTHORIZATIONRESULT>AuthorizationResultType </AUTHORIZATIONRESULT> <CUSTOMERCODE>CustomerCode</CUSTOMERCODE> </PROCESSRESULT> </IATSRESPONSE > |
The table below describes what can be expected for each of the return values:
Explanation of Sample Reply Message Values |
||
Return Value |
Occurrence |
Explanation |
STATUS |
Always |
The system-level acknowledgement code that indicates the iATS system status:
|
ERRORS |
Conditional |
Return information when Status = Failure. Return value will depend on the error. |
AUTHORIZATIONRESULT |
Conditional |
Return information when Status = Success. This value represents the application-level result that iATS processed the request:
|
CUSTOMERCODE |
Conditional
|
Return information when Status = Success and AUTHORIZATIONRESULT = OK; value is new Token (Customer code). |
This call is to create a new SEPA Customer Code for setting up new recurring SEPA Euro Bank Debit transactions. If not already done, please read Section 5 for information on our SEPA services.
This call is only available on our UK systems.
Important: In order to avoid data integrity issues when updating values within an existing Customer Code (Token), we recommend calling the existing values from the iATS Servers first and then the sending the update call. For example:
** If you are not updating the Bank Account numbers, use the value **** (four star symbols) in the Account and BankID fields. This will ensure the details are not overwritten with a blank value.
SOAP Request and Response Server Addresses
Depending on which server you require, you can find the SOAP request and response structures at the following URLs:
SOAP Request and Response Structure
The code below shows the SOAP request and response structure for “SEPAUpdateACHEFTCustomerCode”.
Notes:
The request parameter placeholders shown (e.g., “string”, “dateTime,” etc.) need to be replaced with actual values.
Request (Euro SEPA Customer Codes Only on UK Server)
POST /netgate/CustomerLinkv2.asmx HTTP/1.1 Host: www.uk.iatspayments.com Content-Type: application/soap+xml; charset=utf-8 Content-Length: length
<?xml version="1.0" encoding="utf-8"?> <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> <soap12:Body> <SEPAUpdateACHEFTCustomerCode xmlns="https://www.iatspayments.com/NetGate/"> <agentCode>string</agentCode> <password>string</password> <customerIPAddress>string</customerIPAddress> <customerCode>string</customerCode> <firstName>string</firstName> <lastName>string</lastName> <companyName>string</companyName> <address>string</address> <city>string</city> <state>string</state> <zipCode>string</zipCode> <phone>string</phone> <fax>string</fax> <alternatePhone>string</alternatePhone> <email>string</email> <comment>string</comment> <recurring>boolean</recurring> <amount>string</amount> <beginDate>dateTime</beginDate> <endDate>dateTime</endDate> <scheduleType>string</scheduleType> <scheduleDate>string</scheduleDate> <accountCustomerName>string</accountCustomerName> <accountNum>string</accountNum> <accountType>string</accountType> <updateAccountNum>boolean</updateAccountNum> <SEPABankId>string</SEPABankId> <SEPAMandateId>string</SEPAMandateId> <SEPAMandateSigningDate>dateTime</SEPAMandateSigningDate> <title>string</title> <country>string</country> <item1>string</item1> <item2>string</item2> <item3>string</item3> <item4>string</item4> <item5>string</item5> <item6>string</item6> </SEPAUpdateACHEFTCustomerCode> </soap12:Body> </soap12:Envelope> |
Response
HTTP/1.1 200 OK Content-Type: application/soap+xml; charset=utf-8 Content-Length: length
<?xml version="1.0" encoding="utf-8"?> <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> <soap12:Body> <SEPAUpdateACHEFTCustomerCodeResponse xmlns="https://www.iatspayments.com/NetGate/"> <SEPAUpdateACHEFTCustomerCodeResult>xml</SEPAUpdateACHEFTCustomerCodeResult> </SEPAUpdateACHEFTCustomerCodeResponse> </soap12:Body> </soap12:Envelope> |
Overview of Request Parameters
Here is an overview of the request parameters for “SEPAUpdateACHEFTCustomerCode,” above. Parameters in red are mandatory.
Parameter |
Notes/Options |
Char. Limit |
agentCode |
iATS six digit Sub-Code |
10 |
password |
Password for Sub-Code |
10 |
customerIPAddress |
This is the IP address of the donor’s computer. Please send to fully utilise the Fraud tools available from iATS. IPv4 only. |
N/A |
customerCode |
Existing Token (Customer code) |
40 |
firstName |
Donor’s full name or name on file with their bank. |
100 |
lastName |
100 |
|
companyName |
100 |
|
address |
100 |
|
city |
40 |
|
state |
40 |
|
zipCode |
40 |
|
phone |
40 |
fax |
40 |
|
alternatePhone |
Mobile |
40 |
|
100 |
|
comment |
100 |
|
recurring |
Boolean: true (1)/false (0) |
N/A |
amount |
Prevent the use of commas (,) within the dollar amount fields if possible. iATS reads a comma as a period in this field to compensate for different countries use of the comma within currency. For example: $1,000 |
N/A |
beginDate |
Value=”dateTime”; ISO 8601 format. e.g. 2008-10-31T15:07:38.6875000 ("yyyy-MM-dd'T'HH:mm:ss.fffffffZ"). |
N/A |
endDate |
Value=”dateTime”; ISO 8601 format. e.g. 2008-10-31T15:07:38.6875000 ("yyyy-MM-dd'T'HH:mm:ss.fffffffZ") |
N/A |
scheduleType |
Options: Weekly, Monthly, Quarterly, Annually |
N/A |
scheduleDate |
Options: Monthly: 1~28,29,30 or 31; Weekly: 1~7; Quarterly or Annually: empty string |
N/A |
accountCustomerName |
Donor’s full name or name on file with their bank. If left empty we will use firstName + lastName and cut at 30 characters. |
30 |
accountNum |
EURO IBAN (Account) – AphaNumeric *NO spaces* |
N/A |
accountType |
Options: CHECKING, SAVING (NA only). These values are case sensitive and must be in capital letters. |
N/A |
updateAccountNum |
Boolean: true (1)/false (0) |
N/A |
SEPABankId |
EURO Bank Id (BIC) *NO spaces* |
N/A |
SEPAMandateId |
Mandate ID previously generated using the Mandate Generate API call. **DO NOT UPDATE** |
N/A |
SEPAMandateSigningDate |
Value=”dateTime”; ISO 8601 format. e.g. 2008-10-31T15:07:38.6875000 ("yyyy-MM-dd'T'HH:mm:ss.fffffffZ") **DO NOT UPDATE** |
N/A |
title |
||
country |
||
item1 |
||
item2 |
||
item3 |
||
item4 |
||
item5 |
||
item6 |
Sample Reply Message Format
<IATSRESPONSE> <STATUS>StatusType</STATUS> <ERRORS>ErrorCodeType</ERRORS> <PROCESSRESULT> <AUTHORIZATIONRESULT>AuthorizationResultType </AUTHORIZATIONRESULT> <CUSTOMERCODE>CustomerCode</CUSTOMERCODE> </PROCESSRESULT> </IATSRESPONSE > |
The table below describes what can be expected for each of the return values:
Explanation of Sample Reply Message Values |
||
Return Value |
Occurrence |
Explanation |
STATUS |
Always |
The system-level acknowledgement code that indicates the iATS system status:
|
ERRORS |
Conditional |
Return information when Status = Failure. Return value will depend on the error. |
AUTHORIZATIONRESULT |
Conditional |
Return information when Status = Success. This value represents the application-level result that iATS processed the request:
|
CUSTOMERCODE |
Conditional |
Return information when Status = Success and AUTHORIZATIONRESULT = OK; value is existing Token (Customer code) that has been inputted. |
The TEST88 and AURA88 iATS Client Codes have been created to allow for testing iATS Payments systems, now available for both Credit Card and dynamic North American ACH/EFT processing.
These accounts are not live merchant accounts, therefore Authorization and Rejection results are not real.
Please note that this test information is provided to many clients, therefore please do not modify or delete any pre-existing Aura Event’s or change the password of this code.
User ID = TEST88
Password = TEST88
OR
User ID = AURA88
Password = AURA88
URL: NA = www.iatspayments.com
Credit Card Testing
Notes on Credit Card processing:
4222222222222220
Amount |
Results when using Visa (4111111111111111), MC, AMX or DSC #’s above |
1.00 |
OK: 678594 |
2.00 |
REJ: 15 |
3.00 |
OK: 678594 |
4.00 |
REJ: 15 |
5.00 |
REJ: 15 |
6.00 |
OK: 678594:X |
7.00 |
OK: 678594:y |
8.00 |
OK: 678594:A |
9.00 |
OK: 678594:Z |
10.00 |
OK: 678594:N |
15.00 |
If CVV2 = 1234, the response is OK: 678594:Y. If no CVV2 is entered, the response is REJ: 19 |
16.00 |
REJ: 2 |
17.00 |
REJ: 22 |
Amount |
Results when using Visa (4111111111111111), MC, AMX or DSC #’s above |
192.00 (NA Only) |
If sent via API (iATSLink or WebService) a) IP address is invalid format: Rej: 5. |
All Other Amounts |
REJ: 15 |
All Refund Amounts |
REJ: 15 |
Amount |
Results when using 4222222222222220 only |
Any Sale Amount |
OK: 678594 |
Any Refund Amount |
OK: 678594 |
Please note there is a transaction limit of $2000.00 (£2000.00) per charge. Amounts above will be Rej:39
North American ACH/EFT Debit Testing
Notes on ACH Processing:
Canada Bank: 123 Transit: 00000 Account: 123456 |
USD Routing: 111111111 Account: 12345678 |
ACH Dynamic Testing Parameters:
Desired Final Status |
Amount Value to Use |
Results and Timing |
Approved |
$1.00 |
Final status received within 1 Business day
|
Rejected |
Any value except $1.00 and $3.00 |
Final status received within 1 Business day
|
Returned |
$3.00 |
Final status received within 1 Business day
|
Please note there is a tranasction limit of $2000.00 per charge. Amounts above will Rej:39
UDDD88 can be used to test UK Direct Debit data. To obtain your own unique testing code, please email partners@iatspayments.com.
"UDDD88” Account Details for UK Direct Debit only:
The elements in the below table may or may not apply directly to the ProcessLink WebServices. All possible element options which are currently available within the different CustomerLink, ProcessLink, AuraLink, and ReportLink API calls are listed below.
For more information or if you have any questions, please reach out to iATS at webservice@iatspayments.com.
Element |
Definition |
Association |
AC1, AC2 |
Account1, Account2, |
Start element |
ACH |
ACHEFT |
Start element |
ACN |
Account number |
ACHEFT |
ACTYP |
Account type |
ACHEFT |
ADD |
Address |
Customer |
AGT |
Agent |
Transaction |
AMT |
Amount |
Transaction/recurring |
ANM |
Anonymous |
Transaction |
BD |
Begin date |
Recurring |
CC |
Credit card |
Start element |
CCN |
Credit card number |
Credit card |
CM |
Comment |
Transaction/customer |
CNT |
Country |
Customer |
CO |
Company |
Customer |
CST |
Customer |
Start element |
CSTC |
Token (Customer Code) |
Customer |
CSTN |
Customer name |
Credit card/ACHEFT |
CTY |
City |
Customer |
DTM |
Date and time |
Transaction |
ED |
End date |
Recurring |
EM |
|
Customer |
EXP |
Expiry |
Credit card
|
FLN |
Full name |
Customer |
FN |
First name |
Customer |
FX |
Fax |
Customer |
INV |
Invoice |
Transaction |
IT1, IT2,.. |
Item1, item2, etc. |
Transaction |
LN |
Last name |
Customer |
MB |
Mobile |
Customer |
MP |
Method of payment |
Credit card |
PH |
Phone |
Customer |
RCR |
Recurring |
Start element |
RE |
Received email |
Transaction |
RST |
Result |
Transaction |
SCHD |
Schedule date |
Recurring |
SCHTYP |
Schedule type |
Recurring |
ST |
State |
Customer |
TN |
Transaction |
Start element |
TNID |
Transaction ID |
Transaction |
TNTYP |
Transaction type |
Transaction |
ZC |
Zip code |
Customer |