Version 2.0.2
Last Updated: 9/9/2020

Overview

The SecurePay 2 Payment API is a web service that allows merchants to securely interface with SecurePay to process transactions. The web service is an extension of the SecurePay gateway product offering and allows merchants who already have websites or applications to easily integrate with the SecurePay gateway to accept credit card payment. The API can be used in most programming languages that support web services.

This API document provides the necessary information to transmit payment processing information to SecurePay’s gateway servers directly from a web server or other application connected to the internet using the standard SOAP web service protocol.

API

If you plan to utilize the SecurePay API the minimum requirements have to be met and are as follows listed below. These requirements have to be met if these requirements are not been met than you will not be able to use the SecurePay API as an integration method for your integration needs.

  • Active SecurePay account.
  • SecurePay Merchant ID.
  • Website or Integration method must use HTTPS

Supported Web Service Protocols

  • SOAP – Simple Object Access Protocol. Common, platform independent communication protocol.

Service URLs

Service API Functions

Below are the supported service API function(s).

  • ProcessTransaction – is used to process a card transaction.

Service Request Object

Property Required Type Description
MerchantID Yes long A unique merchant identifier assigned to the Merchant by SecurePay.
TransactionKey Yes string A passcode to add an additional layer of protection to your online transactions. This prevents anyone from creating an interface to your merchant account without your authorization. This feature can be modified in the Merchant Portal under the SecureGuard link on the navigation menu.
CreateToken No boolean Allows the card number to be converted into an encrypted token which allows you to process the card holder’s transaction without the card number being required.
TransactionType Yes Alphanumeric Allows the card number to be converted into an encrypted token which allows you to process the card holder’s transaction without the card number being required.
SALE – Indicates a charge to be placed against a credit card account.
CREDIT – Indicates a refund or “credit” to be placed against a credit card account.
PREAUTH– Indicates a pre-authorization on a Credit Card. This is a temporary hold on an Amount submitted by the Merchant. This is not a qualified transaction and if not closed with a FORCE transaction it will release the hold after 5-7 days depending on the card issuer. This can have a negative impact on the funds availability of the card holder and should be used appropriately.
FORCE – Indicates a closure of a previously PREAUTH (pre-authorized) transaction.
VOID – Indicates a reversal of a transaction conducted on the same business day.
Amount Yes decimal The amount of the transaction. Needs to be decimal format to 2 decimal places, ranging from 0.01 to 1000000.00.
CardNumber Yes string The account number of the credit card. The type of card that is acceptable depends what is setup for the SecurePay account profile. SecurePay accepts Visa, MasterCard, Discover, and American Express cards to be processed through our gateway. This parameter is also used to process Tokens and Swipe Track Data. No spaces, dashes or other special characters.
IsSwipe Yes boolean Indicator for a swipe transaction.
ExpirationDate Yes* string
i.e. 0118
The expiration date of the credit card. No spaces, dashes or other special characters. Not required for swipe transactions.
CVV2 Yes* string The 3 or 4 digit security code that is issued on the credit card. Not required for swipe transactions.
OriginalTransactionID No long The transaction ID issued upon completion of processing a transaction. This is used to issue Voids on transactions to remove authorization but must be completed before transaction has been settled to a batch.
ApprovalCode No string The response code issued from a transaction. This code indicates that the Transaction is approved and the Card may be honored. The code can also be used to issue Credits on transactions that have been settled to a batch.
TestRequest No boolean Identifies a transaction as a test request, for integration purposes.
CardName Yes* string The name issued on the credit card. Not required for swipe transactions.
Street Yes* string The billing street address associated with the credit card. Not required for swipe
transactions.
City Yes* string The billing city associated with the credit card. Not required for swipe transactions.
State Yes* string
i.e. NY, GA
The billing state associated with the credit card. Not required for swipe transactions.
Zip Yes string
i.e. 30022
The billing zip code associated with the credit card.
Country Yes* string
i.e. US
The billing country associated with the credit card. Not required for swipe transactions.
Phone No string
i.e. 800-123-4567
The contact number for the credit card holder.
Email No string The email address for the credit card holder.
CustomField1 No string Ties to Custom Field #1 for the merchant account. This allows the merchant to tie their data to the transaction (Invoice ID, etc…).This can be configured in the Merchant Portal under the Account Information link.
CustomField2 No string Ties to Custom Field #2 for the merchant account. This allows the merchant to tie their data to the transaction (Invoice ID, etc…). This can be configured in the Merchant Portal under the Account Information link.
CustomField3 No string Ties to Custom Field #3 for the merchant account. This allows the merchant to tie their data to the transaction (Invoice ID, etc…). This can be configured in the Merchant Portal under the Account Information link.
MerchantReceipt No boolean Indicates whether an email receipt will be sent to the merchant.
CardHolderReceipt No boolean Indicates whether an email receipt will be sent to the card holder.
IsRecurring No boolean Indicates whether to add the card information as a recurring billing account.
RecurringAmount No* decimal The amount that will be charged on a recurring basis. Needs to be decimal format to 2 decimal places. This field is required if IsRecurring = 1.
RecurringStartDate No* date
i.e. 10/15/2014
The date to start the recurring billing cycle. This field is required if IsRecurring = 1.
RecurringEndDate No* date The date to end recurring billing. This field is required if IsRecurring = 1.
RecurringFrequency No* string The frequency that the recurring billing will occur. This field is required if is Recurring = 1.
Weekly – reprocess the transaction weekly.
Monthly – reprocess the transaction once, monthly.
Bimonthly – reprocess the transaction every two weeks.
Quarterly – reprocess the transaction once a quarter (every 3 months).
Annually – reprocess the transaction once a year.
Biannually – reprocess the transaction twice a year.
IsAchTransaction Yes boolean Indicator for a ACH transaction
AccountNumber string Customer Bank Account Number for ACH
RoutingNumber string Customer Routing Number for ACH
AccountType string Customer Account Type, Personal, Business
BankAccountType string Customer Account Type, Saving, Checking
NameOnAccount string Customer name on the Bank Account

Service Request example:

  • REST
  • SOAP
  • JSON
  • XML

- Request URL: {service-url}/TransactionService.svc/Json/ProcessTransaction

- Request Data:
	{
		"TestRequest": "true",
		"MerchantID": "<merchant-id>",
		"CardNumber": "4012888818888",
		"ExpirationDate": "1220",
		"CardName": "Test",
		"Street": "950 North Point Pwk",
		"City": "Alpharetta",
		"State": "GA",
		"Zip": "30022",
		"Country": "US",
		"Email": "jmartin@olb.com",
		"Phone": "6782938675",
		"CVV2": "999",
		"CardType": "Visa",
		"TransactionType": "sale",
		"Amount": "4.97",
		"TransactionKey": "<transaction-key>"
	}

 

	
- Request URL: {service-url}/TransactionService.svc/Xml/ProcessTransaction

- Request Data:
<Request xmlns="http://schemas.datacontract.org/2004/07/SecurePayTransactionService">
	<Amount>3.15</Amount>
	<CVV2>999</CVV2>
	<CardName>TEST</CardName>
	<CardNumber>4111111111111111</CardNumber>
	<City>Alpharetta</City>
	<Country>United States</Country>
	<Email>hpanchal@olb.com</Email>
	<ExpirationDate>1220</ExpirationDate>
	<MerchantID>100031</MerchantID>
	<Phone>6782938675</Phone>
	<State>GA</State>
	<Street>950 North Point Pwk</Street>
	<TestRequest>true</TestRequest>
	<TransactionKey>zQsJskk2iFcv6jHq</TransactionKey>
	<TransactionType>sale</TransactionType>
	<Zip>30022</Zip>
</Request>

 

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <ProcessTransaction xmlns="http://www.securepay.net/">
         <request>
            <TestRequest>true</TestRequest>
            <MerchantID>100031</MerchantID>
            <IsSwipe>False</IsSwipe>
            <TransactionType>Sale</TransactionType>
            <TransactionKey>XXXXXXXXXXXXXX</TransactionKey>
            <CardNumber>4111111111111111</CardNumber>
            <ExpirationDate>1225</ExpirationDate>
            <CreateToken>False</CreateToken>
            <CardName>test Test</CardName>
            <Street>1 test Ave</Street>
            <City>Testing</City>
            <State>GA</State>
            <Zip>99501</Zip>
            <Country>USA</Country>
            <email>test@test.com</Email>
            <Phone>1234567890</Phone>
            <CVV2>111</CVV2>
            <TransactionType>Sale</TransactionType>
            <Amount>0.01</Amount>
            <OriginalTransactionID></OriginalTransactionID>
            <IsRecurring>false</IsRecurring>
            <RecurringAmount></RecurringAmount>
            <RecurringStartDate></RecurringStartDate>
            <RecurringFrequency></RecurringFrequency>
            <RecurringEndDate></RecurringEndDate>
            <ApprovalCode></ApprovalCode>
            <CustomValue1>test Value</CustomValue1>
            <CustomValue2></CustomValue2>
            <CustomValue3></CustomValue3>
            <MerchantReceipt>True</MerchantReceipt>
            <CardHolderReceipt>True</CardHolderReceipt>
            <IsAchTransaction>False</IsAchTransaction>
            <AccountNumber></AccountNumber>
            <RoutingNumber></RoutingNumber>
            <AccountType></AccountType>
            <BankAccountType></BankAccountType>
            <NameOnAccount></NameOnAccount>
         </request>
      </ProcessTransaction>
  </soap:Body>
</soap:Envelope>

 

Service Response Values

Property Type Description
TransactionID long A unique identifier assigned to the transaction by SecurePay. This is used to issue Voids on transactions to remove authorization but must be completed before transaction has been settled to a batch.
ResponseCode string A response code for the transaction response from the authorization platform.
00 = Approved Transaction
05 = Decline Transaction
SG99 = Reject Transaction due to Secure Guard Settings
SP05 = Decline Transaction due to AVS Rejection.
ResponseMessage string The response message for the transaction from the authorization platform.
Approved = Approved Transaction
Decline = Decline Transaction
SecureGuard setting: = SecureGuard setting that caught transaction.
ResponseMessageDetail string Further detailed response information for the transaction from the authorization platform.
ApprovalCode string The approval code issued from a transaction. This code indicates that the Transaction is approved and the Card may be honored. The code can also be used to issue Credits on transactions that have been settled to a batch.
Token string A randomly generated value that maps back to the sensitive card data stored in SecurePay. The token can be safely stored in your application and used for subsequent transactions.
AVSResponseCode string The Address Verification System response. See below for detailed responses.
RecurringResponse string This indicates success in setting up the transaction as a recurring transaction.
Success = Enter into the Recurring databases successful
Failed = Not Entered into the Recurring Database
Not Requested = Not Requested from the API
RecurringAmount string The amount that will be charged on a recurring basis.
RecurringStartDate string The date to start the recurring billing cycle.
RecurringEndDate string The date to end recurring billing.
CustomField1 string Custom Field #1 for the merchant account. This allows the merchant to tie their data to the transaction (Invoice ID, etc…). This can be configured in the Merchant Portal under the Account Information link.
CustomValue1 Alphanumeric Ties to Custom Field #1 for the merchant account. This allows the merchant to tie their data to the transaction (Invoice ID, etc…). This can be configured in the Merchant Portal under the Account Information link
CustomField2 Alphanumeric Custom Field #2 for the merchant account. This allows the merchant to tie their data to the transaction (Invoice ID, etc…). This can be configured in the Merchant Portal under the Account Information link.
CustomValue2 Alphanumeric Ties to Custom Field #2 for the merchant account. This allows the merchant to tie their data to the transaction (Invoice ID, etc…). This can be configured in the Merchant Portal under the Account Information link.
CustomField3 Alphanumeric Custom Field #3 for the merchant account. This allows the merchant to tie their data to the transaction (Invoice ID, etc…). This can be configured in the Merchant Portal under the Account Information link.
CustomValue3 Alphanumeric Ties to Custom Field #3 for the merchant account. This allows the merchant to tie their data to the transaction (Invoice ID, etc…). This can be configured in the Merchant Portal under the Account Information link.

Service Response example:

  • REST
  • SOAP
  • JSON
  • XML

- Response Data:
	{
		"ApprovalCode": "TAS352",
		"AvsResponseCode": "N",
		"CustomField1": "",
		"CustomField2": "",
		"CustomField3": "",
		"CustomValue1": "",
		"CustomValue2": "",
		"CustomValue3": "",
		"RecurringAmount": "",
		"RecurringEndDate": "",
		"RecurringResponse": "Not Requested",
		"RecurringStartDate": "",
		"ResponseCode": "00",
		"ResponseMessage": "Approved",
		"ResponseMessageDetail": "NO  MATCH",
		"Token": "",
		"TransactionID": 86597
	}

 

<Response xmlns="http://schemas.datacontract.org/2004/07/SecurePayTransactionService" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
	<ApprovalCode>TAS864</ApprovalCode>
	<AvsResponseCode>N</AvsResponseCode>
	<CustomField1/>
	<CustomField2/>
	<CustomField3/>
	<CustomValue1/>
	<CustomValue2/>
	<CustomValue3/>
	<RecurringAmount/>
	<RecurringEndDate/>
	<RecurringResponse>Not Requested</RecurringResponse>
	<RecurringStartDate/>
	<ResponseCode>00</ResponseCode>
	<ResponseMessage>Approved</ResponseMessage>
	<ResponseMessageDetail>NO MATCH</ResponseMessageDetail>
	<Token/>
	<TransactionID>86586</TransactionID>
	<TransactionID>86586</TransactionID>
</Response>

 

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
	<soap:Body>
		<ProcessTransactionResponse xmlns="http://www.securepay.net/">
			<ProcessTransactionResult>
				<TransactionID>11111</TransactionID>
				<ResponseCode>00</ResponseCode>
				<ResponseMessage>Approved</ResponseMessage>
				<ResponseMessageDetail></ResponseMessageDetail>
				<ApprovalCode>123456</ApprovalCode>
				<Token></Token>
				<AvsResponseCode>A</AvsResponseCode>
				<RecurringResponse></RecurringResponse>
				<RecurringAmount></RecurringAmount>
				<RecurringStartDate></RecurringStartDate>
				<RecurringEndDate></RecurringEndDate>
				<CustomValue1>Test Value</CustomValue1>
				<CustomValue2></CustomValue2>
				<CustomValue3></CustomValue3>
				<CustomField1></CustomField1>
				<CustomField2></CustomField2>
				<CustomField3></CustomField3>
			</ProcessTransactionResult>
		</ProcessTransactionResponse>
	</soap:Body>
</soap:Envelope>

 

AVS Response Code

The AVS Response variable provides a method to develop a business rule set to work in conjunction with the AVSREQ variable to limit merchant liability in credit card acceptance. The AVS system involves presenting 2 pieces of data to the processor as a comparative check against information the processor has on file. The data used in this comparison are the “Billing Street Address” and the “Billing Zip Code” of the credit card holder. Dependent on the success of the comparative match on this information the value of the AVS Response variable will be one of the following:

AVS Code AVS Definition
A Address (Street) matches, Zip does not.
E AVS Error
G Issuing bank does not subscribe to the AVS system
N No match on Address or Zip Code.
R Retry, system unavailable or timed out.
S Service not supported by issuer.
U Address information unavailable
W 9 digit Zip matches, Address does not.
X Exact AVS match
Y Address and 5 digit zip code match.
Z 5 digit Zip Code matches, Address does not.

Note: The AVS system used by SecurePay.Com supports the United States. All AVS requests for Card Accounts issued outside the US may or may not return an AVS match. It is dependent on the card issuing bank and whether that card issuing bank subscribes and participates with the AVS system. AVS requests for cards issued outside the US where the bank does not participate in the AVS process will contain a specific AVS Response of “G”.

ACH Transaction

ACH Transaction Request example:

  • REST
  • SOAP
  • JSON
  • XML

- Request URL: {service-url}/TransactionService.svc/Json/ProcessTransaction

- Request Data:
	{
		"TestRequest": "true",
		"MerchantID": "100031",
		"Street": "950 North Point Pwk",
		"City": "Alpharetta",
		"State": "GA",
		"Zip": "30022",
		"Country": "US",
		"Email": "jmartin@olb.com",
		"Phone": "6782938675",
		"CardType": "Visa",
		"TransactionType": "sale",
		"Amount": "5.74",
		"TransactionKey": "zQsJskk2iFcv6jHq",
		"IsAchTransaction": true,
		"AccountNumber": "5637492437",
		"RoutingNumber": "111000025",
		"AccountType": "Checking",
		"BankAccountType": "Personal",
		"NameOnAccount": "TEST"
	}

 

Request URL: {service-url}/TransactionService.svc/Xml/ProcessTransaction

- Request Data:
<Request xmlns="http://schemas.datacontract.org/2004/07/SecurePayTransactionService">
	<AccountNumber>5637492437</AccountNumber>
	<AccountType>Checking</AccountType>
	<Amount>2.89</Amount>
	<BankAccountType>Personal</BankAccountType>
	<City>Alpharetta</City>
	<Country>United States</Country>
	<Email>hpanchal@olb.com</Email>
	<IsAchTransaction>true</IsAchTransaction>
	<MerchantID>100031</MerchantID>
	<NameOnAccount>TEST</NameOnAccount>
	<Phone>4803333333</Phone>
	<RoutingNumber>111000025</RoutingNumber>
	<State>GA</State>
	<Street>950 North Point Pwk</Street>
	<TestRequest>true</TestRequest>
	<TransactionKey>zQsJskk2iFcv6jHq</TransactionKey>
	<TransactionType>sale</TransactionType>
	<Zip>30022</Zip>
</Request>

 

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
	<soap:Body>
		<ProcessTransaction xmlns="http://www.securepay.net/">
			<request>
				<TestRequest>true</TestRequest>
				<MerchantID>100031</MerchantID>
				<CardNumber>string</CardNumber>
				<Street>950 North Point Pwk </Street>
				<City>Alpharetta</City>
				<State>GA</State>
				<Zip>30022</Zip>
				<Country>US</Country>
				<Phone>4803333333</Phone>
				<TransactionType>Sale</TransactionType>
				<Amount>2.30</Amount>
				<TransactionKey>zQsJskk2iFcv6jHq</TransactionKey>
				<IsAchTransaction>true</IsAchTransaction>
				<AccountNumber>5637492437</AccountNumber>
				<RoutingNumber>111000025</RoutingNumber>
				<AccountType>Checking</AccountType>
				<BankAccountType>Personal</BankAccountType>
				<NameOnAccount>TEST</NameOnAccount>
			</request>
		</ProcessTransaction>
	</soap:Body>
</soap:Envelope>

 

ACH Transaction Response example:

  • REST
  • SOAP
  • JSON
  • XML

- Response Data:
	{
		"ApprovalCode": "T:5QHQ090MLA7",
		"AvsResponseCode": null,
		"CustomField1": null,
		"CustomField2": null,
		"CustomField3": null,
		"CustomValue1": "",
		"CustomValue2": "",
		"CustomValue3": "",
		"RecurringAmount": null,
		"RecurringEndDate": null,
		"RecurringResponse": null,
		"RecurringStartDate": null,
		"ResponseCode": "00",
		"ResponseMessage": "Approved",
		"ResponseMessageDetail": null,
		"Token": null,
		"TransactionID": 0
	}

 

- Response Data:
<Response xmlns="http://schemas.datacontract.org/2004/07/SecurePayTransactionService" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
	<ApprovalCode>T:JQHQ090MLA7</ApprovalCode>
	<AvsResponseCode i:nil="true"/>
	<CustomField1 i:nil="true"/>
	<CustomField2 i:nil="true"/>
	<CustomField3 i:nil="true"/>
	<CustomValue1/>
	<CustomValue2/>
	<CustomValue3/>
	<RecurringAmount i:nil="true"/>
	<RecurringEndDate i:nil="true"/>
	<RecurringResponse i:nil="true"/>
	<RecurringStartDate i:nil="true"/>
	<ResponseCode>00</ResponseCode>
	<ResponseMessage>Approved</ResponseMessage>
	<ResponseMessageDetail i:nil="true"/>
	<Token i:nil="true"/>
	<TransactionID>0</TransactionID>
</Response>

 

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
	<soap:Body>
		<ProcessTransactionResponse xmlns="http://www.securepay.net/">
			<ProcessTransactionResult>
				<TransactionID>0</TransactionID>
				<ResponseCode>00</ResponseCode>
				<ResponseMessage>Approved</ResponseMessage>
				<ApprovalCode>T:43FD78ZLLA3</ApprovalCode>
				<CustomValue1 />
				<CustomValue2 />
				<CustomValue3 />
			</ProcessTransactionResult>
		</ProcessTransactionResponse>
	</soap:Body>
</soap:Envelope>

 

All code is developed by SecurePay.com is protected by Copyright.
Copyright SecurePay.com, Inc., All rights Reserved.

Distribution rights are held by SecurePay.Com. This file is not to be published or distributed without written permission from SecurePay.com
Questions and inquiries should be directed to:

SecurePay Technical Support 855.452.7135 services@securepay.com