Developers

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

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).

CustomerLink (4)
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:

  • Create ACH or Credit Card Customer Code Tokens
  • Obtain details and update data within an ACH or Credit Card Customer Code Token
  • Pull a list of all Customer Code Tokens and their details
  • Setup new UK Direct Debit Recurring Customer Code Tokens
  • Setup new Euro SEPA Recurring Customer Code Tokens

 

North American API Directory: https://www.iatspayments.com/netgate/customerlinkv4.asmx

API Directory: https://www.uk.iatspayments.com/netgate/ProcessLinkv2.asmx


MENU:

  1. What is a Customer Code Token?
  2. Notes on Recurring Processing with iATS Payments
  3. How do iATS Web Services Work?
  4. Calls to Create Customer Code Tokens
  5. Calls to Obtain Details, Update, and Delete a Customer Code
  6. Calls to Create and Update a Bank Debit Customer Code for UK Direct Debit
  7. Calls to Create and Update a Bank Debit Customer Code for Euro SEPA Processing
  8. Appendix A: Testing iATS Payments Systems
  9. Appendix B: Definition of XML Element Abbreviations

 

1. What is a Customer Code Token?

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):

  1. If iATS manages the recurring schedule:
    1. You use CustomerLink to setup the recurring details (creditcard, start/end date, etc.) with the recurring tag set to true (1).
  2. If you manage the recurring schedule:
      1. You use CustomerLink to set up the individual Tokens (Customercodes) with the recurring tag set to false (0);

      2. You then send a batch file containing the Tokens (Customer codes) using ProcessLink, or

      3. Process a single transaction using either of the following ProcessLink services (depending on whether the transaction is using a credit card or ACHEFT): ProcessCreditCardWithCustomerCodeV1 or ProcessACHEFTWithCustomerCodeV1.

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.

iATS held auto-processing for Recurring Transactions: Logic Explained

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.

Customer Code Overview:
  • Recurring scheduling and payment details are stored within iATS servers as "Customer Codes". These customer codes can be created and edited, but not deleted once a transaction has been processed.
  • If the Recurring function of a Customer Code is enabled, it is flagged as Status “ON” or 1 in Boolean. If it's not functional i.e. you are holding the schedule instead of iATS, the flag is OFF, 0 in Boolean.
  • The Recurring function contains fields which tell the iATS system when to auto- process transactions against the donors payment details, which include:
    • Enable Recurring Payments toggle, which indicates if the auto-process function is ON or OFF.
    • Recurring Schedule, with options of Monthly, Annual, Quarterly, and Weekly.
    • Schedule Date, with options for the Weekly (days of the week) and Monthly (dates of the month) types. The Begin Date field is utilized instead for Annual and Quarterly types.
    • Begin Date which indicates when the processing should begin. iATS will ignore a Customer Code until this date.
    • End Date which indicates when the processing should end. iATS will ignore a Customer Code token once this date has passed.
      https://c.na10.content.force.com/servlet/servlet.ImageServer?id=015F0000004LD97&oid=00DA0000000ZyVz
  • Recurring credit card transactions are processed at 3am each day, with the exception of newly created/modified tokens which have today as the schedule date. These are processed within the hour.
  • Recurring ACH recurring transactions are processed at 3am & 3pm on Monday/Tuesday, and 3am on Wednesdays, Thursdays, and Fridays, excluding holidays.
  • Recurring transactions scheduled to process on the 29th - 31st will be processed on the actual last date of the given month should it not exist. Example, a donation scheduled to be processed on the 31st of each month will be processed on the 30th of November.

What happens when the schedule fields are modified?

  • If a recurring transaction is attempted and either approved or rejected, a flag is added to the Customer Code on our server to indicated the transaction was attempted to ensure it is not re-attempted during the same Recurring Schedule cycle (Month, Year, etc). This flag will be removed if you modify the Schedule Date, Schedule Type, or Begin Date fields. When these fields are modified, another transaction will be re- attempted as per the new schedule cycle. The exception is for Quarterly schedule types. We will not reattempt in these cases, even if the schedule fields are modified.
  • If the Customer Code Recurring Status field is OFF (0), and values are sent to update the recurring schedule details, iATS will ignore the values and not validate them to ensure proper format. When the status is OFF, we utilize our own internal placeholder values to ensure data quality.
    • Recurring Type will be default to Monthly
    • Schedule Date will be default to 1
    • Begin Date and End Date will be defaulted to 2000-01-01
  • If the Customer Code Recurring Status field is ON (1), and values are sent to update the recurring schedule details, iATS will perform a validation on the Recurring Type and Schedule Date to make sure the values are in the proper format. We DO NOT currently perform a validation on the Begin Date or End Date value, and we encourage you to ensure you are passing the values correctly to prevent errors. The Begin Date must be a date later than the current date or an error is received.
  • If the Customer Code Recurring Status field is OFF (0), and is updated to ON (1), iATS will automatically process a new transaction if one hasn't yet been attempted for the Recurring Schedule cycle.

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.

Back to Top

2. Notes on Recurring Processing with iATS Payments

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:

  1. If iATS manages the recurring schedule:
    1. You use CustomerLink to setup the recurring details (credit card, start/end date, etc.) with the recurring tag set to true (1)
  2. If you manage the recurring schedule:
    1. You use CustomerLink to setup the individual Tokens (CustomerCodes) with the recurring tag set to false (0);
    2. You then send a batch file containing the Tokens (CustomerCodes) using ProcessLink;
    3. Or process a single transaction using either of the following ProcessLink services (depending on whether the transaction is using a credit card or ACHEFT): “ProcessCreditCardWithCustomerCodeV1” or “ProcessACHEFTWithCustomerCodeV1.”

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 

 

3. How do iATS Web Services work?

  

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:

  • An envelope element that identifies the XML document as a SOAP message
  • A header element that contains header information
  • A body element that contains call and response information
  • A fault element containing errors and status information

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:

  • Explanation of the specific Web service. 
  • NA and UK server addresses for the Web service. 
  • Example of the SOAP request and response structure.  
  • Overview of the parameters included in the service. Please note: 
    • String type parameters in red should have actual values.  
    • Though some string type parameters are not required, it is best practice to include all the parameters in the same sequence when sending their request to iATS web service server. Leave the value blank if it is not required (Example: <customerIPAddress></customerIPAddress>). 
    • Parameters with Boolean or DateTime as data types should always have the actual values and never leave these blank (Example: give 0 as default value of Boolean parameters if not required).  
    • The XML element value will be “string” (e.g., letters or numerals) unless otherwise noted. (For more details on any of the elements, please see Appendix C: Definition of XML Element Abbreviations.)  
    • The tag name in the XML/SOAP message format is case sensitive. For example, agentCode will work, but agentcode will not. 
    • Character limits for string values will be noted where applicable. 
    • Characters values are all case sensitive and should be entered as shown in the call unless otherwise specified. 
    • For setting the time, our servers are in the following time zones: 
    • North America server: PST  
    • UK server: GMT 
    • For setting the date, both the North America and UK WebServices utilize standard xml Date Time type as the parameter. Please use the ISO 8601 format, e.g. 2008-10-31T15:07:38.6875000 ("yyyy-MM-dd'T'HH:mm:ss.fffffffZ") wherever the date should be included in your code. 
    • iATS utilizes maintenance/update windows of 10:00 pm to 11:00 pm in both Pacific and GMT each day. While downtime, if any, is minimal we highly discourage sending batch processing transactions during this time.  
    • Daily cut-off times are aligned with those of our processing banks and are as follows: 
    • 2am PT / 5am ET for US Merchants 
    • 11pm PT / 2am ET for Canadian Merchants 
    • 12 Midnight GMT for all UK and International Merchants 
    • Values requiring a True/False response should be entered as 1/0 within the code. Note that if left blank or NULL is used, we will default to True (1). 
    • Where possible, it’s recommended to prevent the use of comma’s (,) within the dollar amount fields. 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 should be not allowed. 

     

  • Explanation of return values to expect in typical responses. Please note:
    • ACH transactions are not processed in real time. When an ACH transaction is submitted, iATS provides a general response of OK:555555, which indicates iATS has received the transaction attempt and that the request is pending approval.
     

     

Back to Top

4. Calls to Create Customer Code Tokens


Create a Customer Code for Credit Card

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:

  1. You use CustomerLink to set up the recurring details (credit card, start/end date, etc.) with the recurring tag set to true (1).
If you manage the recurring schedule:
  1. You use CustomerLink to set up the individual Tokens (Customer Codes) with the recurring tag set to false (0); 
  • CreateCreditCardCustomerCode

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: 

  • This code corresponds to SOAP 1.2 shown at the NA server address above.
  • The addresses above also contain the code for SOAP 1.1 if you require it.
  • The request parameter placeholders shown (e.g., “string”, “dateTime,” etc.) need to be replaced with actual values.
 

Request (NA server, please use link above for UK server)

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>
<CreateCreditCardCustomerCode 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>

<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

email

 

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

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:

  • Success - iATS system processing succeeded.
  • Failure - An error has occurred on the iATS system side, such as a database or server down.

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
  • 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 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).

 

 

Create a Customer Code for Bank Account for NA or AUD

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:

  1. You use CustomerLink to set up there curring details (credit card, start/end date, etc.) with the recurring tag set to true (1).

If you manage the recurring schedule:

  1. You use CustomerLink to set up the individual Tokens (Customer Codes) with the recurring tag set to false (0);
  • CreateACHEFTCustomerCode

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:

  • This code corresponds to SOAP 1.2 shown at the NA server address above.
  • The addresses above also contain the code for SOAP 1.1 if you require it.

The request parameter placeholders shown (e.g., “string”, “dateTime”, etc.) need to be replaced with actual values.

Back to Top

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

email 

 

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

  • USD: Routing no. (9 digits) + account no. (# of digits varies)  
  • CAD: Bank no. (3 digits) + transit no. (5 digits) + account no. (# of digits varies) 
  • AUD: BIC (Bank ID) + IBAN bank account.  

* 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:

  • Success - iATS system processing succeeded.

  • Failure - An error has occurred on the iATS system side, such as a database or server down.

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 
  • 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 

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).

 

Back to Top

5. Calls to Obtain Details, Update, and Delete a 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:

  • GetCustomerCodeDetail
  • UpdateCreditCardCustomerCode
  • UpdateACHEFTCustomerCode
  • DeleteCustomerCode
  • GetCustomerListByCreationTimeCSV
  • GetCustomerListByCreationTimeXML

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.


Notes on how to perform Customer Code Token Updates

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:

  1. Call “GetCustomerCodeDetail” method to get all information within the existing Customer Code (Token) from iATS servers.
  2. Change the fields that should be updated. **See recommendations regarding updates below.
  3. Call UpdateCreditCardCustomerCode to pass new information to be stored within iATS servers.

** 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.


Obtain the Details of a Specific Customer Code Token

This call is to obtain the details of a specific Customer Code (any method of payment) to prepare for an update.

  • GetCustomerCodeDetail

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:

  • This code corresponds to SOAP 1.2 shown at the NA server address above.
  • The addresses above also contain the code for SOAP 1.1 if you require it.
  • The request parameter placeholders shown (e.g., “string”, “dateTime,” etc.) need to be replaced with actual values.
 

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

 
Sample Reply Message Format
If the request for GetCustomerCodeDetailV1 fails, the response 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:

  • Success - iATS system processing succeeded.
  • Failure - An error has occurred on the iATS system side, such as a database or server down.

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.

  • 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. 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 = Error. The value is the Token (Customer code) that has been inputted.

 

Back to Top

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> 

Email

<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>

 
 
Pulling the details for a Credit Card, ACHEFT, UK Direct Debit, or Euro SEPA Debit Customer Code Token will result in different values due to the account detail fields.
 
Update a Credit Card Customer Code

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:

  1. Call GetCustomerCodeDetail method to get all information within the existing Customer Code (Token) from iATS servers.
  2. Change the fields that should be updated. **See recommendations regarding updates below.
  3. Call UpdateCreditCardCustomerCode to pass new information to be stored within iATS servers.

** 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.

  • UpdateCreditCardCustomerCode

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:

  • This code corresponds to SOAP 1.2 shown at the NA server address above.
  • The addresses above also contain the code for SOAP 1.1 if you require it.
  • The request parameter placeholders shown (e.g., “string”, “dateTime,” etc.) need to be replaced with actual values.


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

email

 

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

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:

  • Success - iATS system processing succeeded.

  • Failure - An error has occurred on the iATS system side, such as a database or server down.

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
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 Or Account num is too long

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.

 

Back to Top

Update a Bank Debit Customer Code for NA and AUD

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:

  1. Call GetCustomerCodeDetail method to get all information within the existing Customer Code (Token) from iATS servers.
  2. Change the fields that should be updated. **See recommendations regarding updates below.
  3. Call UpdateACHEFTCustomerCode to pass new information to be stored within iATS servers.

** 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.

  • UpdateACHEFTCustomerCode

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:

  • This code corresponds to SOAP 1.2 shown at the NA server address above.
  • The addresses above also contain the code for SOAP 1.1 if you require it.
  • The request parameter placeholders shown (e.g., “string”, “dateTime,” etc.) need to be replaced with actual values.
 

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

email

 

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

  • USD: Routing no. (9 digits) + account no. (# of digits varies)  
  • CAD: Bank no. (3 digits) + transit no. (5 digits) + account no. (# of digits varies) 
  • AUD: BIC (Bank ID) + IBAN bank account.  
    * 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 

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:

  • Success - iATS system processing succeeded.

  • Failure - An error has occurred on the iATS system side, such as a database or server down.

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
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 Or Account num is too long

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.

 

Delete a Customer Code

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.

  • DeleteCustomerCode

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:

  • This code corresponds to SOAP 1.2 shown at the NA server address above.
  • The addresses above also contain the code for SOAP 1.1 if you require it.
  • The request parameter placeholders shown (e.g., “string”, “dateTime,” etc.) need to be replaced with actual values.

 

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.
This is the IP address of the donor’s computer. Please send to fully utilise the Fraud tools available from iATS. IPv4 or IPv6.

 

customerCode

Will be existing Token (Customer code).

40

 
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:

  • Success - iATS system processing succeeded.
  • Failure - An error has occurred on the iATS system side, such as a database or server down.

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
  • 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 

    Or Account num is too long 

    Reject 40: Invalid card number

CUSTOMERCODE

Conditional

Return information when Status = Success and delete Token (Customer code) successfully.

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.

  • GetCustomerListByCreationTimeCSV
  • GetCustomerListByCreationTimeXML

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:

  • This code corresponds to SOAP 1.2 shown at the NA server address above.
  • The addresses above also contain the code for SOAP 1.1 if you require it.
  • The request parameter placeholders shown (e.g., “string”, “dateTime,” etc.) need to be replaced with actual values.

 

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")

 

6. Calls to Create and Update a Bank Debit Customer Code for UK Direct Debit


Notes on Workflow for UK Direct Debit

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.

  • Offline Software: Scheduling a new Direct Debit Instruction via internal software on behalf of a donor is considered a phone order, and should only be set-up with the donor on the phone while a BACS mandated phone script is read to the donor. The process of setting up a new DD Instruction with iATS must include a number of WebService calls to validate the donors bank account details and create a new Token (Customer Code).

** Important: As UK Direct Debit’s are strictly controlled by BACS, iATS must control the schedule for all Recurring donors.

  • Online Website: Scheduling a new Direct Debit Instruction via an organizations website should be handled by the donor directly. The donor must read and complete four BACS mandated web pages that become visible on the client’s website when the Direct Debit method of payment is selected, and bank account validation must be completed before the Token (Customer Code) is created.

** 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:

  • When a client applies for their Direct Debit merchant account and brings their own SUN with them, their Bank Manager needs to approve the new pages.

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.  
  • In order to validate the donors bank account details and pull their bank name and address (for visual verification purposes), you will need to program the DirectDebitACHEFTPayerValidateV1” WebService to validate the payer details before the Token (Customer Code) can be created next. During this call, a unique Reference Number is also created and should also be displayed for the client to provide the donor.  

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.  
  • In order to validate the donors bank account details and pull their bank name and address (for visual verification purposes), you will need to program the DirectDebitACHEFTPayerValidateV1” WebService to validate the payer details as the donor clicks to the next page as per the instructions in the next section.  

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. 

Back to Top

Validating Account and Create Direct Debit Reference Number – Step 1

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.

  • These calls are located within the UK CustomerLink directory and point to our UK server.
  • No one-time/single debits are permitted.
  • iATS must hold the recurring schedule for all Direct Debit transactions. For DD, iATS must manage the recurring schedule: You use CustomerLink to set up the recurring details (credit card, start/end date, etc.) with the recurring tag set to true (1).

If not already done, please read Section 6.1 for important information on our Direct Debit services.

  • DirectDebitACHEFTPayerValidateV1

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:

  • This code corresponds to SOAP 1.2 shown at the UK server address above.
  • The addresses above also contain the code for SOAP 1.1 if you require it.
  • The request parameter placeholders shown (e.g., “string”, “dateTime,” etc.) need to be replaced with actual values.

 

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.
e.g. 2008-10-31T15:07:38.6875000 ("yyyy-MM-dd'T'HH:mm:ss.fffffffZ")
Due to BACS registration lead times, new DD Tokens (Customer codes) must begin at least 12 days from current date.

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)
*Order must be followed with NO spaces*

32 digits

companyName

 

100

firstName

 

100

lastName

 

100

address

 

100

city

 

40

state

State or province (North America only)

40

country

 

40

email

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:

  • Success - iATS system processing succeeded.
  • Failure - An error has occurred on the iATS system side, such as a database or server down.

ERRORS

Conditional

Return information when Status = Failure. Return value will depend on the error.

AUTHSTATUS

Conditional

Return information when Status = Success.
This value represents the application-level result that iATS processed the request:

  • OK - ACHEFT validation result is OK
  • REJ - ACHEFT validation result is Reject. Reject reason will be return in <AUTHCODE> or <BANKERROR>

AUTHCODE

Conditional

Explanation for AUTHSTATUS REJ value; hidden if value is OK.

BANKERROR

Conditional

Explanation for AUTHSTATUS REJ value; hidden if value is OK.

 

 

Create a Recurring Customer Code for UK Direct Debit – Step 2

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.

  • DirectDebitCreateACHEFTCustomerCodeV1

 

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:

  • This code corresponds to SOAP 1.2 shown at the UK server address above.
  • The addresses above also contain the code for SOAP 1.1 if you require it.
  • The request parameter placeholders shown (e.g., “string”, “dateTime,” etc.) need to be replaced with actual values.
 
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> 

    <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

email

 

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.
e.g. 2008-10-31T15:07:38.6875000 ("yyyy-MM-dd'T'HH:mm:ss.fffffffZ").
Due to BACS registration lead times, new DD Tokens (Customer codes) must begin at least 12 days from current date.

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 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)
*Order must be followed with NO spaces*

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:

  • Success - iATS system processing succeeded.
  • Failure - An error has occurred on the iATS system side, such as a database or server down.

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
  • Error - Request not approved, an error has occurred—possibly due to problems in delivery, attempt by end-user tosubmit 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 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).

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.

 
Updating Token (Customer code) Using UK Direct Debit

This call is to perform an update on a Direct Debit Customer Code token using direct debit.

  • DirectDebitUpdateACHEFTCustomerCodeV1

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.

  • iATS: Via WebService, the Token (Customer Code) recurring status should be turned “Off” (False), which automatically sends a call to cancel the DDI within Smart Debit/BACS.
  • Cancellation email sent to donor by Smart Debit.

Change of banking details received on BACS report (actual account details are included), and are updated by Smart Debit automatically.

  • If the client received this request directly from the donor, they must advise the donor to contact their bank to change the details directly instead.

Amend the account details via WebService for record keeping purposes only.
iATS does not send the account details to the Direct Debit Acquirer.

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.

  • Amendment email sent to donor by Direct Debit Acquirer.

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 Instruction email sent to donor by Direct Debit Acquirer.

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.

  • Change of Instruction email sent to donor by Direct Debit Acquirer.

 

 

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:

  • This code corresponds to SOAP 1.2 shown at the UK server address above.
  • The addresses above also contain the code for SOAP 1.1 if you require it.
  • The request parameter placeholders shown (e.g., “string”, “dateTime,” etc.) need to be replaced with actual values.

 

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

email

 

100

comment

 

100

recurring

Boolean: true (1)/false (0)

N/A

amount

Must be sent at least 6 days in advance of next debit.
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"). Due to BACS registration lead times, new DD Tokens (Customer codes) must begin at least 12 days from current date.

  • Update not recommended. Instead, existing schedule should be cancelled and a new one set up.

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

  • Update not recommended. Instead, existing schedule should be cancelled and a new one set up.

N/A

scheduleDate

Options: Monthly: 1~28,29,30 or 31; Weekly: 1~7; Quarterly or Annually: empty string

  • Update not recommended. Instead, existing schedule should be cancelled and a new one set up.

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)
*Order must be followed with NO spaces*

  • Should only be updated for

    record keeping purposes. Data not pushed to Smart Debit as all donors must update their account details via their bank directly.

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:

  • Success - iATS system processing succeeded.
  • Failure - An error has occurred on the iATS system side, such as a database or server down.

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:

  • 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 Or Account num is too long 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.

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.
 

7. Calls to Create and update a Bank Debit Customer Code for Euro SEPA Processing

Notes on Euro SEPA Debit

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.

  • These calls are located within the UK CustomerLink directory and point to our UK server.
  • At this time iATS only accommodates for Recurring SEPA Debit donations. No one-time/Single debits are permitted.
  • iATS must hold the recurring schedule for all SEPA Debit transactions. For SEPA, iATS must manage the recurring schedule: You use CustomerLink to set up the recurring details (credit card, start/end date, etc.) with the recurring tag set to true (1).

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.

  • Offline Software: Scheduling a new SEPA Debit Instruction via internal software on behalf of a donor is considered a phone order. The process of setting up a new SEPA Debit with iATS must include a number of WebService calls to create a Mandate ID and a new Token (Customer Code).
    ** Important: At this time iATS MUST control the schedule for all Recurring SEPA donors.
  • Online Website: Scheduling a new SEPA Debit Instruction via website is considered an eMandate. The process of setting up a new SEPA Debit with iATS must include a number of WebService calls to create a Mandate ID and a new Token (Customer Code).
 

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.

  1. Using the SEPAGenerateMandateId call, iATS will create a unique, properly formatted Mandate ID which you will use to create a new Customer Code token. This Mandate ID cannot be changed and will be tied to the Customer Code token for the life of the donation schedule.
  2. Next, using the SEPACreateACHEFTCustomerCodeV1 call, create a SEPA Debit Customer Code Token to store the donor’s bank account details, the donation schedule, and the Mandate ID. The donor’s information and schedule details can be amended in the future if needed.
  3. If needed, you can use the SEPAUpdateACHEFTCustomerCodeV1call to update the token details at a later time, including the ability to cancel the donor’s schedule.

Full details of these calls can be found in the following sections.

 
Create Mandate ID for Euro SEPA Debit – Step 1

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.

  • SEPAGenerateMandateId

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:

  • This code corresponds to SOAP 1.2 shown at the UK server address above.
  • The addresses above also contain the code for SOAP 1.1 if you require it.

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:

  • Success - iATS system processing succeeded.

  • Failure - An error has occurred on the iATS system side, such as a database or server down.

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 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
Or Account num is too long
Reject 40: Invalid card number

GENERATEDSEPAMANDATEID

Conditional

Return information when Status = Success and AUTHORIZATIONRESULT = OK; value is new Mandate ID.

 
Create a Recurring Customer Code for Euro SEPA Debit – Step 2

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.

  • SEPACreateACHEFTCustomerCode

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:

  • This code corresponds to SOAP 1.2 shown at the UK server address above.
  • The addresses above also contain the code for SOAP 1.1 if you require it. The request parameter placeholders shown (e.g., “string”, “dateTime,” etc.) need to be replaced with actual values.
 

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

email

 

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;
Quarterly or Annually: leave empty string

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.
Ignore for SEPA.

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:

  • Success - iATS system processing succeeded.
  • Failure - An error has occurred on the iATS system side, such as a database or server down.

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
  • 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 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).

 
Update a SEPA Debit Customer Code Token (Euro Use Only)

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.

  • SEPAUpdateACHEFTCustomerCode

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:

  1. Call GetCustomerCodeDetailV1 method to get all information within the existing Customer Code (Token) from iATS servers.
  2. Change the fields that should be updated. **See recommendations regarding updates below.
  3. Call SEPAUpdateACHEFTCustomerCodeV1 to pass new information to be stored within iATS servers.

** 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:

  • This code corresponds to SOAP 1.2 shown at the UK server address above.
  • The addresses above also contain the code for SOAP 1.1 if you require it.

The request parameter placeholders shown (e.g., “string”, “dateTime,” etc.) need to be replaced with actual values.

Back to Top

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

email

 

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:

  • Success - iATS system processing succeeded.
  • Failure - An error has occurred on the iATS system side, such as a database or server down.

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
  • 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 Or Account num is too long  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.

  

Appendix A: Testing iATS Payments Systems

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

                    UK = www.uk.iatspayments.com

 

Credit Card Testing

 

Notes on Credit Card processing:

  • To test the Authorization and Rejection responses related to a Charge, use
    • Visa number 411111111111111
    • MC number 5111111111111118
    • AMX number 371111111111114
    • DSC number 6011111111111117
  • To test the Auth responses related to both Charges and Refunds, use credit card number
      4222222222222220
  • If needed, use any 3 digit CVV2 for Visa, MC and DSC. Use any 4 digit CVV2 for AMX.

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.
b)
IP address is valid format: OK: 678594.

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

  • For Direct Post Method, the NA and UK TEST88 Process Key credentials are: PA0940D765F2BD67BD97B82EFAA4D72BE9

North American ACH/EFT Debit Testing

Notes on ACH Processing:

  • ACH/EFT Transaction processing is not processed in “Real Time” like credit card transactions and there can be processing delays while the data is moving between iATS, our Bank and the donors Bank.
  • Live and Test ACH/EFT processing is sent to the bank as per the following schedule:
    • Monday and Tuesday: File sent twice per day (3am and 3pm)
    • Wednesday to Friday: File sent once per day (3pm)
    • No files are sent over the weekend or on US bank holidays.
  • When ACH/EFT transactions are sent to iATS for processing, there are three stages which each transaction will go through:
    • “Tobesent” - The transaction is waiting to be sent to iATS’ bank as per above schedule.
    • “Pending” - The transactions have been sent to the bank, but final approval/rejection has not been received from the bank (1 Business day in general).
    • “OK:BankAccept”, or “OK:Reject” – The final results from the bank indicating approval or decline. Check the Details of the Reject Journal on the iATS Portal for more information.
    • “Return” - A separate Return record may be recorded on the iATS Journal report. These may be posted at any future date, and has been issued by the bank or donor. Check the Details of the Return report on the iATS Portal for more information.
  • For North American ACH testing, any account details can be used however we recommend:

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

  • Status will be dynamically changed from ToBeSent (initial value) to Pending as per schedule in notes above.
  • Will be changed to Approved approx. 1 hour after sent to bank.

Rejected

Any value except $1.00 and $3.00

Final status received within 1 Business day

  • Status will be dynamically changed from ToBeSent (initial value) to Pending as per schedule in notes above.
  • Will be changed to Rejected approx. 1 hour after sent to bank.

Returned

$3.00

Final status received within 1 Business day

  • Status will be dynamically changed from ToBeSent (initial value) to Pending as per schedule in notes above.
  • Will be changed to Approved approx. 1 hour after sent to bank.
  • A new Return record will be created and posted the next 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:

  • User ID: UDDD88
  • Password: DDTEST16
  • URL:
    • UK: www.uk.iatspayments.com

Appendix B: Definition of XML Element Abbreviations

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

Email

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

 

Contact Us