ACH - Secure Trading

ACH
Automated Clearing House (ACH) transactions allow the Merchant to
accept payment from or make a payment to the Customer’s Bank
Account.
Version: 1.11
Published: 7 April 2017
ACH
Table of Contents
1
Introduction ...................................................................................................................................... 3
1.1
1.2
1.3
2
Overview .................................................................................................................................... 3
Account Configuration ................................................................................................................ 3
Chargebacks .............................................................................................................................. 3
Process overview ............................................................................................................................. 4
2.1
2.2
2.3
2.4
2.5
2.6
2.7
3
Summary .................................................................................................................................... 4
Account Check ........................................................................................................................... 6
Authorisation Request ................................................................................................................ 8
Settlement .................................................................................................................................. 9
Confirmation ............................................................................................................................. 10
Settle Status ............................................................................................................................. 11
Refunds .................................................................................................................................... 12
ACH Account Check ...................................................................................................................... 13
3.1
3.2
4
XML ACH Account Check Request ......................................................................................... 13
XML ACH Account Check Response ....................................................................................... 18
ACH Authorisation ......................................................................................................................... 23
4.1
4.2
5
XML ACH Authorisation Request ............................................................................................. 23
XML ACH Authorisation Response .......................................................................................... 27
ACH Authorisation with Account Check ..................................................................................... 31
5.1
5.2
6
XML ACH Authorisation with Account Check Request ............................................................ 31
XML ACH Authorisation with Account Check Response ......................................................... 34
ACH Refund .................................................................................................................................... 37
6.1
6.2
7
XML ACH Refund Request ...................................................................................................... 37
XML ACH Refund Response ................................................................................................... 40
ACH Transaction Query................................................................................................................. 42
7.1
7.2
8
XML ACH Transaction Query Request .................................................................................... 42
XML ACH Transaction Query Response ................................................................................. 42
ACH Transaction Update ............................................................................................................... 43
8.1
8.2
9
XML Transaction Update Request Example ............................................................................ 43
XML Transaction Update Response Example ......................................................................... 43
Additional Notes ............................................................................................................................. 44
9.1
9.2
9.3
9.4
9.5
10
10.1
10.2
11
11.1
11.2
11.3
11.4
12
System Limitations ................................................................................................................... 44
Card Store ................................................................................................................................ 44
Subscriptions and Tokenisation ............................................................................................... 44
Supported Currencies .............................................................................................................. 44
Mail or Telephone Order .......................................................................................................... 44
Testing......................................................................................................................................... 45
Account Check Requests (ACCOUNTCHECK) ....................................................................... 45
Authorisation Requests (AUTH) and Chargebacks (CHARGEBACK) .................................... 45
Further Information and Support ............................................................................................. 48
Secure Trading Support ........................................................................................................... 48
Secure Trading Sales ............................................................................................................... 48
Useful Documents .................................................................................................................... 48
Frequently Asked Questions .................................................................................................... 48
Appendix ..................................................................................................................................... 49
© Secure Trading Limited 2017
7 April 2017
Page 2 / 51
ACH
1
Introduction
Automated Clearing House (ACH) bank transfers allow the merchant to accept payment directly
from a customer’s bank account. The merchant can also transfer money directly to a customer’s
bank account, either by refunding a previous transaction, or by performing a Cardholder Funds
Transfer (CFT) Request.
1.1
Overview
This document describes processing ACH Bank Transfers using the Secure Trading Payment
Platform (STPP). It pays specific attention to the XML fields used to create ACH Requests and
the information returned in the Response.
The examples specified may include other fields not covered in this document. Details of these
fields are available in the STPP XML Specification (see section 11.3 Useful Documents on
page 48).
Of the fields outlined within this document, Secure Trading may add
additional fields and tags in the future; we would therefore recommend that
you do not build your application to only accept these tags.
Please note the order of the tags cannot be guaranteed. Some tags may be
returned in a different order to the examples in this document.
1.2
Account Configuration
There are a few steps the merchant needs to have considered to begin processing ACH bank
transfers. The merchant may require new accounts with different providers.
1.2.1
Acquiring Bank
The merchant must have an account with an acquirer that supports ACH bank transfers and is
integrated with Secure Trading.
1.2.2
Secure Trading
The merchant will need to have an account with Secure Trading. For more information, contact
Secure Trading Sales (see section 11.2 Secure Trading Sales on page 48).
The merchant will need to provide the support team with their ACH account details to allow
them to enable ACH on their Secure Trading account (see section 11.1 Secure Trading
Support on page 48).
1.2.3
Notifications
Secure Trading recommends that all merchants implementing ACH bank transfers configure
URL notifications to be kept informed of when ACH transfers have been updated/completed on
their accounts. For more information, please refer to the Notifications documentation (see
section 11.3 Useful Documents on page 48).
1.3
Chargebacks
ACH transactions may be subject to Chargebacks. An ACH Chargeback is a payment that is
initiated when a customer successfully disputes an item on their bank account statement. The
full amount is transferred back to the customer’s account from the merchant’s, on request of the
customer’s bank. It is strongly recommended that all merchants with ACH accounts read Secure
Trading’s Chargeback documentation (see section 11.3 Useful Documents on page 48) so
that they are fully aware of the Chargeback process and how to manage them.
© Secure Trading Limited 2017
7 April 2017
Page 3 / 51
ACH
2
Process overview
2.1
Summary
There are a number of different parties involved in Automated Clearing House (ACH) bank
transfers. These are listed, below:
The Customer - The purchaser of goods or services. They will process a payment by
supplying their ACH bank details to the merchant.
The Merchant – The seller of goods or services. They will need to have an account with
Secure Trading.
Secure Trading – The Payment Service Provider. They facilitate the transaction, by
securely contacting the merchant’s acquiring bank.
The Merchant’s Bank – Performs checks on the customer’s bank account details and
authorises transfers.
Below is a summary of the process of a typical ACH bank transfer:
Sending the XML Request
In a typical transaction where the customer is paying the merchant, the customer sends their
bank details directly to the merchant, who then constructs an Account Check and Authorisation
(AUTH) XML Request and submits it to Secure Trading’s Payment Gateway.
Account Check
Secure Trading then securely contacts the merchant’s acquirer, which carries out checks on the
payment details provided by the customer and returns the results of these checks back to
Secure Trading. The merchant may decide to not proceed with the processing of further
transactions, if the Account Check Response does not match a certain criteria, by establishing
rules with the Secure Trading support team. Otherwise, Secure Trading will securely contact the
merchant’s acquirer to seek authorisation for the bank transfer.
Authorisation
Secure Trading will contact the merchant’s acquiring bank to arrange for Authorisation. Secure
Trading will automatically schedule settlement on all recently authorised payments.
Transfers that have been declined by the merchant’s acquirer are cancelled immediately.
Settlement
Secure Trading checks for confirmation that the transfer was settled, daily. After a holding
period defined by the merchant’s acquirer, the acquirer informs Secure Trading that the transfer
was either settled or cancelled, and they update their records respectively.
© Secure Trading Limited 2017
7 April 2017
Page 4 / 51
ACH
Diagram of Entire Process Overview – Combined Account Check with Authorisation Request
Account Check
Step 1) The Customer
opts to make an ACH
Bank Transfer on the
merchant’s website.
Step 2) The Merchant
submits an XML Request
to Secure Trading.
Step 3) Secure Trading
validates the Request
and sends the
Customer’s bank details
to the Merchant’s Bank.
Step 4) Merchant Bank
processes the Account
Check request received and
returns a response.
Step 5) Secure Trading
receives results of the
checks from the
Merchant’s Bank.
Step 6) If the Account Check returns a
NOT MATCHED response, the Merchant
will receive an XML Response and the
Authorisation will NOT proceed.
NOT MATCHED – (4)
Bank concludes Customer’s
account is high risk.
MATCHED – (2)
Bank concludes Customer’s
account is low risk.
NOT CHECKED – (1)
Bank undecided or unable
to complete checks.
Authorisation
Step 7) Secure Trading sends
details to the Merchant’s Bank to
authorise the transfer.
Step 9) The Merchant receives an XML
Response from Secure Trading
containing results of Account Check and
Authorisation.
Step 8) The Merchant’s
Bank processes the
request and updates their
records.


DECLINED
AUTHORISED
Settlement
Step 10) Secure Trading sends
details to the Merchant’s Bank to
settle the transfer.
Step 12) Any settlement notifications that
have been configured would be sent once
transactions have been officially
confirmed to be cancelled or settled.

Step 11) Secure Trading
regularly checks for
confirmation from the
Merchant’s Bank.

SETTLED
CANCELLED
The Merchant’s Bank
The Merchant’s Bank
informs Secure Trading that informs Secure Trading that
the funds were not
the funds have been settled.
transferred.
© Secure Trading Limited 2017
7 April 2017
Page 5 / 51
ACH
2.2
Account Check
An Account Check is an optional request that allows payment details to be validated by
checking the account’s status. No funds will be reserved or transferred by the Account Check
Request. Secure Trading allows Account Checks to be carried out on ACH accounts for select
acquirers. Please contact support for information on which Acquirers support Account Check
(see section 11.1 Secure Trading Support).
The merchant may decide to not proceed with the processing of further transactions, if the
Account Check Response does not match a certain criteria. This is achieved by contacting the
support team and setting up rules that act on the security response field.
The following steps outline the process of sending an Account Check Request to Secure
Trading:
Step 1) The Merchant
submits an XML Request
to Secure Trading.
Step 2) Secure Trading
validates the Request
and sends the
Customer’s bank details
to the Merchant’s Bank.
Step 3) The Bank
performs verification
checks; is the Customer’s
account valid and in good
standing?
Step 5) Secure Trading
receives the results of
these checks from the
Merchant’s Bank.
Step 4) The Bank checks
the Customer’s details
against a National
negative database.
Step 6) The Merchant
receives an XML
Response from Secure
Trading with results of
the checks.
NOT CHECKED – (1)
Bank undecided or unable
to complete checks.
MATCHED – (2)
Bank concludes Customer’s
account is low risk.
NOT MATCHED – (4)
Bank concludes Customer’s
account is high risk.
Figure 1 - Process Overview of Account Check for ACH
© Secure Trading Limited 2017
7 April 2017
Page 6 / 51
ACH
2.2.1
Account Verification Check
The merchant’s acquirer will perform checks to verify that the customer’s account is valid and in
good standing. The response returned following these checks can either be ‘2 – Matched’ (low
risk), ‘4 – Not Matched’ (high risk) or ‘1 – Not Checked’. Transactions that do not receive a
definitive response may be checked against the negative database (see section 2.2.2 Negative
Database). Secure Trading recommends against proceeding with further transactions using
payment details that return the ‘4 – Not Matched’ response. For further details, please see
section 3.2.4 <security> on page 20.
2.2.2
Negative Database Check
The merchant’s acquirer may also search a large National database for negative reports against
the payment details submitted in the XML Request. This database contains information on over
150 million accounts. Checks against the negative database can only return a ‘2 – Matched’ or
‘4 – Not Matched’ response. Secure Trading recommends against proceeding with further
transactions using payment details that return the ‘4 – Not Matched’ response. For further
details, please see section 3.2.4 <security> on page 20.
Please note that the Negative Database check may need to be enabled by your
acquirer before it can be used as part of Account Check Requests. Please contact
your acquiring bank for further information.
Please note that Secure Trading allows Account Checks to be combined with an
Authorisation in the same request. A summary of an Authorisation Request can
be found in section 2.3 Authorisation Request.
2.2.3
Security Response
After performing an Account Check, you are returned a security response from the acquiring
bank, in the form of a number, which indicates the result of the checks performed on the
customer’s bank account details. A detailed XML specification of the security response can be
found in section 3.2.4 <security> on page 20.
When performing combined ACH Account Check and Authorisation
Requests, it is recommended that you contact support in order to set up
rules, which use the results of the Account Check carried out by the
acquiring bank to either allow or prevent future authorisations.
2.2.4
Rules
Rules can be assigned on your account by the Secure Trading support team, which will use the
results of the Account Check to decide whether or not to process an associated Authorisation
transaction. The recommended process flow is as follows:
1. If the Account Check returns a ‘Matched’ or ‘Not Checked’ response, then process the
Authorisation.
2. If the Account Check returns a ‘Not Matched’ response, then do NOT process an
Authorisation.
Please note the default process flow can be customised. For more information,
please contact Secure Trading support (see section 11.1 Secure Trading Support
on page 48).
An alternative to having rules set up is that your system has this logic present which determines
whether or not to submit an Authorisation Request based on the Account Check Response.
© Secure Trading Limited 2017
7 April 2017
Page 7 / 51
ACH
2.3
Authorisation Request
Step 1) The Merchant
submits an XML Request
to Secure Trading.
Step 2) Secure Trading
validates the request and
sends the details to the
Merchant’s Bank.
Step 3) The Merchant’s
Bank processes the
request.
Step 4) Secure Trading
returns an XML
Response to the
Merchant.


The Merchant’s Bank has
authorised the transfer
request.
The Merchant’s Bank has
declined the transfer request
or the request failed.
settlestatus is set to
“0” - Automatic
settlestatus is set to
“3” - Cancelled
Figure 2 - Process Overview of Authorisation
Please note that after an ACH bank transfer request has been authorised, it is
possible for you to update some of the details or cancel the transfer altogether, by
following the steps outlined in section 8 ACH Transaction Update.
Please note that Secure Trading allows Authorisations to be combined with an
Account Check in the same request. A summary of an Account Check Request
can be found in section 2.2 Account Check.
Please note that ACH transactions are cancelled by Secure Trading if they have
not been settled within 7 days of being authorised.
© Secure Trading Limited 2017
7 April 2017
Page 8 / 51
ACH
2.4
Settlement
Merchants can be informed on transactions that are settled, through the use of Notifications. For
more information, please refer to the Notifications documentation (see section 11.3 Useful
Documents on page 48).
Secure Trading will contact the
Merchant’s Bank daily to start the
settlement process for recently
authorised ACH transactions.

The settlestatus is set to
“10” - Settling,
and remains this way until
the Merchant’s Bank
confirms the settlement is
complete via confirmation.
Figure 3 - Process Overview of Settlement
Please note that after Secure Trading starts the settlement procedure on an
authorised ACH bank transfer request, you will no longer be able to update or
cancel the transaction. If you would like to stop the transfer at this stage, you will
need to contact your acquirer.
Please note that the time between a transaction being sent for settlement and
receiving confirmation of settlement depends on the holding day period defined by
your acquirer. For more information on holding days, please contact your acquirer.
© Secure Trading Limited 2017
7 April 2017
Page 9 / 51
ACH
2.5
Confirmation
Secure Trading will contact the
Merchant’s Bank daily to check if
any outstanding ACH
transactions have been settled.

The settlestatus is set to
“100” - Settled,
if the transaction has been
confirmed as settled by the
Merchant’s Bank.
The settlestatus is set to
“3” - Cancelled,
if the transaction has been
confirmed to be cancelled
by the Merchant’s Bank.
Figure 4 - Process Overview of Confirmation
Once details of the transaction have been sent to the merchant’s acquirer to be settled, Secure
Trading will check for confirmation from the acquirer on a daily basis. Funds can be captured at
any time between the settlement request and receiving confirmation from the acquirer. When
Secure Trading finally receives this confirmation, the settlestatus is updated to a final
value:
If the transaction has been confirmed to be successful and the funds have been
transferred, the settlestatus is set to 100.
If the transaction has failed, and no funds have been transferred, the settlestatus is
set to 3
Please note that it is possible to set up custom notifications on ACH transactions
processed through the Secure Trading system. For more information, please refer
to the Notifications documentation (see section 11.3 Useful Documents on page
48).
© Secure Trading Limited 2017
7 April 2017
Page 10 / 51
ACH
2.6
Settle Status
Every Authorisation transaction in the Secure Trading system is assigned a settlestatus.
This can be used to establish where the transaction is along the settlement process. There are
four important settlestatus fields:
‘0’ – Transaction has been authorised by the acquirer, and is awaiting settlement. At
this stage, some updates can be made to the transaction, and you can cancel it (see
section 8 ACH Transaction Update).
‘3’ – Transaction has been cancelled.
‘10’ – Transaction has been sent to be settled, and is awaiting confirmation from the
acquiring bank.
‘100’ – Confirmation has been received that the transaction has been settled by the
acquiring bank.
The following table shows the progression of the settlestatus of a transaction as an ACH
transaction is authorised (assuming each step is successfully processed), sent to be settled and
confirmed to be settled.
settlestatus
Successful ACH Authorisation
Transaction:
After Authorisation
processed
After Settlement
processed
After Confirmation
processed
0
10
100
Successful ACH Authorisation
Transaction (sent for settlement
immediately)
Declined or Cancelled ACH
Authorisation Transaction
3
ACH Authorisation Transaction
Cancelled by the bank
0
© Secure Trading Limited 2017
100
10
7 April 2017
(Not sent for settlement)
10
3
Page 11 / 51
ACH
2.7
Refunds
To perform a refund or make a payment to the customer, the merchant needs to submit a CFT
(Cardholder Funds Transfer) Refund XML Request. CFT Refunds allow merchants to perform
refunds on transactions before they have been settled. CFT Refunds can be for any amount
and do not require a parent Authorisation. Please refer to section 6.1 XML ACH Refund
Request for an XML Example.
If you have not yet received confirmation that the original Authorisation has
been settled, it is possible that the funds have not been transferred. When
performing a CFT Refund in such circumstances, please ensure you have
received the payment before processing a Refund Request.
Step 1 – XML Request Submitted to Secure Trading
The merchant submits an CFT Refund XML Request to the Secure Trading system.
Step 2 – Secure Trading contact Acquirer
Once the merchant’s XML Request has been validated, Secure Trading will securely contact the
customer’s bank to seek an authorisation for the transfer.
Step 3 – Acquirer Responds to Secure Trading
The customer’s bank responds to Secure Trading. Secure Trading interprets this Response and
stores the details in their system.
Step 4 – Secure Trading Returns XML Response
Secure Trading will return an XML Response to the merchant, with details of whether or not the
transaction was successful:
If the payment details were declined by the acquirer, the settlestatus is set to 3 and
the request does not continue.
If the transaction was authorised by the acquirer, the settlestatus is set to 10.
Step 5 – Acquirer Confirms Refund
Secure Trading will check for confirmation from the acquiring bank on a daily basis. When
Secure Trading receives this confirmation:
If the CFT Refund has been confirmed to be successful and the funds have been
transferred, the settlestatus is set to 100,
If it has failed, and no funds have been transferred, the settlestatus is set to 3.
© Secure Trading Limited 2017
7 April 2017
Page 12 / 51
ACH
3
ACH Account Check
3.1
XML ACH Account Check Request
This section describes the XML Request that needs to be sent in order to process a single
Account Check on a customer’s account. It is possible to combine this Request with an
Authorisation Request, by following the steps outlined in 5.1 XML ACH Authorisation with
Account Check Request, but it is not required that you do so.
Please note that no funds will be reserved or transferred by the Account Check
Request.
Please note that an example ACH ACCOUNTCHECK XML Request can be
found in the STAPI client files, within the ACCOUNTCHECK_ACH folder, which
can be downloaded from our website:
http://webapp.securetrading.net/examples/STAPI_JAVA1.6.zip
3.1.1
XML Overview
The XML Request for an ACH Account Check is similar to a normal Authorisation Request, as
outlined in the STPP XML Specification document (see section 11.3 Useful Documents),
except for the differences outlined in this section of the document.
Before submitting an Account Check Request, as outlined in this section, it
is imperative that you read section 2.2 Account Check and consider setting
up rules that will prevent AUTHs from being processed from payment
details that fail an Account Check.
Other fields that can be included within the request are covered in the STPP XML
Specification document (see section 11.3 Useful Documents).
operation
merchant
alias
billing
customer
request type =
“ACCOUNTCHECK”
settlement
+
+
+
+
+
name
amount currencycode
= ”USD”
payment type=”ACH”
+
socialsecuritynumber
+
Figure 5 - ACH Account Check XML Request
© Secure Trading Limited 2017
7 April 2017
Page 13 / 51
ACH
3.1.2
<request type=”ACCOUNTCHECK”>
The request type for an Account Check Request is “ACCOUNTCHECK”.
3.1.3
<billing>
3.1.3.1 <socialsecuritynumber>
The socialsecuritynumber element can be submitted within the billing tag, for ACH
transactions.
Tag
socialsecurity
number
Type
Length
Required
n
9
N
Comment
The customer’s social security
number. Numbers only.
3.1.3.2 <name>
prefix
first
alias
middle
+
billing
name
request type =
“ACCOUNTCHECK”
last
suffix
Figure 6 - ACH Account Check XML Request <name> tag
The name tag is mandatory and is submitted within the billing tag. A billing name must be
submitted for every ACH Request.
Tag
name
Type
Length
Required
Y
prefix
an
25
N
first
an
25
Y
middle
an
25
N
last
an
25
Y
suffix
an
25
N
© Secure Trading Limited 2017
7 April 2017
Comment
The prefix of the customer’s billing
name (e.g. Mr,Miss,Dr).
The customer’s billing first name.
The customer’s billing middle
name(s).
The customer’s billing last name.
The customer’s suffix of the billing
name (e.g. Bsc).
Page 14 / 51
ACH
3.1.3.3 <amount>
alias
+
billing
amount currencycode =
”USD”
request type =
“ACCOUNTCHECK”
Figure 7 - ACH Account Check XML Request <amount> tag
The amount tag for an Account Check can have a value of 0. If the value of the amount tag is
set to a non-zero value, this can be inherited as the amount in any subsequent transactions that
pass through the reference to this Account Check. For example, an Account Check with an
amount of $100 will not reserve any funds, but an Authorisation Request which inherits from
this Account Check, without passing through a new amount, will reserve $100 on the
customer’s account.
Please note that no funds will ever be reserved or transferred by the Account
Check Request.
The currency must be “USD”.
Tag
Type
Length
Required
amount
currencycode=””
an
3
Y
amount
n
13
Y
© Secure Trading Limited 2017
7 April 2017
Comment
The currency that the transaction will
be processed in. For ACH bank
transfers, the currency must be
“USD”.
For Account Checks, this field can be
set to 0. Non-zero values can be
inherited in subsequent requests.
Page 15 / 51
ACH
3.1.3.4 <payment>
achtype
alias
+
billing
achchecknumber
payment type = “ACH”
request type =
“ACCOUNTCHECK”
achaccountnumber
achaba
Figure 8 - ACH Account Check XML Request <payment> tag
Tag
payment
type = “ACH”
Type
Length
Required
an
20
Y
achtype
an
10
Y
achchecknumber
n
10
N
n
17
Y
Account number
n
9
Y
Transit routing number
achaccount
number
achaba
3.1.4
Comment
Payment type is submitted as “ACH”
Account type. Either “SAVINGS”,
“CHECKING” or “BUSINESSCK”
Check number for Point of Sale
transactions. Length can be between
1 and 10.
<settlement>
The value of the settlestatus tag is returned in the XML Response, allowing it be inherited
in any subsequent requests, such as an Authorisation Request.
Tag
settlement
settlestatus
© Secure Trading Limited 2017
Type
n
Length
3
Required
N
7 April 2017
Comment
This value relates to the status you
would like to be inherited by
subsequent transactions.
The possible values are:
0 – Pending Settlement
2 – Suspended.
100 – Settled (this is only available
for certain acquirers).
If this is not set, status is
automatically set to 0.
Page 16 / 51
ACH
3.1.5
ACH Account Check XML Request Example
Please find below an example of an ACH ACCOUNTCHECK XML Request to be submitted to
Secure Trading’s systems (fields of interest for ACH are highlighted in bold):
<?xml version='1.0' encoding='utf-8'?>
<requestblock version="3.67">
<alias>test_example40000</alias>
<request type="ACCOUNTCHECK">
<merchant>
<orderreference>ACCOUNTCHECK_ACH</orderreference>
</merchant>
<customer>
<town>Bangor</town>
<name>
<middle>Mary</middle>
<prefix>Miss</prefix>
<last>Smith</last>
<first>Joanne</first>
</name>
<ip>1.2.3.4</ip>
<telephone type="H">1111111111</telephone>
<street>Second Street</street>
<postcode>CU888ST</postcode>
<premise>111</premise>
</customer>
<billing>
<town>Bangor</town>
<name>
<middle>joe</middle>
<prefix>Dr</prefix>
<last>Smith</last>
<suffix>Jr.</suffix>
<first>John</first>
</name>
<country>GB</country>
<email>[email protected]</email>
<telephone type="M">0777777777</telephone>
<county>Gwynedd</county>
<amount currencycode="USD">0</amount>
<street>Test Street</street>
<postcode>TE45 6ST</postcode>
<premise>789</premise>
<payment type="ACH">
<achaba>987654321</achaba>
<achaccountnumber>123456781</achaccountnumber>
<achchecknumber>123456</achchecknumber>
<achtype>SAVINGS</achtype>
</payment>
<socialsecuritynumber>123456789</socialsecuritynumber>
</billing>
<operation>
<accounttypedescription>ECOM</accounttypedescription>
<sitereference>test_example40000</sitereference>
</operation>
</request>
</requestblock>
© Secure Trading Limited 2017
7 April 2017
Page 17 / 51
ACH
3.2
XML ACH Account Check Response
This section describes the XML Response returned from Secure Trading after you send an ACH
Account Check XML Request (as in section 3.1 XML ACH Account Check Request).
Please note that an example ACH ACCOUNTCHECK XML Response can be
found in the STAPI client files, within the ACCOUNTCHECK_ACH folder, which
can be downloaded from our website:
http://webapp.securetrading.net/examples/STAPI_JAVA1.6.zip
3.2.1
XML Overview
The XML Response for an ACH Account Check is similar to a regular Authorisation XML
Response, except for the differences outlined in this section of the document.
Other fields that can be included within the response are covered in the STPP XML
Specification document (see section 11.3 Useful Documents).
The diagram below shows an ACH Account Check Response.
authcode
timestamp
live
response type =
“ACCOUNTCHECK”
transactionreference
merchant
address
+
security
settlement
billing
operation
error
+
+
+
postcode
achtype
securitycode
achchecknumber
amount currencycode =
“USD”
achaccountnumber
payment type = “ACH”
achaba
socialsecuritynumber
+
acquirerresponsecode
acquirerresponsemessage
Figure 9 - ACH Account Check XML Response
© Secure Trading Limited 2017
7 April 2017
Page 18 / 51
ACH
3.2.2
<request type=”ACCOUNTCHECK”>
The request type for an Account Check Request is “ACCOUNTCHECK”.
3.2.3
<billing>
3.2.3.1 <socialsecuritynumber>
If the customer’s social security number was submitted in the XML Request, a masked version
is returned in the billing tag of the XML Response.
Tag
socialsecurity
number
Type
Length
Required
n
9
N
Comment
The customer’s social security
number. All numbers except the last
four are masked. (e.g. “#####6789”)
3.2.3.2 <amount>
alias
+
billing
amount currencycode
= ”USD”
response type =
“ACCOUNTCHECK”
Figure 10 - ACH Account Check XML Response <amount> tag
The amount tag for an Account Check can be 0. The currency must be “USD”. This is returned
in the billing tag of the XML Response.
3.2.3.3 <payment>
achtype
alias
+
billing
achchecknumber
payment type = “ACH”
response type =
“ACCOUNTCHECK”
achaccountnumber
achaba
Figure 11 - ACH Account Check XML Response <payment> tag
Tag
payment
type = “ACH”
Type
Length
Required
an
20
Y
achtype
an
10
Y
achchecknumber
n
10
N
n
17
Y
Account number
n
9
Y
Transit routing number
achaccount
number
achaba
© Secure Trading Limited 2017
7 April 2017
Comment
Payment type is returned as “ACH”
Account type. Either “SAVINGS”,
“CHECKING” or “BUSINESSCK”
Check number for Point of Sale
transactions. Length can be between
1 and 10.
Page 19 / 51
ACH
3.2.4
<security>
address
response type =
“ACCOUNTCHECK”
postcode
security
securitycode
Figure 12 - ACH Account Check XML Response <security> tag
The <securitycode> tag within the XML Response provides the results of checks performed
by your acquiring bank on the customer’s payment details. For ACH Account Checks, the
address and postcode fields are not used as part of the check.
These are the child elements returned in the <security> tag, in the XML Response:
Tag
security
Type
Length
Required
address
n
1
Y
postcode
n
1
Y
securitycode
n
1
Y
Comment
This field will always have the value
‘1’.
This field will always have the value
‘1’.
The result of the Account Checks.
See section 2.2.3 Response for
more information on this field.
The table below lists all of the possible security responses that can be returned in the
securitycode field:
securitycode
Description
Definition
1
“Not
Checked”
The acquiring bank was unable to complete checks on the
information you provided in the request.
2
“Matched”
The information you provided in the request is deemed low
or medium risk by the acquiring bank and is therefore
considered acceptable for further transactions.
4
“Not
Matched”
The information you provided in the request is deemed high
risk by the acquiring bank and is therefore considered
inappropriate for further transactions.
When performing combined ACH Account Check and Authorisation
Requests, it is recommended that you contact support in order to set up
rules, which use the results of the Account Check carried out by the
acquiring bank to either allow or prevent future authorisations. Please refer
to section 2.2.4 Rules on page 7 for further information.
© Secure Trading Limited 2017
7 April 2017
Page 20 / 51
ACH
3.2.5
<settlement>
The value of the settlestatus in the Response will remain the same as the value in the
Request and does not represent the state of the Account Check. This is to allow you to inherit
this value in subsequent child transactions, such as an Authorisation Request.
The settlestatus of the Account Check is not updated after completion of the Account
Check Request.
Please note that the results of the Account Check returned by the acquiring bank
can be found in the security tag (see section 3.2.4 <security>).
3.2.6
<acquirerresponsecode> and <acquirerresponsemessage>
The acquirerresponsecode and acquirerresponsemessage elements contain a
response message from the acquiring bank. For more information, please contact your acquirer.
Please see the section 12 Appendix for further information.
Tag
acquirerresponse
code
acquirerresponse
message
© Secure Trading Limited 2017
Type
Length
Required
an
255
N
an
255
N
7 April 2017
Comment
Response code returned from the
acquiring bank.
Message, associated with the
response code, returned from the
acquiring bank.
Page 21 / 51
ACH
3.2.7
ACH Account Check XML Response Example
Please find below an example of an ACH ACCOUNTCHECK XML Response received from
Secure Trading’s systems (fields of interest for ACH are highlighted in bold):
It is strongly recommended that you check the <security> fields returned in
the XML Response, and discontinue further transactions with the customer, if
the security response indicates high risk (securitycode is 4). See section
3.2.4 <security> for more information.
<?xml version='1.0' encoding='utf-8'?>
<responseblock version="3.67">
<requestreference>X538749002</requestreference>
<response type="ACCOUNTCHECK">
<merchant>
<merchantname>example UNICODE merchantname</merchantname>
<orderreference>ACCOUNTCHECK_ACH</orderreference>
<operatorname>test_example40000</operatorname>
</merchant>
<transactionreference>15-69-1</transactionreference>
<billing>
<amount currencycode="USD">0</amount>
<socialsecuritynumber>#####6789</socialsecuritynumber>
<payment type="ACH">
<achaccountnumber>12#####81</achaccountnumber>
<achchecknumber>123456</achchecknumber>
<achtype>SAVINGS</achtype>
<achaba>98#####21</achaba>
</payment>
</billing>
<authcode>TEST</authcode>
<live>0</live>
<error>
<message>Ok</message>
<code>0</code>
</error>
<timestamp>2013-04-09 08:33:07</timestamp>
<acquirerresponsecode>P70</acquirerresponsecode>
<security>
<address>1</address>
<postcode>1</postcode>
<securitycode>2</securitycode>
</security>
<settlement>
<settleduedate>2013-04-09</settleduedate>
<settlestatus>0</settlestatus>
</settlement>
<operation>
<accounttypedescription>ECOM</accounttypedescription>
</operation>
<acquirerresponsemessage>VALIDATED</acquirerresponsemessage>
</response>
</responseblock>
© Secure Trading Limited 2017
7 April 2017
Page 22 / 51
ACH
4
ACH Authorisation
4.1
XML ACH Authorisation Request
This section of the document describes the XML structure of an ACH Authorisation (AUTH)
Request. The Request described in this section of the document does not perform an Account
Check. It is possible to combine an Account Check Request with an Authorisation, by sending
an XML Request with the structure described in section 5.1 XML ACH Authorisation with
Account Check Request.
Please note that it is also possible to process an ACH Authorisation by inheriting
the transaction details (including amount) from a previous Account Check
transaction.
This
is
achieved
by
passing
through
the
parenttransactionreference of the Account Check transaction within the
<operation> tag of the Authorisation Request.
Please note that an example ACH AUTHORISATION XML Request can be
found in the STAPI client files, within the AUTH_ACH folder, which can be
downloaded from our website:
http://webapp.securetrading.net/examples/STAPI_JAVA1.6.zip
4.1.1
XML Overview
The XML Request for an ACH payment is similar to a standard Authorisation (AUTH) Request,
except for the differences outlined in this section of the document. Other fields that can be
included within the request are covered in the STPP XML Specification document (see section
11.3 Useful Documents).
The diagram below shows an ACH Authorisation Request. The <payment> tag will need to
include elements specific to ACH transactions.
operation
merchant
alias
billing
customer
+
+
+
+
+
name
amount currencycode
= ”USD”
payment type = ”ACH”
+
socialsecuritynumber
request type = “AUTH”
settlement
+
settlestatus
Figure 13 - ACH AUTH XML Request
© Secure Trading Limited 2017
7 April 2017
Page 23 / 51
ACH
4.1.2
<billing>
4.1.2.1 <socialsecuritynumber>
The socialsecuritynumber element can be submitted within the billing tag, for ACH
transactions. If you are inheriting details from a previous Account Check transaction, the
socialsecuritynumber will be inherited.
Tag
socialsecurity
number
Type
Length
Required
n
9
N
Comment
The customer’s social security
number. Numbers only.
4.1.2.2 <name>
prefix
first
alias
billing
middle
+
name
last
request type = “AUTH”
suffix
Figure 14 - ACH AUTH XML Request <name> tag
The name tag is mandatory. A billing name must be submitted for every ACH Request.
Tag
name
Type
Length
Required
prefix
an
25
N
first
an
25
Y
middle
an
25
N
last
an
25
Y
suffix
an
25
N
Comment
The prefix of the Customer’s billing
name (e.g. Mr,Miss,Dr).
The Customer’s billing first name.
The Customer’s billing middle
name(s).
The Customer’s billing last name.
The Customer’s suffix of the billing
name (e.g. Bsc).
4.1.2.3 <amount>
The currency must be “USD”. If you are inheriting details from a previous Account Check
transaction, the amount will be inherited, unless you specify a new amount in the <amount>
tag.
© Secure Trading Limited 2017
7 April 2017
Page 24 / 51
ACH
4.1.2.4 <payment>
achtype
alias
achchecknumber
+
billing
payment type = “ACH”
achaccountnumber
request type = “AUTH”
achaba
Figure 15 - ACH AUTH XML Request <payment> tag
Tag
payment
type = “ACH”
Type
Length
Required
an
20
Y
achtype
an
10
Y
achchecknumber
n
10
N
n
17
Y
Account number
n
9
Y
Transit routing number
achaccount
number
achaba
4.1.3
Comment
Payment type is submitted as “ACH”
Account type. Either “SAVINGS”,
“CHECKING” or “BUSINESSCK”
Check number for Point of Sale
transactions. Length can be between
1 and 10.
<settlement>
alias
settlement
+
settlestatus
request type = “AUTH”
Figure 16 - ACH AUTH XML Request <settlement> tag
In the settlement tag, the settlestatus tag can be set to ‘100’ to send an ACH payment to
be settled after it is authorised by the acquiring bank.
ACH bank transfers do not settle immediately, and for this reason, the settlestatus of the
transaction will initially be shown as ‘10’, representing a transaction that has been sent for
settlement, but has not yet received confirmation.
If you do not include a settlestatus tag in the request, the transaction is scheduled for
settlement in the next settlement run (normally the next day).
Tag
settlement
settlestatus
© Secure Trading Limited 2017
Type
n
Length
3
Required
N
7 April 2017
Comment
This value relates to the status you
would like to set the transaction.
The possible values are:
0 – Pending Settlement
100 – Settled (this is only available
for certain acquirers).
If this is not set, status is
automatically set to 0.
Page 25 / 51
ACH
4.1.4
ACH Authorisation XML Request Example
Please find below an example of an ACH AUTH XML Request to be submitted to Secure
Trading’s systems (fields of interest for ACH are highlighted in bold):
<?xml version='1.0' encoding='utf-8'?>
<requestblock version="3.67">
<alias>test_example40000</alias>
<request type="AUTH">
<merchant>
<orderreference>AUTH_ACH</orderreference>
</merchant>
<customer>
<town>Bangor</town>
<name>
<middle>Mary</middle>
<prefix>Miss</prefix>
<last>Smith</last>
<first>Joanne</first>
</name>
<ip>1.2.3.4</ip>
<telephone type="H">1111111111</telephone>
<street>Second Street</street>
<postcode>CU888ST</postcode>
<premise>111</premise>
</customer>
<billing>
<telephone type="M">0777777777</telephone>
<county>Gwynedd</county>
<street>Test Street</street>
<postcode>TE45 6ST</postcode>
<premise>789</premise>
<payment type="ACH">
<achaba>987654321</achaba>
<achchecknumber>123456</achchecknumber>
<achaccountnumber>123456781</achaccountnumber>
<achtype>SAVINGS</achtype>
</payment>
<socialsecuritynumber>123456789</socialsecuritynumber>
<town>Bangor</town>
<name>
<middle>joe</middle>
<prefix>Dr</prefix>
<last>Smith</last>
<suffix>Jr.</suffix>
<first>John</first>
</name>
<country>GB</country>
<amount currencycode="USD">100</amount>
<email>[email protected]</email>
</billing>
<operation>
<sitereference>test_example40000</sitereference>
<accounttypedescription>ECOM</accounttypedescription>
</operation>
</request>
</requestblock>
© Secure Trading Limited 2017
7 April 2017
Page 26 / 51
ACH
4.2
XML ACH Authorisation Response
This section describes the XML Response that is returned by Secure Trading, after submitting
an ACH Authorisation Request.
Please note that an example ACH AUTHORISATION XML Response can be found
in the STAPI client files, within the AUTH_ACH folder, which can be downloaded
from our website:
http://webapp.securetrading.net/examples/STAPI_JAVA1.6.zip
4.2.1
XML Overview
The XML Response for an ACH Authorisation is similar to a standard Authorisation (AUTH)
Response. This section details the returned fields that are specific to ACH Authorisations.
Other fields that can be included within the response are covered in the STPP XML
Specification document (see section 11.3 Useful Documents).
The diagram below shows an ACH Authorisation Response. The <payment> tag contains the
relevant information for this payment type.
authcode
timestamp
live
transactionreference
response type = “AUTH”
merchant
security
+
+
settleduedate
achtype
settlestatus
settlement
billing
+
achchecknumber
payment type = “ACH”
achaccountnumber
operation
+
socialsecuritynumber
achaba
error
+
acquirerresponsecode
acquirerresponsemessage
Figure 17 - ACH AUTH XML Response
© Secure Trading Limited 2017
7 April 2017
Page 27 / 51
ACH
4.2.2
<billing>
4.2.2.1 <socialsecuritynumber>
If the customer’s social security number was submitted in the XML Request, a masked version
is returned in the billing tag of the XML Response.
Tag
socialsecurity
number
Type
Length
Required
n
9
N
Comment
The customer’s social security
number. All numbers except the last
four are masked. (e.g. “#####6789”)
4.2.2.2 <payment>
Within the <billing> tag, the <payment> tag contains the customer’s ACH details.
achtype
alias
billing
achchecknumber
+
payment type = “ACH”
achaccountnumber
response type = “AUTH”
achaba
Figure 18 - ACH AUTH XML Response <payment> tag
Tag
payment
type = “ACH”
Type
Length
Required
an
20
Y
achtype
an
10
Y
achchecknumber
n
10
N
n
17
Y
Account number
n
9
Y
Transit routing number
achaccount
number
achaba
© Secure Trading Limited 2017
7 April 2017
Comment
Payment type is returned as “ACH”
Account type. Either “SAVINGS”,
“CHECKING” or “BUSINESSCK”
Check number for Point of Sale
transactions. Length can be between
1 and 10.
Page 28 / 51
ACH
4.2.3
<error>
response type = “AUTH”
code
+
error
message
Figure 19 - ACH AUTH XML Response <error> tag
The error code should be used to determine if the request was successful or not.
If the error code is 0 then the transaction was successful.
If the error code is not 0 then the transaction was not successful.
An error code of 99999 represents an unknown error that can happen during
a request and requires manual investigation to determine the state of the
transaction. Please contact support (see section 11.1 Secure Trading
Support).
For a full list of error codes and error messages please see
http://webapp.securetrading.net/errorcodes.html
Tag
error
Type
Length
Required
code
n
5
Y
message
an
255
Y
Comment
The code will be 0 if the transaction
was successful.
This is the corresponding message to
the above code.
Please note that ACH transactions that are processed with invalid details (such
as an invalid field name), may be shown in MyST, with a given error message.
4.2.4
<acquirerresponsecode> and <acquirerresponsemessage>
The acquirerresponsecode and acquirerresponsemessage elements contain a
response message from the acquiring bank. For more information, please contact your acquirer.
Please see the section 12 Appendix for further information.
Tag
acquirerresponse
code
acquirerresponse
message
Type
Length
Required
an
255
N
an
255
N
Comment
Response code returned from the
acquiring bank.
Message, associated with the
response code, returned from the
acquiring bank.
Please note that the contents of the acquirer response code and message fields
may be updated after authorisation, either as part of confirmation or if a
chargeback occurs.
© Secure Trading Limited 2017
7 April 2017
Page 29 / 51
ACH
4.2.5
ACH Authorisation Response Example
Please find below an example of an ACH AUTH XML Response received from Secure Trading’s
systems (fields of interest for ACH are highlighted in bold):
<?xml version='1.0' encoding='utf-8'?>
<responseblock version="3.67">
<requestreference>X673033493</requestreference>
<response type="AUTH">
<merchant>
<merchantname>example UNICODE merchantname</merchantname>
<orderreference>AUTH_ACH</orderreference>
<operatorname>test_example40000</operatorname>
</merchant>
<transactionreference>15-69-2</transactionreference>
<security>
<postcode>1</postcode>
<securitycode>0</securitycode>
<address>1</address>
</security>
<billing>
<amount currencycode="USD">100</amount>
<socialsecuritynumber>#####6789</socialsecuritynumber>
<payment type="ACH">
<achaccountnumber>12#####81</achaccountnumber>
<achtype>SAVINGS</achtype>
<achaba>98#####21</achaba>
<achchecknumber>123456</achchecknumber>
</payment>
</billing>
<authcode>TEST</authcode>
<timestamp>2013-04-09 08:33:08</timestamp>
<settlement>
<settleduedate>2013-04-09</settleduedate>
<settlestatus>0</settlestatus>
</settlement>
<live>0</live>
<error>
<message>Ok</message>
<code>0</code>
</error>
<acquirerresponsecode>A01</acquirerresponsecode>
<operation>
<accounttypedescription>ECOM</accounttypedescription>
</operation>
<acquirerresponsemessage>APPROVED</acquirerresponsemessage>
</response>
</responseblock>
© Secure Trading Limited 2017
7 April 2017
Page 30 / 51
ACH
5
ACH Authorisation with Account Check
5.1
XML ACH Authorisation with Account Check Request
It is possible to send through an Account Check and an Authorisation (AUTH) in the same XML
Request. This section of the document describes the structure of this XML Request.
Before submitting an Account Check Request, as outlined in this section, it
is imperative that you read section 2.2 Account Check and consider setting
up rules that will prevent AUTHs from being processed from payment
details that fail an Account Check.
Secure Trading first processes the Account Check, and then if rules have been enabled on your
account, may or may not process the associated AUTH Request.
Please note that an example ACH AUTHORISATION WITH ACCOUNTCHECK
XML Request can be found in the STAPI client files, within the
ACH_ACCOUNTCHECK_WITH_AUTH_ACH folder, which can be downloaded
from our website:
http://webapp.securetrading.net/examples/STAPI_JAVA1.6.zip
© Secure Trading Limited 2017
7 April 2017
Page 31 / 51
ACH
5.1.1
XML Overview
The structure of the XML Request consists of two requests in a single request block. A single
XML Request is sent, containing both an “ACCOUNTCHECK” and an “AUTH” Request. The
structure of the Account Check section of the request is the same as an independent ACH
Account Check Request, as shown in section 3.1 XML ACH Account Check Request. The
structure of the AUTH section of the request can be the same as a regular ACH AUTH Request,
as outlined in section 4.1 XML ACH Authorisation Request, but can omit details already
submitted in the Account Check section of the request.
Please note that, as shown in the following XML example, the amount field can
only be omitted in the AUTH section of the request, if it is submitted in the
Account Check section of the request, as it is inherited from the parent Account
Check amount field.
operation
merchant
alias
billing
customer
request type =
“ACCOUNTCHECK”
settlement
request type = “AUTH”
operation
+
+
+
+
+
name
amount currencycode
= ”USD”
payment type= ”ACH”
+
socialsecuritynumber
+
settlestatus
+
Figure 20 - ACH AUTH with Account Check XML Request
© Secure Trading Limited 2017
7 April 2017
Page 32 / 51
ACH
5.1.2
ACH Authorisation with Account Check XML Request Example
Please find below an example of an ACH AUTH with ACCOUNTCHECK XML Request to be
submitted to Secure Trading’s systems (fields of interest for ACH are highlighted in bold):
<?xml version='1.0' encoding='utf-8'?>
<requestblock version="3.67">
<alias>test_example40000</alias>
<request type="ACCOUNTCHECK">
<merchant>
<orderreference>ach_accountcheck_with_auth</orderreference>
</merchant>
<customer>
<town>Bangor</town>
<name>
<middle>Mary</middle>
<prefix>Miss</prefix>
<last>Smith</last>
<first>Joanne</first>
</name>
<ip>1.2.3.4</ip>
<telephone type="H">1111111111</telephone>
<street>Second Street</street>
<postcode>CU888ST</postcode>
<premise>111</premise>
</customer>
<billing>
<town>Bangor</town>
<name>
<middle>joe</middle>
<prefix>Dr</prefix>
<last>bloggs</last>
<suffix>Jr.</suffix>
<first>fred</first>
</name>
<country>GB</country>
<email>[email protected]</email>
<telephone type="M">0777777777</telephone>
<county>Gwynedd</county>
<amount currencycode="USD">100</amount>
<street>Test Street</street>
<postcode>TE45 6ST</postcode>
<premise>789</premise>
<payment type="ACH">
<achaba>987654321</achaba>
<achaccountnumber>123456781</achaccountnumber>
<achchecknumber>123456</achchecknumber>
<achtype>SAVINGS</achtype>
</payment>
<socialsecuritynumber>123456789</socialsecuritynumber>
</billing>
<operation>
<accounttypedescription>ECOM</accounttypedescription>
<sitereference>test_example40000</sitereference>
</operation>
</request>
<request type="AUTH">
</request>
</requestblock>
© Secure Trading Limited 2017
7 April 2017
Page 33 / 51
ACH
5.2
XML ACH Authorisation with Account Check Response
This section outlines the XML Response received after sending an Authorisation (AUTH) with
Account Check XML Request.
Please note that an example ACH AUTHORISATION WITH ACCOUNTCHECK
XML Response can be found in the STAPI client files, within the
ACH_ACCOUNTCHECK_WITH_AUTH_ACH folder, which can be downloaded
from our website:
http://webapp.securetrading.net/examples/STAPI_JAVA1.6.zip
5.2.1
XML Overview
Below is a diagram of an ACH Authorisation with Account Check XML Response. The
<payment> tag contains the relevant information for this payment type.
Please note that an ACH Authorisation with Account Check XML Response
consists of two response tags, each with their own transactionreference
values.
address
alias
response type =
“ACCOUNTCHECK”
postcode
achtype
securitycode
achchecknumber
amount currencycode =
“USD”
achaccountnumber
payment type = “ACH”
achaba
security
billing
response type = “AUTH”
settlement
billing
+
+
socialsecuritynumber
payment type = “ACH”
+
Figure 21 - ACH AUTH with Account Check XML Response
5.2.2
ACH Authorisation with Account Check XML Response Example
Please find below an example of an ACH AUTH with ACCOUNTCHECK XML Response
received from Secure Trading’s systems (fields of interest for ACH are highlighted in bold):
Please note that the results of the Account Check will be in the securitycode
tag in the Account Check section of the response. The numbers shown in
security tag in the Authorisation section of the response should be ignored. For
information on the security response, see section 3.2.4 <security>.
© Secure Trading Limited 2017
7 April 2017
Page 34 / 51
ACH
<?xml version='1.0' encoding='utf-8'?>
<responseblock version="3.67">
<requestreference>X904343528</requestreference>
<response type="ACCOUNTCHECK">
<merchant>
<merchantname>example UNICODE merchantname </merchantname>
<orderreference>ach_accountcheck_with_auth</orderreference>
<operatorname>test_example40000</operatorname>
</merchant>
<transactionreference>15-69-3</transactionreference>
<billing>
<amount currencycode="USD">100</amount>
<socialsecuritynumber>#####6789</socialsecuritynumber>
<payment type="ACH">
<achaccountnumber>12#####81</achaccountnumber>
<achchecknumber>123456</achchecknumber>
<achtype>SAVINGS</achtype>
<achaba>98#####21</achaba>
</payment>
</billing>
<authcode>TEST</authcode>
<live>0</live>
<error>
<message>Ok</message>
<code>0</code>
</error>
<timestamp>2013-04-09 08:33:25</timestamp>
<acquirerresponsecode>P70</acquirerresponsecode>
<security>
<address>1</address>
<postcode>1</postcode>
<securitycode>2</securitycode>
</security>
<settlement>
<settleduedate>2013-04-09</settleduedate>
<settlestatus>0</settlestatus>
</settlement>
<operation>
<accounttypedescription>ECOM</accounttypedescription>
</operation>
<acquirerresponsemessage>VALIDATED</acquirerresponsemessage>
</response>
<response type="AUTH">
<merchant>
<merchantname>example UNICODE merchantname</merchantname>
<orderreference>ach_accountcheck_with_auth</orderreference>
</merchant>
<transactionreference>15-69-4</transactionreference>
<security>
<postcode>1</postcode>
<securitycode>0</securitycode>
<address>1</address>
</security>
<billing>
<amount currencycode="USD">100</amount>
<socialsecuritynumber>#####6789</socialsecuritynumber>
<payment type="ACH">
<achaccountnumber>12#####81</achaccountnumber>
<achtype>SAVINGS</achtype>
© Secure Trading Limited 2017
7 April 2017
Page 35 / 51
ACH
<achaba>98#####21</achaba>
<achchecknumber>123456</achchecknumber>
</payment>
</billing>
<authcode>TEST</authcode>
<timestamp>2013-04-09 08:33:25</timestamp>
<settlement>
<settleduedate>2013-04-09</settleduedate>
<settlestatus>0</settlestatus>
</settlement>
<live>0</live>
<error>
<message>Ok</message>
<code>0</code>
</error>
<acquirerresponsecode>A01</acquirerresponsecode>
<operation>
<parenttransactionreference>15-69-3</parenttransactionreference>
<accounttypedescription>ECOM</accounttypedescription>
</operation>
<acquirerresponsemessage>APPROVED</acquirerresponsemessage>
</response>
</responseblock>
© Secure Trading Limited 2017
7 April 2017
Page 36 / 51
ACH
6
ACH Refund
6.1
XML ACH Refund Request
In order to refund a transaction or make any other payment to the customer, you need to
perform a Cardholder Funds Transfer (CFT) Refund. CFT Refunds can be used to pay a
specified amount to the customer, without the need to refer to a pre-existing Authorisation
(AUTH).
The CFT refund amount can be different to the amount specified in the initial transaction, even
when referencing a parent transaction.
Please note that an example ACH REFUND XML Request can be found in the
STAPI client files, within the CFT_REFUND_ACH folder, which can be
downloaded from our website:
http://webapp.securetrading.net/examples/STAPI_JAVA1.6.zip
Please note that you can inherit details from a pre-existing ACH transaction, by
passing through the parenttransactionreference of the transaction.
If you wish to reference a previous transaction as part of a CFT transaction you
can include the tag <parenttransactionreference>
within the
<operation> tag of the request.
Please note that you cannot process a new CFT Refund by using the Virtual
Terminal feature of MyST. At this time, you can only perform a CFT Refund
Request by sending through an XML Request to the STPP gateway, as outlined
in this section of the document.
© Secure Trading Limited 2017
7 April 2017
Page 37 / 51
ACH
6.1.1
XML Overview
The XML structure for an ACH Refund Request is similar to an ACH AUTH Request (see
section 11.3 Useful Documents), with the following important differences:
The request type is “REFUND”.
The accounttypedescription is “CFT”.
operation
merchant
alias
billing
customer
+
+
accounttypedescription
+
name
+
amount currencycode
= ”USD”
+
payment type = ”ACH”
+
request type = “REFUND”
socialsecuritynumber
Figure 22 - ACH CFT Refund XML Request
© Secure Trading Limited 2017
7 April 2017
Page 38 / 51
ACH
6.1.2
ACH Refund XML Request Example
Please find below an example of an ACH REFUND XML Request to be submitted to Secure
Trading’s systems (fields of interest for ACH are highlighted in bold):
<?xml version='1.0' encoding='utf-8'?>
<requestblock version="3.67">
<alias>test_example40000</alias>
<request type="REFUND">
<merchant>
<orderreference>CFT_REFUND_ACH</orderreference>
</merchant>
<customer>
<town>Bangor</town>
<name>
<middle>Mary</middle>
<prefix>Miss</prefix>
<last>Smith</last>
<first>Joanne</first>
</name>
<ip>1.2.3.4</ip>
<telephone type="H">1111111111</telephone>
<street>Second Street</street>
<postcode>CU888ST</postcode>
<premise>111</premise>
</customer>
<billing>
<town>Bangor</town>
<name>
<middle>joe</middle>
<prefix>Dr</prefix>
<last>Smith</last>
<suffix>Jr.</suffix>
<first>John</first>
</name>
<country>GB</country>
<email>[email protected]</email>
<telephone type="M">0777777777</telephone>
<county>Gwynedd</county>
<amount currencycode="USD">100</amount>
<street>Test Street</street>
<postcode>TE45 6ST</postcode>
<premise>789</premise>
<socialsecuritynumber>123456789</socialsecuritynumber>
<payment type="ACH">
<achaba>987654321</achaba>
<achaccountnumber>123456781</achaccountnumber>
<achchecknumber>123456</achchecknumber>
<achtype>SAVINGS</achtype>
</payment>
</billing>
<operation>
<sitereference>test_example40000</sitereference>
<accounttypedescription>CFT</accounttypedescription>
</operation>
</request>
</requestblock>
© Secure Trading Limited 2017
7 April 2017
Page 39 / 51
ACH
6.2
XML ACH Refund Response
This section outlines the structure of the XML Response to an ACH Refund XML Request (see
section 6.1 XML ACH Refund Request for more information).
Please note that an example ACH REFUND XML Response can be found in the
STAPI client files, within the CFT_REFUND_ACH folder, which can be
downloaded from our website:
http://webapp.securetrading.net/examples/STAPI_JAVA1.6.zip
6.2.1
XML Overview
The XML structure for an ACH Refund Response is similar to an ACH AUTH Response (see
section 4.2 XML ACH Authorisation Response), with the following important differences:
The request type is “REFUND”.
The accounttypedescription is “CFT”.
authcode
timestamp
live
transactionreference
response type = “REFUND”
merchant
security
settlement
billing
+
+
+
+
operation
+
error
+
accounttypedescription
acquirerresponsecode
acquirerresponsemessage
Figure 23 - ACH CFT Refund XML Response
© Secure Trading Limited 2017
7 April 2017
Page 40 / 51
ACH
6.2.2
ACH Refund XML Response Example
Please find below an example of an ACH REFUND XML Response received from Secure
Trading’s systems (fields of interest for ACH are highlighted in bold):
<?xml version='1.0' encoding='utf-8'?>
<responseblock version="3.67">
<requestreference>X768881073</requestreference>
<response type="REFUND">
<merchant>
<merchantname>example merchantname</merchantname>
<orderreference>CFT_REFUND_ACH</orderreference>
<operatorname>test_example40000</operatorname>
</merchant>
<transactionreference>15-69-5</transactionreference>
<billing>
<amount currencycode="USD">100</amount>
<socialsecuritynumber>#####6789</socialsecuritynumber>
<payment type="ACH">
<achaccountnumber>12#####81</achaccountnumber>
<achchecknumber>123456</achchecknumber>
<achtype>SAVINGS</achtype>
<achaba>98#####21</achaba>
</payment>
</billing>
<authcode>TEST</authcode>
<live>0</live>
<error>
<message>Ok</message>
<code>0</code>
</error>
<timestamp>2013-04-09 08:33:33</timestamp>
<acquirerresponsecode>A01</acquirerresponsecode>
<security>
<address>1</address>
<postcode>1</postcode>
<securitycode>0</securitycode>
</security>
<settlement>
<settleduedate>2013-04-09</settleduedate>
<settlestatus>10</settlestatus>
</settlement>
<operation>
<accounttypedescription>CFT</accounttypedescription>
</operation>
<acquirerresponsemessage>APPROVED</acquirerresponsemessage>
</response>
</responseblock>
© Secure Trading Limited 2017
7 April 2017
Page 41 / 51
ACH
7
ACH Transaction Query
In order to view details of an Account Check, Authorisation or CFT Refund transaction that has
been processed through Secure Trading, you can send a Transaction Query Request,
containing the transactionreference of the transaction. An XML Response will be
returned, with information about the transaction.
7.1
XML ACH Transaction Query Request
The structure of the XML Request used in this case is the same as a regular Transaction Query
Request. Please refer to the STPP Transaction Query document for more information (see
section 11.3 Useful Documents).
7.1.1
XML Transaction Query Request Example
Please find below an example of a TRANSACTIONQUERY XML Request to be submitted to
Secure Trading’s systems.
<?xml version="1.0" encoding="utf-8"?>
<requestblock version="3.67">
<alias>site12345</alias>
<request type="TRANSACTIONQUERY">
<filter>
<sitereference>site12345</sitereference>
<transactionreference>50-2-2</transactionreference>
</filter>
</request>
</requestblock>
7.2
XML ACH Transaction Query Response
Once you have successfully submitted a Transaction Query Request through STPP, if no errors
were found, you will be returned an XML Response. The structure of the XML returned in the
response is similar to that of a normal Transaction Query Response, with fields returned in the
response that are unique to ACH transactions. These are outlined in detail in section 4.2.2.2
<payment>.
© Secure Trading Limited 2017
7 April 2017
Page 42 / 51
ACH
8
ACH Transaction Update
It is possible to update certain fields in an ACH payment after authorisation (but before it has
been
settled)
by sending
a
Transaction
Update
Request,
containing
the
transactionreference of the transaction and the desired changes. For further information,
please refer to the STPP Transaction Update document (see section 11.3 Useful
Documents).
Please note that transactions cannot be cancelled or updated after they have
been sent to be settled (when they have a settlestatus of 10). ACH
transactions can only be updated if they have a settlestatus of 0.
Please note that ACH transactions are cancelled by Secure Trading if they have
not been settled within 7 days of being authorised.
8.1
XML Transaction Update Request Example
Please find below an example of a TRANSACTIONUPDATE Request to be submitted to Secure
Trading’s systems.
<?xml version="1.0" encoding="utf-8"?>
<requestblock version="3.67">
<alias>site12345</alias>
<request type="TRANSACTIONUPDATE">
<filter>
<sitereference>site12345</sitereference>
<transactionreference>51-2-5</transactionreference>
</filter>
<updates>
<settlement>
<settlestatus>1</settlestatus>
</settlement>
</updates>
</request>
</requestblock>
8.2
XML Transaction Update Response Example
Please find below an example of a TRANSACTIONQUERY Response returned from Secure
Trading’s systems.
<?xml version="1.0" encoding="utf-8"?>
<responseblock version="3.67">
<requestreference>X675136983</requestreference>
<response type="TRANSACTIONUPDATE">
<timestamp>2010-03-11 16:38:47</timestamp>
<error>
<code>0</code>
</error>
</response>
</responseblock>
© Secure Trading Limited 2017
7 April 2017
Page 43 / 51
ACH
9
Additional Notes
9.1
System Limitations
The request types supported for ACH Bank Transfers are:
AUTH
ACCOUNTCHECK
TRANSACTIONQUERY
TRANSACTIONUPDATE
REFUND
CHARGEBACK*
* This request can only be generated by Secure Trading when the customer’s bank requests a
Chargeback and cannot be sent in a request by a merchant.
9.2
Card Store
It is not possible to use Card Store with ACH payment details.
9.3
Subscriptions and Tokenisation
It is not possible to set up recurring payments using ACH payment details.
9.4
Supported Currencies
ACH only supports transactions that use the currency USD.
9.5
Mail or Telephone Order
ACH does not support Mail or Telephone Order (MOTO) transactions.
© Secure Trading Limited 2017
7 April 2017
Page 44 / 51
ACH
10
Testing
ACH Bank Transfers can be tested using Secure Trading’s test system. Test transactions must
be processed using a test account. If you do not know your test account details, please contact
Secure Trading Support (see section 11.1 Secure Trading Support).
10.1
Account Check Requests (ACCOUNTCHECK)
To test Account Check Responses, please send through a valid ACH Account Check Request,
substituting the following values in the achaccountnumber field.
achaccountnumber
‘123456781’
‘123456783’
‘123456784’
10.2
Response from the test system
“VALIDATED” (2 Matched)
“HIGH RISK” (4 Not Matched)
“PREAUTH VENDOR
UNAVAIL” (1 Not Checked)
securitycode response value
2
4
1
Authorisation Requests (AUTH) and Chargebacks (CHARGEBACK)
The “Days” used in the following process overviews are used for demonstration purposes only
and the period between each step is dependent on the time the transaction was processed and
the settlement process is run.
Please note that for testing purposes, when processing ACH transactions on
your test site, you receive notification of Chargeback immediately after settlement
confirmation. With live accounts, it may take several weeks before a Chargeback
is processed against a settled ACH transaction.
10.2.1
Authorised and settled successfully by test bank
To simulate an ACH transaction that is authorised and settled by the test bank, submit a valid
ACH AUTH XML Request with the following fields:
achaccountnumber – “123456781”
amount – “1011”
Day One
Secure Trading interprets the
AUTH XML Request and contacts
a simulated test bank, which
authorises the transaction.
Day Two
Secure Trading sends details of
the transaction to the test bank for
settlement.
Day Three
Secure Trading checks for
confirmation of settlement from
the test bank, and updates the
transaction
accordingly.
The
transaction was confirmed as
settled by the bank.
settlestatus – 0
“Pending settlement”
settlestatus – 10
“Settling”
settlestatus – 100
“Settled”
(e.g.)
transactionreference – 1-1-1
XML Response received by merchant
(e.g.)
transactionreference – 1-1-1
(e.g.)
transactionreference – 1-1-1
Notification sent to merchant
© Secure Trading Limited 2017
7 April 2017
Page 45 / 51
ACH
10.2.2
Sent for settlement immediately after successful authorisation
To simulate an ACH transaction that is sent for settlement immediately after authorisation,
submit a valid ACH AUTH XML Request with the following fields:
achaccountnumber – “123456781”
amount – “1011”
settlestatus – “100”
Day One
Secure Trading interprets the
AUTH XML Request and contacts
a simulated test bank, which
authorises the transaction. Details
of the transaction are then sent to
the test bank for settlement.
Day Two
Secure Trading checks for
confirmation of settlement from
the test bank, and updates the
transaction
accordingly.
The
transaction was confirmed as
settled by the bank.
settlestatus – 10
“Settling”
settlestatus – 100
“Settled”
(e.g.)
transactionreference – 1-1-2
XML Response received by merchant
(e.g.)
transactionreference – 1-1-2
Notification sent to merchant
10.2.3
Authorised and settled successfully by test bank, then Chargeback generated
To simulate an ACH transaction that is authorised and settled by the test bank and then a
Chargeback is generated, submit a valid ACH AUTH XML Request with the following fields:
achaccountnumber – “123456781”
amount – “1044”, “820544” or “822944”
(the different amounts shown here simulate different response codes in the
Chargeback, following confirmation)
Day One
Secure Trading interprets the
AUTH XML Request and contacts
a simulated test bank, which
authorises the transaction.
Day Two
Secure Trading sends details of
the transaction to the test bank for
settlement.
Day Three
Secure Trading checks for
confirmation of settlement from
the test bank, and updates the
transaction accordingly. They
receive
information
of
a
Chargeback, which is recorded as
a separate transaction.
settlestatus – 0
“Pending settlement”
(e.g.)
transactionreference – 1-1-3
XML Response received by merchant
settlestatus – 10
“Settling”
settlestatus – 100
“Settled”
(e.g.)
transactionreference – 1-1-3
(e.g.)
transactionreference – 1-1-3
Notification sent to merchant
Simulates chargeback generation
settlestatus – 100
“Settled”
(e.g.)
transactionreference – 1-1-4
Notification sent to merchant
© Secure Trading Limited 2017
7 April 2017
Page 46 / 51
ACH
10.2.4
Authorised but cancelled by test bank
To simulate an ACH transaction that is authorised and cancelled by the test bank, submit a valid
ACH AUTH XML Request with the following fields:
achaccountnumber – “123456781”
amount – “1033”, “821633” or “823233”
(the different amounts shown here simulate different response codes in the AUTH
following confirmation)
Day One
Secure Trading interprets the
AUTH XML Request and contacts
a simulated test bank, which
authorises the transaction.
Day Two
Secure Trading sends details of
the transaction to the test bank for
settlement.
Day Three
Secure Trading checks for
confirmation of settlement from
the test bank, and updates the
transaction
accordingly.
The
transaction was cancelled by the
bank.
settlestatus – 0
“Pending settlement”
(e.g.)
transactionreference – 1-1-5
XML Response received by merchant
settlestatus – 10
“Settling”
settlestatus – 3
“Cancelled”
(e.g.)
transactionreference – 1-1-5
(e.g.)
transactionreference – 1-1-5
Notification sent to merchant
10.2.5
Declined by the test bank
To simulate an ACH transaction that is declined by the test bank, submit a valid ACH AUTH
XML Request with the following fields:
achaccountnumber – “123456782”
amount – “1011”
Day One
Secure Trading interprets the
AUTH XML Request and contacts
a simulated test bank, which
declines the transaction.
settlestatus – 3
“Declined”
(e.g.)
transactionreference – 1-1-6
XML Response received by merchant
© Secure Trading Limited 2017
7 April 2017
Page 47 / 51
ACH
11
Further Information and Support
This section provides useful information with regards to documentation and support for the
Merchant’s Secure Trading solution.
11.1
Secure Trading Support
If you have any questions regarding integration or maintenance of the system, please contact
our support team using one of the following methods.
Method
Telephone
Fax
Email
Website
11.2
Details
+44 (0) 1248 672 050
+44 (0) 1248 672 099
[email protected]
http://www.securetrading.com/support/support.html
Secure Trading Sales
If you do not have an account with Secure Trading, please contact our Sales team and they will
inform you of the benefits of a Secure Trading account.
Method
Telephone
Telephone (Int’l)
Fax
Email
Website
11.3
Details
0800 028 9151
+44 (0) 1248 672 070
+44 (0) 1248 672 079
[email protected]
http://www.securetrading.com
Useful Documents
The documents listed below should be read in conjunction with this document:
STPP XML Specification Documentation – This document outlines fields used in XML
Requests and Responses by Secure Trading.
STPP Notifications – This document outlines how to configure notifications for events
that occur on your Secure Trading account.
STPP Chargebacks – This document introduces the reader to Chargebacks and how
they are processed through STPP.
STAPI Setup Guide – This document outlines how to install a STAPI java client. This
client can be used to process XML Requests and Responses through Secure Trading.
XML Reference Transaction Query – This document outlines how to perform a
Transaction Query Request.
XML Reference Transaction Update – This document outlines how to perform a
Transaction Update Request.
Any other document regarding the STAPI system can be found on Secure Trading’s website
(http://www.securetrading.com). Alternatively, please contact our support team as outlined
above.
11.4
Frequently Asked Questions
Please visit the FAQ section on our website (http://www.securetrading.com/support/faq).
© Secure Trading Limited 2017
7 April 2017
Page 48 / 51
ACH
12
Appendix
12.1
ACH Response Codes
The following section outlines the response codes and messages that can be returned from
your acquiring bank in ACH transaction responses. These are correct at time of writing, but are
subject to change. For further information on ACH response codes (also referred to as “return
codes”), please contact your acquirer.
Response
Code
A01
P15
P40
P41
P50
P70
P71
P73
R01
R02
R03
R04
R05
R06
R07
R08
R09
R10
R11
R12
R13
R14
R15
R16
R17
R18
R19
R20
R21
R22
R23
R24
R25
R26
R27
R28
R29
R30
Response message
APPROVED
HIGH RISK
NO NEG INFO
NEGATIVE INFO
NO INFO
VALIDATED
LOW RISK APPROVAL
MEDIUM RISK APPROVAL
Insufficient Funds
Account Closed
No Account/Unable to Locate Account
Invalid Account Number
Reserved
Returned per ODFIs Request
Authorization Revoked by Customer
Payment Stopped or Stop Payment on Item
Uncollected Funds
Customer Advises Not Authorized
Check Truncation Entry Return
Branch sold to another DFI
RDFI not qualified to participate
Re-presentment payee deceased or unable to continue in that capacity
Beneficiary of account holder deceased
Account Frozen
File record edit criteria
Improper effective entry date
Amount field error
Non-Transaction Account
Invalid company identification
Invalid individual ID number
Credit entry refused by receiver
Duplicate entry
Addenda error
Mandatory field error
Trace number error
Routing number check digit error
Corporate customer advises not authorized
RDFI not participant in check truncation program
© Secure Trading Limited 2017
7 April 2017
Page 49 / 51
ACH
Response
Code
R31
R32
R33
R34
R35
R36
R40
R41
R42
R43
R44
R45
R46
R47
R50
R51
R52
R61
R62
R63
R64
R65
R66
R67
R68
R69
R70
R71
R72
R73
R74
R80
R81
R82
R83
U02
U10
U12
U13
U15
U18
U19
U25
U26
U27
U28
Response message
Permissible return entry
RDFI non-settlement
Return of XCK entry
Limited participation DFI
Return of improper debit entry
Return of improper credit entry
Return of ENR entry by Federal Government Agency (ENR Only)
Invalid transaction code (ENR Only)
Routing number/check digit error (ENR only)
Invalid DFI account number (ENR only)
Invalid individual ID number (ENR only)
Invalid individual name/company name (ENR only)
Invalid representative payee indicator (ENR only)
Duplicate enrollment
State Law Affecting RCK Acceptance
Item is Ineligible, Notice Not Provided, Signature not genuine
Stop Payment on Item
Misrouted return
Incorrect trace number
Incorrect dollar amount
Incorrect individual identification
Incorrect transaction code
Incorrect company identification
Duplicate return
Untimely Return
Multiple Errors
Permissible return entry not accepted
Misrouted dishonored return
Untimely dishonored return
Timely original return
Corrected return
Cross-Border Payment Coding Error
Non-Participant in Cross-Border Program
Invalid Foreign Receiving DFI Identification
Foreign Receiving DFI Unable to Settle
TRN NOT APPROVED
DUPLICATE TRANSACTION
UPDATE NOT ALLOWED
ORIG TRANS NOT FOUND
ALREADY VOIDED ALREADY CAPTURED
UPDATE FAILED
INVALID TRN
INVALID AMOUNT
INVALID DATA
CONV FEE NOT ALLOWED
CONV FEE INCORRECT
© Secure Trading Limited 2017
7 April 2017
Page 50 / 51
ACH
Response
Code
U29
U30
U51
U54
U80
U81
U82
U83
U84
U85
U88
U90
Response message
CONV FEE DECLINED
PRINCIPAL DECLINED
MERCHANT STATUS
INVALID MERCHANT CONFIG
PREAUTH DECLINE
PREAUTH TIMEOUT
PREAUTH ERROR
AUTH DECLINE
AUTH TIMEOUT
AUTH ERROR
PREAUTH BUSY
PREAUTH UNAVAIL
© Secure Trading Limited 2017
7 April 2017
Page 51 / 51