NAV Navbar

Logo

Introduction

USIO - Payments API 2.0 Documentation

USIO Payments API 2.0 is a robust web service with SOAP, WCF and REST/JSON endpoints.
This API allows you to submit debits and credits through the Debit Card/ACH/Credit Card networks.
You will also be able to setup recurring payments, Void or Return payments, view transaction details, and run reports.

Last updated on, 10/4/2019 © USIO.

Change Log

DateAuthorDoc VersionChange Summary
11/7/2018 Tracy Rickman 2.0 Initial web release
12/5/2018 Rachel Carlini 2.01 Minor text fixes
12/28/2018 Tracy Rickman 2.02 Updates to Printed Check Method
and Minor text fixes
1/14/2019 Tracy Rickman 2.03 Added Cash Payment method
3/12/2019 Tracy Rickman 2.04 Added MasterCard RPPS methods and ConvFee Amount output
3/13/2019 Tracy Rickman 2.05 Added new Gateway and PDS response codes
3/25/2019 Rachel Carlini 2.06 Added Get Convenience Fee method
4/12/2019 Tracy Rickman 2.07 Added mobile wallet support
4/30/2019 Rachel Carlini 2.08 Added Biller Class to FindBiller return object
5/8/2019 Tracy Rickman 2.09 Added sample check image for Printed Checks.
Corrected JSON response from RPPS FindBiller.
5/20/2019 Rachel Carlini 2.10 Updated Repeating Payments to include notes on ACH and CC transactions.
5/24/2019 Rachel Carlini 2.11 Added Remote Check Creation section
5/29/2019 Bhumika Kachhadia 2.12 Added final status messagae table
6/5/2019 Tracy Rickman 2.13 Added Prefunding Balance method
6/6/2019 Andrew Reese 2.14 Added Remote Check Return Codes
6/12/2019 Tracy Rickman 2.15 Added Void Print Check and Void RPPS payment methods
6/27/2019 Andrew Reese 2.16 Added Additional PDS Response Codes
7/8/2019 Andrew Reese 2.17 Added Additional Gateway Response Codes
7/15/2019 Andrew Reese 2.18 Added Cancel Repeat Payment method
7/23/2019 Tracy Rickman 2.19 Added Secondary Amount to the Repeating Payments method
8/8/2019 Tracy Rickman 2.20 Correction to GetConvenienceFee return values
8/26/2019 Andrew Reese 2.21 Added IsPinless boolean to the GetConvenienceFee method
8/27/2019 Andrew Reese 2.22 Added SecondaryAmount to PinlessDebit/Credit methods
10/4/2019 Andrew Reese 2.23 Added Verify ACH Account method

Environment

SANDBOX & PRODUCTION https://api.securepds.com

Sandbox & Production

https://api.securepds.com

Our sandbox and production servers share the same URL.
The correct systems will be chosen based on the credentials submitted.

SOAP/WFC WSDL

https://api.securepds.com/2.0/payments.svc?wsdl

REST/JSON Endpoints and definitions:

https://api.securepds.com/2.0/payments.svc/json/help

Required Parameters in all calls

Parameter NameDescription
MerchantID Merchant ID assigned by USIO Systems
Login API Username
Password API Password

Parameter values for Sandbox

Parameter NameTest Value
MerchantID 0000000001
Login API0000000001
Password Temp1234!

If you require a private sandbox please contact us at integrations@usio.com

Pinless Debit Card Payments

Pinless Bin Check

POST https://api.securepds.com/2.0/payments.svc/JSON/PinlessBinCheck

            
{
	"MerchantID": "string",
	"Login": "string",
	"Password": "string",
	"CardNumber": "string"
}
                
            

The above command returns the following JSON structure:

            
{
	"Status": "string",
	"Message": "string",
	"PinlessCredit": true,
	"PinlessDebit": true
}
                
            

This method is used to check the eligibility of a card number for pinless debit and credit operations.

HTTP Request

POST https://api.securepds.com/2.0/payments.svc/JSON/PinlessBinCheck

Parameters

NameTypeRequiredLengthDescription
MerchantID string Required 6-10 Merchant Identification Number
Login string Required 6-12 API Username
Password string Required max 25 API Password
CardNumber string Required 14-17 Debit Card Number

Response

NameTypeDescription
Status string "success" or "failure"
Message string On failure will contain the error description
PinlessCredit bool Boolean result of pinless credit operation eligibility
PinlessDebit bool Boolean result of pinless credit operation eligibility

Pinless Debit/Credit

POST https://api.securepds.com/2.0/payments.svc/JSON/PinlessDebit
POST https://api.securepds.com/2.0/payments.svc/JSON/PinlessCredit

            
{
	"MerchantID": "string",
	"Login": "string",
	"Password": "string",
	"CardNumber": "string",
	"CVV": "string",
	"ExpDate": "string",
	"Amount": "string",
	"FirstName": "string",
	"LastName": "string",
	"EmailAddress": "string",
	"Address1": "string",
	"Address2": "string",
	"City": "string",
	"State": "string",
	"Zip": "string",
	"Province": "string",
	"Country": "string",
	"MerchantPayAccount": "string",
	"OfficeID": "string",
	"UserID": "string",
	"AdditionalSearch": "string",
	"AccountCode1": "string",
	"AccountCode2": "string",
	"AccountCode3": "string",
	"SecondaryAmount": "string"
}
                
            

The above command returns the following JSON structure:

            
{
	"Status": "string",
	"Message": "string",
	"Confirmation": "string"
}
                
            

These methods are used to debit (retrieve) funds from a Debit Card or credit (send) funds to a Debit Card

Important Information

To tokenize the card number send in an amount of 0.00, this will not authorize the card.

HTTP Request

POST https://api.securepds.com/2.0/payments.svc/JSON/PinlessDebit

POST https://api.securepds.com/2.0/payments.svc/JSON/PinlessCredit

Parameters

NameTypeRequiredLengthDescription
MerchantID string Required 6-10 Merchant Identification Number
Login string Required 6-12 API Username
Password string Required max 25 API Password
CardNumber string Required 14-17 Debit Card Number
CVV string Optional 3-4 CVC/CVV Number
ExpDate string Required 6 Expiration Date (MMYYYY)
Amount string Required max 8 Total Amount of Transaction including fees (#0.00)
FirstName string Required 2-19 Card holder first name
LastName string Required 2-19 Card holder last name
EmailAddress string Required 2-39 Card holder email address
Address1 string Required 2-39 Card holder address 1
Address2 string Optional 2-39 Card holder address 2
City string Required 2-39 Card holder city
State string Required 2 Card holder state code
Zip string Required 4-10 Card holder zip code (international supported)
Province string Optional 2-39 Card holder Province
Country string Required 2 Card holder Country
MerchantPayAccount string Optional max 32 Optional reporting field
OfficeID string Optional max 10 Optional reporting field
UserID string Optional max 15 Optional reporting field
AdditionalSearch string Optional max 20 Optional reporting field
AccountCode1 string Optional max 20 Optional reporting field
AccountCode2 string Optional max 20 Optional reporting field
AccountCode3 string Optional max 20 Optional reporting field
SecondaryAmount string Optional max 6 Secondary Amount to denote what portion of the amount field should be applied as a convenience fee/split settlement fee. (Debits Only)

Response

NameTypeDescription
Status string "success" or "failure"
Message string On failure will contain the error description
Confirmation string On success will contain the transaction confirmation ID

Pinless Return

POST https://api.securepds.com/2.0/payments.svc/JSON/PinlessReturn

            
{
	"MerchantID": "string",
	"Login": "string",
	"Password": "string",
	"Amount": "string",
	"Confirmation": "string"
}
                
            

The above command returns the following JSON structure:

            
{
	"Status": "string",
	"Message": "string",
	"Confirmation": "string"
}
                
            

This method is used to return funds to a Debit Card

HTTP Request

POST https://api.securepds.com/2.0/payments.svc/JSON/PinlessReturn

Parameters

NameTypeRequiredLengthDescription
MerchantID string Required 6-10 Merchant Identification Number
Login string Required 6-12 API Username
Password string Required max 25 API Password
Amount string Required max 8 Amount of Transaction (#0.00)
Confirmation string Required 15-20 Confirmation ID from original transaction

Response

NameTypeDescription
Status string "success" or "failure"
Message string On failure will contain the error description
Confirmation string On success will contain the transaction confirmation ID

Credit Card Payments

Credit Card Payment

POST https://api.securepds.com/2.0/payments.svc/JSON/SubmitCCPayment

            
{
	"MerchantID": "string",
	"Login": "string",
	"Password": "string",
	"CardNumber": "string",
	"CardType": "string",
	"CVV": "string",
	"ExpDate": "string",
	"Amount": "string",
	"FirstName": "string",
	"LastName": "string",
	"EmailAddress": "string",
	"Address1": "string",
	"Address2": "string",
	"City": "string",
	"State": "string",
	"Zip": "string",
	"Province": "string",
	"Country": "string",
	"MerchantPayAccount": "string",
	"OfficeID": "string",
	"UserID": "string",
	"AdditionalSearch": "string",
	"AccountCode1": "string",
	"AccountCode2": "string",
	"AccountCode3": "string",
	"ConvFeeAmount": "string",
	"secure3D": "string",
	"AuthOnly": false,
	"TerminalID": "string",
	"MobileWalletType": "string",
	"MobileWalletCryptogram": "string",
	"MobileWalletECI": "string",
	"TrackData": "string"
}
                
            

The above command returns the following JSON structure:

            
{
	"Status": "string",
	"Message": "string",
	"Confirmation": "string"
}
                
            

This method is used to generate Credit Card Payments and to tokenize card information

Important Information

To tokenize the card number send in an amount of 0.00, this will not authorize the card.

By default all transactions when ran in test mode will return a successful response. To simulate a failure please pass the card number of 4111111111111111 and a special amount to get various responses.

AmountDescription
1.01 Failure response of 51: insufficient funds
1.02 Failure response of 05: do not honor
1.03 Failure response of p55: invalid credit card number
1.04 Failure response of n7: cvv2 value supplied is invalid Also sets the CVVResponse value to “N” on the transaction record
1.05 Successful response, but marks payment record with a “N” for the AVS code

HTTP Request

POST https://api.securepds.com/2.0/payments.svc/JSON/SubmitCCPayment

Parameters

NameTypeRequiredLengthDescription
MerchantID string Required 6-10 Merchant Identification Number
Login string Required 6-12 API Username
Password string Required max 25 API Password
CardNumber string Required 14-17 Debit Card Number
CardType string Required 4 VISA, MSTR, DISC, AMEX
CVV string Optional 3-4 CVC/CVV Number
ExpDate string Required 6 Expiration Date (MMYYYY)
Amount string Required max 8 Total Amount of Transaction Including fees (#0.00)
FirstName string Required 2-19 Card holder first name
LastName string Required 2-19 Card holder last name
EmailAddress string Required 2-39 Card holder email address
Address1 string Required 2-39 Card holder address 1
Address2 string Optional 2-39 Card holder address 2
City string Required 2-39 Card holder city
State string Required 2 Card holder state code
Zip string Required 4-10 Card holder zip code (international supported)
Province string Optional 2-39 Card holder Province
Country string Required 2 Card holder Country
MerchantPayAccount string Optional max 32 Optional reporting field
OfficeID string Optional max 10 Optional reporting field
UserID string Optional max 15 Optional reporting field
AdditionalSearch string Optional max 20 Optional reporting field
AccountCode1 string Optional max 20 Optional reporting field
AccountCode2 string Optional max 20 Optional reporting field
AccountCode3 string Optional max 20 Optional reporting field
ConvFeeAmount string Optional max 6 Secondary Amount to denote what portion of the amount field should be applied as a convenience fee or split settlement. (Vantiv Only)
secure3D string Optional Field to contain CAVV, XID, and ECI for VISA transactions only. Fields must be separated by pipes in this order. CAVV|XID|ECI
AuthOnly bool Optional false = Sale Transaction, true = Auth Only
TerminalID string Optional max 10 Tenerum terminal ID. When sending terminal ID, leave card number, expiration date and CVV empty.
MobileWalletType string Optional max 3 Mobile wallet Type: 1 = Google Pay, 2 = Apple Pay, 3 = Samsung Pay
MobileWalletCryptogram string Optional max 100Cryptogram received from mobile wallet (Required if MobileWalletType is set)
MobileWalletECI string Optional max 10 ECI code received from mobile wallet (Required if MobileWalletType is set)
TrackData string Optional max 150Unecypted Tack1/Track2 or combined Track1 and Tack2 data. If sending encrypted track data please contact us for formatting specifications.

Response

NameTypeDescription
Status string "success" or "failure"
Message string On failure will contain the error description
Confirmation string On success will contain the transaction confirmation ID

Mark/Capture Transaction

POST https://api.securepds.com/2.0/payments.svc/JSON/MarkCCPayment

            
{
	"MerchantID": "string",
	"Login": "string",
	"Password": "string",
	"Amount": "string",
	"ConfirmationID": "string",
	"ConvFeeAmount": "string"
}
                
            

The above command returns the following JSON structure:

            
{
	"Status": "string",
	"Message": "string",
	"Confirmation": "string"
}
                
            

This method is used to Mark/Capture a previous AuthOnly transaction.
This allows you to submit a new primary and convenience fee amount for the transaction.

HTTP Request

POST https://api.securepds.com/2.0/payments.svc/JSON/MarkCCPayment

Parameters

NameTypeRequiredLengthDescription
MerchantID string Required 6-10 Merchant Identification Number
Login string Required 6-12 API Username
Password string Required max 25 API Password
Amount string Required max 8 Total Amount of Transaction including fees (#0.00)
ConfirmationID string Required 15-20 Confirmation ID from original transaction
ConvFeeAmount string Required max 6 Secondary Amount to denote what portion of the amount field should be applied as a convenience fee or Split Settlement. (Vantiv Only)

Response

NameTypeDescription
Status string "success" or "failure"
Message string On failure will contain the error description
Confirmation string On success will contain the transaction confirmation ID

Void/Refund Transaction

POST https://api.securepds.com/2.0/payments.svc/JSON/SubmitCCVoid

            
{
	"MerchantID": "string",
	"Login": "string",
	"Password": "string",
	"Amount": "string",
	"ConfirmationID": "string"
}
                
            

The above command returns the following JSON structure:

            
{
	"Status": "string",
	"Message": "string",
	"Confirmation": "string"
}
                
            

This method allows you to request a Void/Refund of a credit card transaction.

NOTE: The void or refund operation will be automatically selected based on the current status of the transaction.
Also note that AuthOnly transactions cannot be voided.

HTTP Request

POST https://api.securepds.com/2.0/payments.svc/JSON/SubmitCCVoid

Parameters

NameTypeRequiredLengthDescription
MerchantID string Required 6-10 Merchant Identification Number
Login string Required 6-12 API Username
Password string Required max 25 API Password
Amount string Required max 8 Amount of Transaction (#0.00)
ConfirmationID string Required 15-20 Confirmation ID from original transaction

Response

NameTypeDescription
Status string "success" or "failure"
Message string On failure will contain the error description
Confirmation string On success will contain the transaction confirmation ID

ACH Payments

ACH Payment

POST https://api.securepds.com/2.0/payments.svc/JSON/SubmitACHPayment

            
{
	"MerchantID": "string",
	"Login": "string",
	"Password": "string",
	"RoutingNumber": "string",
	"AccountNumber": "string",
	"TransCode": "string",
	"Amount": "string",
	"FirstName": "string",
	"LastName": "string",
	"EmailAddress": "string",
	"Address1": "string",
	"Address2": "string",
	"City": "string",
	"State": "string",
	"Zip": "string",
	"Province": "string",
	"Country": "string",
	"MerchantPayAccount": "string",
	"OfficeID": "string",
	"UserID": "string",
	"AdditionalSearch": "string",
	"AccountCode1": "string",
	"AccountCode2": "string",
	"AccountCode3": "string",
	"ACHOpt1": "string",
	"SameDayACH": "string",
	"StandardEntryCode": "string",
	"Description": "string",
	"AddendaData": "string",
	"CheckNegativeAccounts": false,
	"TokenizeOnly": false,
	"ConvFeeAmount": "string"
}
                
            

The above command returns the following JSON structure:

            
{
	"Status": "string",
	"Message": "string",
	"Confirmation": "string"
}
                
            

This method allows you to submit ACH Debits, ACH Credits, and ACH Prenotes.
Prenotes only require amount, first name and last name fields to be entered
Additional information on transaction and SEC codes are below this method.

HTTP Request

POST https://api.securepds.com/2.0/payments.svc/JSON/SubmitACHPayment

Parameters

NameTypeRequiredLengthDescription
MerchantID string Required 6-10 Merchant Identification Number
Login string Required 6-12 API Username
Password string Required max 25 API Password
RoutingNumber string Required 9 Bank Routing Number
AccountNumber string Required max 17 Bank Account Number
TransCode string Required 2 NACHA Transaction Code
Amount string Required max 8 Total Amount of Transaction including fees (#0.00)
FirstName string Required 2-19 Account holder first name
LastName string Required 2-19 Account holder last name
EmailAddress string Required 2-39 Account holder email address
Address1 string Required 2-39 Account holder address 1
Address2 string Optional 2-39 Account holder address 2
City string Required 2-39 Account holder city
State string Required 2 Account holder state code
Zip string Required 4-10 Account holder zip code (international supported)
Province string Optional 2-39 Account holder Province
Country string Required 2 Account holder Country
MerchantPayAccount string Optional max 32 Optional reporting field
OfficeID string Optional max 10 Optional reporting field
UserID string Optional max 15 Optional reporting field
AdditionalSearch string Optional max 20 Optional reporting field
AccountCode1 string Optional max 20 Optional reporting field
AccountCode2 string Optional max 20 Optional reporting field
AccountCode3 string Optional max 20 Optional reporting field
ACHOpt1 string Optional max 20 Optional reporting field
SameDayACH string Optional max 100Enter "SD" to request same day ACH processing
StandardEntryCode string Required 3 NACHA SEC Code: See table below for valid values.
Description string Optional max 10 Optional reporting field
AddendaData string Optional max 80 Optional reporting field
CheckNegativeAccountsbool Required Request or skip negative accounts database check (additional fees apply)
TokenizeOnly bool Required Set to true to tokenize the account information instead of a transaction
ConvFeeAmount string Optional max 6 Secondary Amount to denote what portion of the amount field should be applied as a convenience fee or split settlement.
(contact sales prior to using this feature)

Response

NameTypeDescription
Status string "success" or "failure"
Message string On failure will contain the error description
Confirmation string On success will contain the transaction confirmation ID

Transactions Codes

CodeDescription
22 Credit to Checking Account
27 Debit from Checking Account
32 Credit to Savings Account
37 Debit from Savings Account
23 Prenote for Credits on a Checking Account
28 Prenote for Debits on a Checking Account
33 Prenote for Credits on a Savings Account
38 Prenote for Debits on a Savings Account

Standard Entry Codes

CodeDescription
WEB Web initiated transaction
PPD Prearranged payment and deposit
TEL Telephone initiated transaction
CCD Corporate Credit and Debit transaction

Void/Refund Transaction

POST https://api.securepds.com/2.0/payments.svc/JSON/SubmitACHVoidReturn

            
{
	"MerchantID": "string",
	"Login": "string",
	"Password": "string",
	"Amount": "string",
	"ConfirmationID": "string",
	"Description": "string",
	"PaymentID": "string",
	"UserID": "string"
}
                
            

The above command returns the following JSON structure:

            
{
	"Status": "string",
	"Message": "string",
	"Confirmation": "string"
}
                
            

This method allows you to request a Void/Return of an ACH transaction.

NOTE: The void or refund operation will be automatically selected based on the current status of the transaction.

HTTP Request

POST https://api.securepds.com/2.0/payments.svc/JSON/SubmitACHVoidReturn

Parameters

NameTypeRequiredLengthDescription
MerchantID string Required 6-10 Merchant Identification Number
Login string Required 6-12 API Username
Password string Required max 25 API Password
Amount string Required max 8 Amount of Transaction (#0.00)
ConfirmationID string Required 15-20 Confirmation ID from original transaction
Description string Optional max 10 Optional description
PaymentID string Optional max 20 Optional payment reference number
UserID string Optional max 15 Optional User ID

Response

NameTypeDescription
Status string "success" or "failure"
Message string On failure will contain the error description
Confirmation string On success will contain the transaction confirmation ID

Remote Check Payments

Remote Check Payment

POST https://api.securepds.com/2.0/payments.svc/JSON/SubmitRCCPayment

            
{
	"MerchantID": "string",
	"Login": "string",
	"Password": "string",
	"EmailAddress": "string",
	"Amount": "string",
	"FirstName": "string",
	"LastName": "string",
	"EmailAddress": "string",
	"Address1": "string",
	"Address2": "string",
	"City": "string",
	"State": "string",
	"Zip": "string",
	"RoutingNumber": "string",
	"AccountNumber": "string",
	"CheckNumber": "string",
	"BankName": "string",
	"MerchantPayAccount": "string",
	"OfficeID": "string",
	"UserID": "string",
	"AccountCode1": "string",
	"AccountCode2": "string",
	"AccountCode3": "string",
	"CheckNegativeAccounts": false
}
            
            

The above command returns the following JSON structure:

            
{
	"Status": "string",
	"Message": "string",
	"Confirmation": "string"
}
                
            

This method allows you to submit Remote Check payments.

HTTP Request

POST https://api.securepds.com/2.0/payments.svc/JSON/SubmitRCCPayment

Parameters

NameTypeRequiredLengthDescription
MerchantID string Required 6-10 Merchant Identification Number
Login string Required 6-12 API Username
Password string Required max 25 API Password
Amount string Required max 8 Amount of Transaction (#0.00)
FirstName string Required 2-19 Account holder first name
LastName string Required 2-19 Account holder last name
EmailAddress string Optional 2-39 Account holder email address
Address1 string Optional 2-39 Account holder address 1
Address2 string Optional 2-39 Account holder address 2
City string Optional 2-39 Account holder city
State string Required 2 Account holder state code
Zip string Optional 4-10 Account holder zip code
RoutingNumber string Required 9 Bank Routing Number on the check
AccountNumber string Required 4-17 Bank Account Number on the check
CheckNumber string Optional 1-10 Check Number (for record keeping only)
BankName string Optional 1-20 Issuing Bank Name
MerchantPayAccount string Optional 1-32 Optional reporting field
OfficeID string Optional max 10 Optional reporting field
UserID string Optional max 15 Optional reporting field
AccountCode1 string Optional max 20 Optional reporting field
AccountCode2 string Optional max 20 Optional reporting field
AccountCode3 string Optional max 20 Optional reporting field
CheckNegativeAccounts bool Optional Request or skip negative accounts database check (additional fees apply)

Response

NameTypeDescription
Status string "success" or "failure"
Message string On failure will contain the error description
Confirmation string On success will contain the transaction confirmation ID

Void Remote Check Payment

POST https://api.securepds.com/2.0/payments.svc/JSON/SubmitRCCVoid

            
{
	"MerchantID": "string",
	"Login": "string",
	"Password": "string",
	"ConfirmationID": "string",
	"UserID": "string"
}
                
            

The above command returns the following JSON structure:

            
{
	"Status": "string",
	"Message": "string",
	"Confirmation": "string"
}
                
            

This method allows you to Void Remote Check Payment records.

HTTP Request

POST https://api.securepds.com/2.0/payments.svc/JSON/SubmitRCCVoid

Parameters

NameTypeRequiredLengthDescription
MerchantID string Required 6-10 Merchant Identification Number
Login string Required 6-12 API Username
Password string Required max 25 API Password
ConfirmationID string Required max 30 Confirmation ID from the original payment
UserID string Optional max 15 Optional User ID

Response

NameTypeDescription
Status string "success" or "failure"
Message string On failure will contain the error description
Confirmation string On success will contain the transaction confirmation ID

Cash Payments

Cash Payment

POST https://api.securepds.com/2.0/payments.svc/JSON/SubmitCashPayment

            
{
	"MerchantID": "string",
	"Login": "string",
	"Password": "string",
	"Amount": "string",
	"FirstName": "string",
	"LastName": "string",
	"EmailAddress": "string",
	"Address1": "string",
	"Address2": "string",
	"City": "string",
	"State": "string",
	"Zip": "string",
	"OfficeID": "string",
	"UserID": "string",
	"AccountCode1": "string",
	"AccountCode2": "string",
	"AccountCode3": "string"
}
                
            

The above command returns the following JSON structure:

            
{
	"Status": "string",
	"Message": "string",
	"Confirmation": "string"
}
                
            

This method allows you to submit Cash Payment records.

HTTP Request

POST https://api.securepds.com/2.0/payments.svc/JSON/SubmitCashPayment

Parameters

NameTypeRequiredLengthDescription
MerchantID string Required 6-10 Merchant Identification Number
Login string Required 6-12 API Username
Password string Required max 25 API Password
Amount string Required max 8 Amount of Transaction (#0.00)
FirstName string Optional 2-19 Account holder first name
LastName string Required 2-19 Account holder last name
EmailAddress string Optional 2-39 Account holder email address
Address1 string Optional 2-39 Account holder address 1
Address2 string Optional 2-39 Account holder address 2
City string Optional 2-39 Account holder city
State string Optional 2 Account holder state code
Zip string Optional 4-10 Account holder zip code
OfficeID string Optional max 10 Optional reporting field
UserID string Optional max 15 Optional reporting field
AccountCode1 string Optional max 20 Optional reporting field
AccountCode2 string Optional max 20 Optional reporting field
AccountCode3 string Optional max 20 Optional reporting field

Response

NameTypeDescription
Status string "success" or "failure"
Message string On failure will contain the error description
Confirmation string On success will contain the transaction confirmation ID

Void Cash Payment

POST https://api.securepds.com/2.0/payments.svc/JSON/SubmitCashVoid

            
{
	"MerchantID": "string",
	"Login": "string",
	"Password": "string",
	"ConfirmationID": "string"
}
                
            

The above command returns the following JSON structure:

            
{
	"Status": "string",
	"Message": "string",
	"Confirmation": "string"
}
                
            

This method allows you to Void Cash Payment records.

HTTP Request

POST https://api.securepds.com/2.0/payments.svc/JSON/SubmitCashVoid

Parameters

NameTypeRequiredLengthDescription
MerchantID string Required 6-10 Merchant Identification Number
Login string Required 6-12 API Username
Password string Required max 25 API Password
ConfirmationID string Required max 30 Confirmation ID from the original payment

Response

NameTypeDescription
Status string "success" or "failure"
Message string On failure will contain the error description
Confirmation string On success will contain the transaction confirmation ID

Printed Checks

Send Printed Check

POST https://api.securepds.com/2.0/payments.svc/JSON/SendCheck

            
{
	"MerchantID": "string",
	"Login": "string",
	"Password": "string",
	"PaymentDate": "string",
	"MerchantPayAccount": "string",
	"CheckWriterToken": "string",
	"CheckWriterFirstName": "string",
	"CheckWriterLastName": "string",
	"CheckWriterAddress1": "string",
	"CheckWriterAddress2": "string",
	"CheckWriterCity": "string",
	"CheckWriterState": "string",
	"CheckWriterZip": "string",
	"CheckWriterPhone": "string",
	"CheckWriterAccountNumber": "string",
	"CheckWriterRoutingNumber": "string",
	"Amount": "string",
	"CheckNumber": "string",
	"PayeeAccountNumber": "string",
	"AdditionalSearch": "string",
	"PayeeName": "string",
	"PayeeAddress1": "string",
	"PayeeAddress2": "string",
	"PayeeCity": "string",
	"PayeeState": "string",
	"PayeeZip": "string",
	"MerchantName": "string",
	"BankName": "string",
	"TokenizeOnly": false
}
                
            

The above command returns the following JSON structure:

            
{
	"Status": "string",
	"Message": "string",
	"Confirmation": "string"
}
                
            

This method allows you to submit a request to have a physical check printed and mailed.
To create a Token enter all of the account information and set the TokenizeOnly field to true.
When using a Token, the Check Writer fields are not required and will be replaced with the values from the token.
NOTE: Speak to a sales representative to have access to this method enabled

HTTP Request

POST https://api.securepds.com/2.0/payments.svc/JSON/SendCheck

Sample Check Image

Download Sample Image

Parameters

NameTypeRequiredLengthDescription
MerchantID string Required 6-10 Merchant Identification Number
Login string Required 6-12 API Username
Password string Required max 25 API Password
PaymentDate string Required 8 Date for the check to be printed (MMDDYYYY)
MerchantPayAccount string Optional max 39 Optional reporting field
CheckWriterToken string Optional max 39 Token for Stored Check Writer
CheckWriterFirstName string Conditional 2-39 First Name of the check writer
CheckWriterLastName string Conditional 2-39 Last Name of the check writer
CheckWriterAddress1 string Conditional 4-39 Address 1 of the check writer
CheckWriterAddress2 string Optional 4-39 Address 2 of the check writer
CheckWriterCity string Conditional 2-39 City of the check writer
CheckWriterState string Conditional 2 State of the check writer
CheckWriterZip string Conditional 5-10 Zip code of the check writer
CheckWriterPhone string Optional 10-12 Phone number of the check writer
CheckWriterAccountNumber string Conditional max 17 Checking Account number of the check writer
CheckWriterRoutingNumber string Conditional 9 Routing Number of the check writer
Amount string Required max 8 Amount for the check (#0.00)
CheckNumber string Required 3-9 Unique Check Number
PayeeAccountNumber string Required 2-30 Payee's Account Number
AdditionalSearch string Optional max 15 Optional reporting field
PayeeName string Required 2-39 Name of payee
PayeeAddress1 string Required 4-39 Address 1 of payee
PayeeAddress2 string Optional 4-20 Address 2 of payee
PayeeCity string Required 2-39 City of payee
PayeeState string Required 2 State of payee
PayeeZip string Required 5-10 Zip code of payee
MerchantName string Required 3-39 Merchant Name to appear on the check
BankName string Required 3-39 Bank Name to appear on the check
TokenizeOnly bool Required true = information will be tokenized only, false = standard check

Response

NameTypeDescription
Status string "success" or "failure"
Message string On failure will contain the error description
Confirmation string On success will contain the transaction confirmation ID

Void Printed Check

POST https://api.securepds.com/2.0/payments.svc/JSON/VoidCheck

            
{
	"MerchantID": "string",
	"Login": "string",
	"Password": "string",
	"ConfirmationID": "string"
}
                
            

The above command returns the following JSON structure:

            
{
	"Status": "string",
	"Message": "string",
	"Confirmation": "string"
}
                
            

This method allows you to Void Check Payment records that have not yet been printed.

HTTP Request

POST https://api.securepds.com/2.0/payments.svc/JSON/VoidCheck

Parameters

NameTypeRequiredLengthDescription
MerchantID string Required 6-10 Merchant Identification Number
Login string Required 6-12 API Username
Password string Required max 25 API Password
ConfirmationID string Required max 30 Confirmation ID from the original payment

Response

NameTypeDescription
Status string "success" or "failure"
Message string On failure will contain the error description
Confirmation string On success will contain the transaction confirmation ID

MasterCard RPPS

Find Biller ID

POST https://api.securepds.com/2.0/rpps.svc/JSON/FindBiller

            
{
	"merchantID": "string",
	"login": "string",
	"password": "string",
	"billerName": "string",
	"zipCode": "string"
}
             
            

The above command returns the following JSON structure:

            
{
	"status": "string",
	"message": "string",
	[
		{
			"billerID": "string",
			"mcrppsID": "string",
			"billerName": "string",
			"address1": "string",
			"address2": "string",
			"city": "string",
			"state": "string",
			"country": "string",
			"phone": "string",
			"zip": "string",
			"billerClass": "string"
		}
	]
}
                
            

This method allows you to look up a Biller's name to see if they are on the MC RPPS List.
NOTE: Speak to a sales representative to have access to this method enabled

HTTP Request

POST https://api.securepds.com/2.0/rpps.svc/JSON/FindBiller

Parameters

NameTypeRequiredLengthDescription
merchantID string Required 6-10 Merchant Identification Number
login string Required 6-12 API Username
password string Required max 25 API Password
billerName string Required 4-10 Biller Name
zipCode string Optional max 10 Biller Zipcode

Response

NameTypeDescription
status string "success" or "failure"
message string On failure will contain the error description
   -billerID string PDS's Biller ID for the MC RPPS Biller
   -mcrppsID string Code used when creating the MC RPPS Payment file
   -billerName string Biller's name listed at MC RPPS
   -address1 string Biller's address1
   -address2 string Biller's address2
   -city string Biller's city
   -state string Biller's State
   -country string Biller's country
   -phone string Biller's Phone
   -zip string Biller's Zip
   -billerClass string The class of the Biller

Biller Account Mask

POST https://api.securepds.com/2.0/rpps.svc/JSON/BillerMasks

            
{
	"merchantID": "string",
	"login": "string",
	"Password": "string",
	"billerID": "string"
}
                
            

The above command returns the following JSON structure:

            
{
	"status": "string",
	"message":"string",
    [
         {
                "billerID":"string",
                "maskLength":"string",
                "maskFormat":"string"
         }
     ]
}
                
            

This method allows you to look up all the biller's account mask.
NOTE: Speak to a sales representative to have access to this method enabled

HTTP Request

POST https://api.securepds.com/2.0/rpps.svc/JSON/BillerMasks

Parameters

NameTypeRequiredLengthDescription
merchantID string Required 6-10 Merchant Identification Number
login string Required 6-12 API Username
password string Required max 25 API Password
billerID string Required 4-10 PDS's biller ID for the MC RPPS Biller

Response

NameTypeDescription
status string "success" or "failure"
message string On failure will contain the error description
   -billerID string PDS's Biller ID for the MC RPPS Biller
   -maskLength string Decimal value length for the mask
   -maskFormat string # for any numeric character,* for alpha character,
! for alphanumeric including most special character,@ for alpha character on numeric character

Validate Account

POST https://api.securepds.com/2.0/rpps.svc/JSON/ValidateAccount

            
{
	"merchantID": "string",
	"login": "string",
	"password": "string",
	"billerID": "string",
	"accountNo": "string"
}
            
            

The above command returns the following JSON structure:

            
{
	"status": "string",
	"message": "string"
}
            
            

This method allows you to validate the account number based on the available masks for a Biller ID.
NOTE: Speak to a sales representative to have access to this method enabled

HTTP Request

POST https://api.securepds.com/2.0/rpps.svc/JSON/ValidateAccount

Parameters

NameTypeRequiredLengthDescription
merchantID string Required 6-10 Merchant Identification Number
login string Required 6-12 API Username
password string Required max 25 API Password
billerID string Required 4-10 PDS's biller ID for the MC RPPS Biller
accountNo string Required max 25 Client's Account number

Response

NameTypeDescription
status string "success" or "partial" or "fail"
message string On based on status will contain the description

Submit RPPS Payment

POST https://api.securepds.com/2.0/rpps.svc/JSON/SubmitRPPSPayment

			
{
	"merchantID": "string",
	"login": "string",
	"password": "string",
	"accountName": "string",
	"accountNumber": "string",
	"additionalSearch": "string",
	"amount": "string",
	"billerID": "string",
	"billerName": "string",
	"paymentType": "string"
}
			    
			    

The above command returns the following JSON structure:

			    
{
	"status": "string",
	"message": "string",
	"confirmationID": "string"
}
			    
			    

This method allows you to submit Mastercard RPPS Payment.
NOTE: Speak to a sales representative to have access to this method enabled

HTTP Request

POST https://api.securepds.com/2.0/rpps.svc/JSON/SubmitRPPSPayment

Parameters

NameTypeRequiredLengthDescription
merchantID string Required 6-10 Merchant Identification Number
login string Required 6-12 API Username
password string Required max 25 API Password
accountName string Required 4-15 Accountholder's Name
accountNumber string Required 4-22 Accountholder's Number
additionalSearch string Optional 1-20 Additional Information
amount string Required Max 8 Amount of Transaction(#0.00)
billerID string Required 4-10 MC RPPS Biller ID (mcrppsID) returned from Find Biller method
billerName string Required 4-15 Biller's Name
paymentType string Required 2 Payment Type Credit(22) or Debit(27)

Response

NameTypeDescription
status string "success" or "failure"
message string On based on status will contain the description
confirmation ID string On success will contain the transaction confirmation ID

Void RPPS Payment

POST https://api.securepds.com/2.0/payments.svc/JSON/VoidRPPSPayment

            
{
	"MerchantID": "string",
	"Login": "string",
	"Password": "string",
	"ConfirmationID": "string"
}
                
            

The above command returns the following JSON structure:

            
{
	"Status": "string",
	"Message": "string",
	"Confirmation": "string"
}
                
            

This method allows you to Void RPPS Payment records that have not yet been sent.

HTTP Request

POST https://api.securepds.com/2.0/payments.svc/JSON/VoidRPPSPayment

Parameters

NameTypeRequiredLengthDescription
MerchantID string Required 6-10 Merchant Identification Number
Login string Required 6-12 API Username
Password string Required max 25 API Password
ConfirmationID string Required max 30 Confirmation ID from the original payment

Response

NameTypeDescription
Status string "success" or "failure"
Message string On failure will contain the error description
Confirmation string On success will contain the transaction confirmation ID

Utilities

Repeating Payments

POST https://api.securepds.com/2.0/payments.svc/JSON/SubmitRepeatPayment

            
{
	"MerchantID": "string",
	"Login": "string",
	"Password": "string",
	"ConfirmationID": "string",
	"CardNumber": "string",
	"ExpDate": "string",
	"UseDebitNetwork": false,
	"RoutingNumber": "string",
	"AccountNumber": "string",
	"TransCode": "string",
	"CheckNegativeAccounts": false,
	"FirstPaymentDate": "string",
	"PaymentFrequency": "string",
	"NumberOfPayments": int,
	"FinalPaymentAmount": "string",
	"Amount": "string",
	"FirstName": "string",
	"LastName": "string",
	"EmailAddress": "string",
	"Address1": "string",
	"Address2": "string",
	"City": "string",
	"State": "string",
	"Zip": "string",
	"Province": "string",
	"Country": "string",
	"MerchantPayAccount": "string",
	"OfficeID": "string",
	"UserID": "string",
	"AdditionalSearch": "string",
	"AccountCode1": "string",
	"AccountCode2": "string",
	"AccountCode3": "string",
	"SecondaryAmount": "string"	
}
                
            

The above command returns the following JSON structure:

            
{
	"Status": "string",
	"Message": "string",
	"Confirmation": "string"
}
                
            

This method allows you to submit repeating payment instructions for ACH, Credit Cards, and Pinless Debit Cards
Additional information on transaction codes, SEC codes, and payment frequencies are below this method.

HTTP Request

POST https://api.securepds.com/2.0/payments.svc/JSON/SubmitRepeatPayment

Parameters

NameTypeRequiredLengthDescription
MerchantID string Required 6-10 Merchant Identification Number
Login string Required 6-12 API Username
Password string Required max 25 API Password
ConfirmationID string Optional 14-17 (reserved for future use)
CardNumber string Optional 14-17 Debit or Credit Card Number
ExpDate string Optional 6 Expiration Date (MMYYYY)
UseDebitNetwork bool Optional Set to true to process as a pinless debit transaction
RoutingNumber string Optional 9 Bank Routing Number
AccountNumber string Optional max 17 Bank Account Number
TransCode string Optional 2 NACHA Transaction Code (set to 27 if processing pinless, 27 or 37 for ACH.) Leave blank for CC.
CheckNegativeAccountsbool Required Request or skip negative accounts database check (additional fees apply)
FirstPaymentDate string Required 10 Date of first payment (MM/DD/YYYY format)
PaymentFrequency string Required max 2 See chart below for values
NumberOfPayments string Required max 2 Number of payments to process. To create until further notice use a value of -1
FinalPaymentAmount string Optional max 8 Amount of Final Transaction if different from other payment amounts. (#0.00)
Amount string Required max 8 Amount of Transaction (#0.00)
FirstName string Required 2-19 Card holder first name
LastName string Required 2-19 Card holder last name
EmailAddress string Required 2-39 Card holder email address
Address1 string Required 2-39 Card holder address 1
Address2 string Optional 2-39 Card holder address 2
City string Required 2-39 Card holder city
State string Required 2 Card holder state code
Zip string Required 4-10 Card holder zip code (international supported)
Province string Optional 2-39 Card holder Province
Country string Required 2 Card holder Country
MerchantPayAccount string Optional max 32 Optional reporting field
OfficeID string Optional max 10 Optional reporting field
UserID string Optional max 15 Optional reporting field
AdditionalSearch string Optional max 20 Optional reporting field
AccountCode1 string Optional max 20 Optional reporting field
AccountCode2 string Optional max 20 Optional reporting field
AccountCode3 string Optional max 20 Optional reporting field
SecondaryAmount string Optional max 8 Optional amount used for Convenience Fees and Split settlement

Response

NameTypeDescription
Status string "success" or "failure"
Message string On failure will contain the error description
Confirmation string On success will contain the transaction confirmation ID

Cancel Repeating Payments

POST https://api.securepds.com/2.0/payments.svc/JSON/CancelRepeatPayment

            
{
	"MerchantID": "string",
	"Login": "string",
	"Password": "string",
	"Confirmation": "string"
}
                
            

The above command returns the following JSON structure:

            
{
	"Status": "string",
	"Message": "string",
	"Confirmation": "string"
}
                
            

This method allows you to cancel repeating payments for ACH, Credit Cards, and Pinless Debit Cards.

HTTP Request

POST https://api.securepds.com/2.0/payments.svc/JSON/CancelRepeatPayment

Parameters

NameTypeRequiredLengthDescription
MerchantID string Required 6-10 Merchant Identification Number
Login string Required 6-12 API Username
Password string Required max 25 API Password
Confirmation string Required 15-25 Confirmation ID from original repeating payment transaction

Response

NameTypeDescription
Status string "success" or "failure"
Message string On failure will contain the error description
Confirmation string On success will contain the transaction confirmation ID

Transactions Codes

CodeDescription
22 Credit to Checking Account
27 Debit from Checking Account
32 Credit to Savings Account
37 Debit from Savings Account
23 Prenote for Credits on a Checking Account
28 Prenote for Debits on a Checking Account
33 Prenote for Credits on a Savings Account
38 Prenote for Debits on a Savings Account

Standard Entry Codes

CodeDescription
WEB Web initiated transaction
PPD Prearranged payment and deposit
TEL Telephone initiated transaction
CCD Corporate Credit and Debit transaction

Payment Frequencies

CodeDescription
1 Every week
2 Every two weeks
3 Every four weeks
4 Once a month
6 Every two months
7 Every three months
8 Every six months
9 Once a Year
10 One time

Tokenized Payments

POST https://api.securepds.com/2.0/payments.svc/JSON/SubmitTokenPayment

            
{
	"MerchantID": "string",
	"Login": "string",
	"Password": "string",
	"NewExpDate": "string",
	"Amount": "string",
	"Token": "string",
	"MerchantPayAccount": "string",
	"OfficeID": "string",
	"UserID": "string",
	"AdditionalSearch": "string",
	"AccountCode1": "string",
	"AccountCode2": "string",
	"AccountCode3": "string",
	"ACHOpt1": "string",
	"SameDayACH": "string",
	"StandardEntryCode": "string",
	"Description": "string",
	"AddendaData": "string",
	"CheckNegativeAccounts": false,
	"ConvFeeAmount": "string",
	"AuthOnly": false
}
                
            

The above command returns the following JSON structure:

            
{
	"Status": "string",
	"Message": "string",
	"Confirmation": "string"
}
                
            

This method allows you to submit a payment for ACH/Credit Card/Debit Card from a previous payment's confirmation ID or token.

HTTP Request

POST https://api.securepds.com/2.0/payments.svc/JSON/SubmitTokenPayment

Parameters

NameTypeRequiredLengthDescription
MerchantID string Required 6-10 Merchant Identification Number
Login string Required 6-12 API Username
Password string Required max 25 API Password
NewExpDate string Optional 6 Expiration Date (MMYYYY)
Amount string Required max 8 Amount of Transaction (#0.00)
Token string Required 14-17 Token from original payment
MerchantPayAccount string Optional max 32 Optional reporting field
OfficeID string Optional max 10 Optional reporting field
UserID string Optional max 15 Optional reporting field
AdditionalSearch string Optional max 20 Optional reporting field
AccountCode1 string Optional max 20 Optional reporting field
AccountCode2 string Optional max 20 Optional reporting field
AccountCode3 string Optional max 20 Optional reporting field
ACHOpt1 string Optional max 20 Optional reporting field
SameDayACH string Optional max 100Enter "SD" to request same day ACH processing
StandardEntryCode string Required 3 NACHA SEC Code: See table below Submit ACH method.
Description string Optional max 10 Optional reporting field
AddendaData string Optional max 80 Optional reporting field
CheckNegativeAccountsbool Required Request or skip negative accounts database check (additional fees apply)
ConvFeeAmount string Optional max 6 Secondary Amount to denote what portion of the amount field should be applied as a convenience fee.
(Vantiv only)
AuthOnly bool Optional max 100false = Sale Transaction, true = Auth Only

Response

NameTypeDescription
Status string "success" or "failure"
Message string On failure will contain the error description
Confirmation string On success will contain the transaction confirmation ID

BillPay Invoices

POST https://api.securepds.com/2.0/payments.svc/JSON/SubmitInvoice

            
{
	"MerchantID": "string",
	"Login": "string",
	"Password": "string",
	"AccountNumber": "string",
	"PONumber": "string",
	"AccountName": "string",
	"InvoiceNumber": "string",
	"InvoiceDueDate": "string",
	"BillToFirstName": "string",
	"BillToLastName": "string",
	"BillToCompany": "string",
	"BillToAddress1": "string",
	"BillToAddress2": "string",
	"BillToCity": "string",
	"BillToState": "string",
	"BillToZip": "string",
	"BillToCountry": "string",
	"BillToEmail": "string",
	"BillToPhone": "string",
	"ShipToAddress1": "string",
	"ShipToAddress2": "string",
	"ShipToCity": "string",
	"ShipToState": "string",
	"ShipToZip": "string",
	"ShipToCountry": "string",
	"ShipToPhone": "string",
	"BalanceUpdate": 0.00,
	"LineItems":
	[
		{
			"ItemName": "string",
			"ItemPrice": 0.00,
			"Description": "string",
			"Qty": 0.00
		}
	]
}
                
            

The above command returns the following JSON structure:

            
{
	"Status": "string",
	"Message": "string",
	"Confirmation": "string"
}
                
            

This method allows you to submit a customer invoice to our BillPay system.
To update a balance send the same account number and invoice number with the new balance amount in the BalanceUpdate field. (all line item fields will be ignored)

HTTP Request

POST https://api.securepds.com/2.0/payments.svc/JSON/SubmitInvoice

Parameters

NameTypeRequiredLengthDescription
MerchantID string Required 6-10 Merchant Identification Number
Login string Required 6-12 API Username
Password string Required max 25 API Password
AccountNumber string Required Max 20 Numeric only Customer Account Number
PONumber string Required max 20 Numeric only Customer PO Number
AccountName string Required Max 50 Customer Account Name
InvoiceNumber string Required max 32 Numeric only Invoice Number
InvoiceDueDate string Required max 10 Invoice Due Date (MM/DD/YYYY)
BillToFirstName string Required max 20 First Name
BillToLastName string Required max 20 Last Name
BillToCompany string Optional max 20 Company
BillToAddress1 string Optional max 30 Address 1
BillToAddress2 string Optional max 20 Address 2
BillToCity string Optional max 30 City
BillToState string Optional 2 State Code
BillToZip string Optional 5 Zip Code
BillToCountry string Optional 2 Country Code
BillToEmail string Optional max 50 Email address
BillToPhone string Optional max 20 Phone number
ShipToAddress1 string Optional max 30 Address 1
ShipToAddress2 string Optional max 30 Address 2
ShipToCity string Optional max 30 City
ShipToState string Optional 2 State Code
ShipToZip string Optional 5 Zip Code
ShipToCountry string Optional 2 Country Code
ShipToPhone string Optional max 20 Phone Number
BalanceUpdate decimal Optional New balance for Invoice
LineItems string Required
   -ItemName string Required max 20 Item Name
   -ItemPrice decimal Required Item Price
   -Description string Required max 100Item Description
   -Qty decimal Required Quantity

Response

NameTypeDescription
Status string "success" or "failure"
Message string On failure will contain the error description
Confirmation string On success will contain the transaction confirmation ID

Get Convenience Fee

POST https://api.securepds.com/2.0/payments.svc/JSON/GetConvenienceFee

            
{
	"AccountNumber": "string",
	"IsACH": false,
	"Login": "string",
	"MerchantID": "string",
	"Password": "string",
	"TransactionAmount": 12.34,
	"IsPinless": false
}
                
            

The above command returns the following JSON structure:

            
{
	"AccountType": "string",
	"BinMatch": "string",
	"ConvenienceFeeAmount": 12.34,
	"IsConvFee": false,
	"Message": "string",
	"Status": "string"
}
                
            

This method allows you to request the convenience fee/split settlement amount for a given transaction.

HTTP Request

POST https://api.securepds.com/2.0/payments.svc/JSON/GetConvenienceFee

Parameters

NameTypeRequiredLengthDescription
MerchantID string Required 6-10 Merchant Identification Number
Login string Required 6-12 API Username
Password string Required max 25 API Password
TransactionAmount string Required max 15 Amount of Transaction (#0.00)
IsACH bool Required max 5 Indicates whether or not the transaction is an ACH transaction.
AccountNumber string Optional min 4 Number of Account *REQUIRED ONLY FOR CREDIT CARD TRANSACTIONS
IsPinless bool Required max 5 Indicates whether or not the transaction is a Pinless transaction.

Response

NameTypeDescription
Status string "success" or "failure"
Message string On success will contain the description of the fee such as 2.99% or $2.99
AccountType string Returns ACH, Credit Card, Debit Card
IsConvFee bool Indicates if amount represents convenience fee or split settlement
ConvenienceFeeAmount decimal Amount of convenience fee
BinMatch string The BIN match

Get Prefunding Balance

POST https://api.securepds.com/2.0/payments.svc/JSON/GetPrefundingBalance

            
{
	"MerchantID": "string",
	"Login": "string",	
	"Password": "string"
}
                
            

The above command returns the following JSON structure:

            
{
	"ACHPrefundingBalance": 0.00,
	"PinlessPrefundingBalance": 0.00,
	"Message": "string",
	"Status": "string"
}
                
            

This method allows you to request the current balance of your ACH and Pinless Debit Card Prefunding Accounts.

HTTP Request

POST https://api.securepds.com/2.0/payments.svc/JSON/GetPrefundingBalance

Parameters

NameTypeRequiredLengthDescription
MerchantID string Required 6-10 Merchant Identification Number
Login string Required 6-12 API Username
Password string Required max 25 API Password

Response

NameTypeDescription
Status string "success" or "failure"
Message string On failure will contain the error message
ACHPrefundingBalance decimal Real time balance of the ACH prefunding account
PinlessPrefundingBalance decimal Real time balance of the Pinless prefunding account

Verify ACH Account

POST https://api.securepds.com/2.0/payments.svc/JSON/VerifyACHAccount

            
{
	"MerchantID": "string",
	"Login": "string",	
	"Password": "string"
	"RoutingNumber": "string"
	"AccountNumber": "string"
}
                
            

The above command returns the following JSON structure:

            
{
	"Confirmation": "string",
	"Message": "string",
	"Status": "string"
}
                
            

This method allows you to check if an account will be rejected by providing the routing number and account number.

HTTP Request

POST https://api.securepds.com/2.0/payments.svc/JSON/VerifyACHAccount

Parameters

NameTypeRequiredLengthDescription
MerchantID string Required 6-10 Merchant Identification Number
Login string Required 6-12 API Username
Password string Required max 25 API Password
RoutingNumber string Required max 9 Bank Routing Number
AccountNumber string Required max 17 Bank Account Number

Response

NameTypeDescription
Confirmation string Confirmation ID for this transaction
Message string On failure will contain the error message
Status string "success" or "failure"

Reporting

Transaction Details

POST https://api.securepds.com/2.0/payments.svc/JSON/GetTransactionDetails

            
{
	"MerchantID": "string",
	"Login": "string",
	"Password": "string",
	"Confirmation": "string"
}
                
            

The above command returns the following JSON structure:

            
{
	"Status": "string",
	"Message": "string",
	"Transactions":
	[
		{
			"ACHOpt1": "string",
			"ACHOpt2": "string",
			"AVSCode": "string",
			"AccountCode1": "string",
			"AccountCode2": "string",
			"AccountCode3": "string",
			"AccountName": "string",
			"AccountType": "string",
			"AdditionalSearch1": "string",
			"Address1": "string",
			"Address2": "string",
			"Amount": "string",
			"AuthCode": "string",
			"BatchNumber": "string",
			"CVVResp": "string",
			"City": "string",
			"Confirmation": "string",
			"ConvFee": 0.00,
			"EmailAddress": "string",
			"ErrorMessage": "string",
			"FinalStatus": "string",
			"FirstName": "string",
			"LastName": "string",
			"MerchantPayAccount": "string",
			"PaymentOrigination": "string",
			"PaymentType": "string",
			"RefConfirmation": "string",
			"RepeatConfirmation": "string",
			"ResponseCode": "string",
			"ReturnDate": "string",
			"SimpResp": "string",
			"State": "string",
			"SubmitDate": "\/Date(1474360707280-0500)\/",
			"UserID": "string",
			"Zip": "string"
		}
	]
}
                
            

This method allows you to get transaction details based on a confirmation ID

HTTP Request

POST https://api.securepds.com/2.0/payments.svc/JSON/GetTransactionDetails

Parameters

NameTypeRequiredLengthDescription
MerchantID string Required 6-10 Merchant Identification Number
Login string Required 6-12 API Username
Password string Required max 25 API Password
Confirmation string Required 14-17 Confirmation ID of transaction

Response

NameTypeDescription
Status string "success" or "failure"
Message string On failure will contain the error description
transactions object Array of Transaction
   -ACHOpt1 string Optional Reporting field
   -ACHOpt2 string Used to denote Same Day ACH record ("SD")
   -AVSCode string Credit Card Address Verification Code
   -AccountCode1 string Optional Reporting field
   -AccountCode2 string Optional Reporting field
   -AccountCode3 string Optional Reporting field
   -AccountName string Full name of payee
   -AccountType string Credit/Debit/ACH or repeating Credit/Debit/ACH or Void/Returns or Marks
   -AdditionalSearch1 string Optional Reporting field
   -Address1 string Address line 1 of payee
   -Address2 string Address line 2 of payee
   -Amount string Amount of the transaction
   -AuthCode string Gateway Authorization Code
   -BatchNumber string ACH or CC batch number
   -CVVResp string CVV check response
   -City string City of payee
   -Confirmation string Confirmation ID for this transaction
   -ConvFee decimal Convenience Fee/Split Settlement Amount
   -EmailAddress string Email address of payee
   -ErrorMessage string Gateway error message
   -FinalStatus string Final status of this transaction
   -FirstName string First name of payee
   -LastName string Last name of payee
   -MerchantPayAccount string Optional Reporting field
   -PaymentOrigination string Denotes where the transaction originated. (Web service, repeat payment, CSR View, etc.)
   -PaymentType string Credit Card(VISA, AMEX, MSTR, DISC), ACH/Debit (27/37 Debit, 22/32 Credit)
   -RefConfirmation string Reference transaction Confirmation ID. Used when creating voids/returns
   -RepeatConfirmation string Repeat payment confirmation if generated from a repeating payment instruction
   -ResponseCode string Gateway Response Code
   -ReturnDate string Date of ACH return
   -SimpResp string Simple Response from Credit Card Gateway
   -State string State of payee
   -SubmitDate string Date and time the transaction was entered
   -UserID string Optional Reporting field
   -Zip string Zip Code of the payee

Transaction List

POST https://api.securepds.com/2.0/payments.svc/JSON/GetTransactionList

            
{
	"MerchantID": "string",
	"Login": "string",
	"Password": "string",
	"DateFrom": "string",
	"DateTo": "string",
	"FilterOptions": "string"
}
                
            

The above command returns the following JSON structure:

            
{
	"Status": "string",
	"Message": "string",
	"Transactions":
	[
		{
			"ACHOpt1": "string",
			"ACHOpt2": "string",
			"AVSCode": "string",
			"AccountCode1": "string",
			"AccountCode2": "string",
			"AccountCode3": "string",
			"AccountName": "string",
			"AccountType": "string",
			"AdditionalSearch1": "string",
			"Address1": "string",
			"Address2": "string",
			"Amount": "string",
			"AuthCode": "string",
			"BatchNumber": "string",
			"CVVResp": "string",
			"City": "string",
			"Confirmation": "string",
			"ConvFee": 0.00,
			"EmailAddress": "string",
			"ErrorMessage": "string",
			"FinalStatus": "string",
			"FirstName": "string",
			"LastName": "string",
			"MerchantPayAccount": "string",
			"PaymentOrigination": "string",
			"PaymentType": "string",
			"RefConfirmation": "string",
			"RepeatConfirmation": "string",
			"ResponseCode": "string",
			"ReturnDate": "string",
			"SimpResp": "string",
			"State": "string",
			"SubmitDate": "\/Date(1474360707280-0500)\/",
			"UserID": "string",
			"Zip": "string"
		}
	]
}
                
            

This method allows you to get transactions for a date range.

HTTP Request

POST https://api.securepds.com/2.0/payments.svc/JSON/GetTransactionList

Parameters

NameTypeRequiredLengthDescription
MerchantID string Required 6-10 Merchant Identification Number
Login string Required 6-12 API Username
Password string Required max 25 API Password
DateFrom string Required max 20 Starting date of search. Format “MM/D/YYYY HH:MM:SS”
DateTo string Required max 20 Ending date of search. Format “MM/D/YYYY HH:MM:SS”
FilterOptions string Optional max 100See table below for options

Response

NameTypeDescription
Status string "success" or "failure"
Message string On failure will contain the error description
transactions object Array of Transaction
   -ACHOpt1 string Optional Reporting field
   -ACHOpt2 string Used to denote Same Day ACH record ("SD")
   -AVSCode string Credit Card Address Verification Code
   -AccountCode1 string Optional Reporting field
   -AccountCode2 string Optional Reporting field
   -AccountCode3 string Optional Reporting field
   -AccountName string Full name of payee
   -AccountType string Credit/Debit/ACH or repeating Credit/Debit/ACH or Void/Returns or Marks
   -AdditionalSearch1 string Optional Reporting field
   -Address1 string Address line 1 of payee
   -Address2 string Address line 2 of payee
   -Amount string Amount of the transaction
   -AuthCode string Gateway Authorization Code
   -BatchNumber string ACH or CC batch number
   -CVVResp string CVV check response
   -City string City of payee
   -Confirmation string Confirmation ID for this transaction
   -ConvFee decimal Convenience Fee/Split Settlement Amount
   -EmailAddress string Email address of payee
   -ErrorMessage string Gateway error message
   -FinalStatus string Final status of this transaction
   -FirstName string First name of payee
   -LastName string Last name of payee
   -MerchantPayAccount string Optional Reporting field
   -PaymentOrigination string Denotes where the transaction originated. (Web service, repeat payment, CSR View, etc.)
   -PaymentType string Credit Card(VISA, AMEX, MSTR, DISC), ACH/Debit (27/37 Debit, 22/32 Credit)
   -RefConfirmation string Reference transaction Confirmation ID. Used when creating voids/returns
   -RepeatConfirmation string Repeat payment confirmation if generated from a repeating payment instruction
   -ResponseCode string Gateway Response Code
   -ReturnDate string Date of ACH return
   -SimpResp string Simple Response from Credit Card Gateway
   -State string State of payee
   -SubmitDate string Date and time the transaction was entered
   -UserID string Optional Reporting field
   -Zip string Zip Code of the payee

Filter Options

CodeDescription
achonly Returns only ACH transactions
creditonly Returns only Credit Card transactions
debitonly Returns only Debit Card transactions
text Returns only Text-2-Pay transactions
achreturn Returns only ACH transactions that were returned
achbatch Returns ACH transactions by batch
ccbatch Returns Credit Card transactions by batch
rcconly Returns only Remote Check transactions
rccbatch Returns Remote Check transactions by batch
rccreturn Returns Remote Check transactions that were returned

ACH Account Inquiry

POST https://api.securepds.com/2.0/payments.svc/JSON/ACHInquiry

            
{
	"MerchantID": "string",
	"Login": "string",
	"Password": "string",
	"RoutingNumber": "string",
	"AccountNumber": "string",
	"MaxTransactions": int,
	"TransactionFilter": "string",
	"TraceID": "string"
}
                
            

The above command returns the following JSON structure:

            
{
	"Status": "string",
	"Message": "string",
	"TraceID": "string",
	"creditRecordCount": int,
	"creditTotalAmount": double,
	"debitRecordCount": int,
	"debitTotalAmount": double,
	"returnsRecordCount": int,
	"badReturnsRecordsCount": int,
	"fromDate": "string",
	"toDate": "string",
	"merchantsSeen": int,
	"TransactionList":
	[
		{
			"amount": double,
			"pmtType": "string",
			"pmtOrigination": "string",
			"state": "string",
			"submitDate": "string",
			"finalStatus": "string",
			"errorMessage": "string"
		}
	]
}
                
            

This method allows you to get transactions for a date range.

HTTP Request

POST https://api.securepds.com/2.0/payments.svc/JSON/ACHInquiry

Parameters

NameTypeRequiredLengthDescription
MerchantID string Required 6-10 Merchant Identification Number
Login string Required 6-12 API Username
Password string Required max 25 API Password
RoutingNumber string Required 9 Bank Routing Number
AccountNumber string Required max 17 Bank Account Number
MaxTransactions string Required Maximum number of transactions to return (0-35)
TransactionFilter string Optional max 50 Filter by transaction code (27/22/37/32)
TraceID string Optional max 64 TraceID that will be echoed back in response and logged

Response

NameTypeDescription
Status string "success" or "failure"
Message string On failure will contain the error description
TraceID string Echoed Trace ID from request
creditRecordCount int Number of credit transactions seen
creditTotalAmount double Total amount of all credits seen
debitRecordCount int Number of debit transactions seen
debitTotalAmount double Total amount of all debits seen
returnsRecordCount int Number of returns seen
badReturnsRecordsCount int Number of bad returns seen
fromDate string Date of first transaction seen (YYYYMMDD format)
toDate string Date of most recent transaction seen (YYYYMMDD format)
merchantsSeen int Number of different merchants that have processed this account information
TransactionList object Array of transactions
   -amount string Amount of transaction
   -pmtType string ACH transaction code (27,22,37,32)
   -pmtOrigination string Origin of the payment
   -state string State
   -submitDate string Date the transaction was submitted (MM/DD/YYYY)
   -finalStatus string Final status of the transaction
   -errorMessage string Error message

Enrollment

Please click here for access to our Enrollment API documentation.

PDS Checkout

Please click here for access to our PDS Checkout documentation.

Code Samples

			
curl -X POST \
https://api.securepds.com/2.0/payments.svc/json/endpoint \
  -H 'cache-control: no-cache' \
  -H 'content-type: application/json' \
  -d '{
   "MerchantID": "0000000001",
   "Login": "API0000000001",
   "Password": "Temp1234!",
   "additionalData": "1221"
   }'
			
		
			
WebRequest request = WebRequest.Create("https://api.securepds.com/2.0/payments.svc/json/endpoint");
request.Method = "POST";
request.ContentType = "application/json; charset=utf-8";
request.Timeout = 600000;
string input = "{\"MerchantID\":\"0000000001\",\"login\":\"API0000000001\",
	\"password\":\"Temp1234!\",\"additionalData\":\"values\"}";
//Get the request stream
Stream POSTstream = request.GetRequestStream();
//Write the data bytes in the request stream
byte[] dataByte = Encoding.UTF8.GetBytes(sJSON.ToString());
POSTstream.Write(dataByte, 0, dataByte.Length);
POSTstream.Close();
//Get response from server
WebResponse POSTResponse = request.GetResponse();
StreamReader reader = new StreamReader(POSTResponse.GetResponseStream(), Encoding.UTF8);
string responseJSON = reader.ReadToEnd();
			
		
			
URL url = new URL("https://api.securepds.com/2.0/payments.svc/json/enpoint");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json");

String input = "{\"MerchantID\":\"0000000001\",\"login\":\"API0000000001\",
	\"password\":\"Temp1234!\",\"additionalData\":\"values\"}";

OutputStream os = conn.getOutputStream();
os.write(input.getBytes());
os.flush();

if (conn.getResponseCode() != HttpURLConnection.HTTP_CREATED) {
   throw new RuntimeException("Failed : HTTP error code : " + conn.getResponseCode());
}

BufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream())));

String output;
System.out.println("Output from Server .... \n");
while ((output = br.readLine()) != null) {
   System.out.println(output);
}

conn.disconnect();
			
		
			
function CallSingularBillPayAPI() {
   var xhttp = new XMLHttpRequest();
   xhttp.onreadystatechange = function () {
       if (this.readyState == 4 && this.status == 200) {
           alert(this.responseText);
       }
   };
   xhttp.open("POST", "https://api.securepds.com/2.0/payments.svc/json/endpointName", true);
   xhttp.setRequestHeader("Content-type", "application/json");
   var obj = '{"MerchantID":"0000000001","Login":"API0000000001","Password":"Temp1234!","additionalData":""}';
   xhttp.send(obj);
}
			
		
			
let json: [String: Any] =
["MerchantID": "0000000001",
"Login": "API0000000001",
"Password": "Temp1234!",
"additionalData": ""]

let jsonData = try? JSONSerialization.data(withJSONObject: json)

let url = URL(string: "https://api.securepds.com/2.0/payments.svc/json/endpoint")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.httpBody = jsonData

let task = URLSession.shared.dataTask(with: request) { data, response, error in
   guard let data = data, error == nil else {
      print(error?.localizedDescription ?? "No data")
      return
   }
   let responseJSON = try? JSONSerialization.jsonObject(with: data, options: [])
   if let responseJSON = responseJSON as? [String: Any] {
      print(responseJSON)
   }
}

task.resume()
			
		
			
function callAPI($method, $url, $data){
   $curl = curl_init();
   curl_setopt($curl, CURLOPT_POST, 1);
   curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
   // OPTIONS:
   curl_setopt($curl, CURLOPT_URL, $url);
   curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
   curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
   curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);

   // EXECUTE:
   $result = curl_exec($curl);
   if(!$result){die("Connection Failure");}
   curl_close($curl);
   return $result;
}

$data_array =  array(
   "merchantID" => "0000000001",
   "login" => "API0000000001",
   "password" => "Temp1234!",
   "additionalData" => "values"
   ),
);

$make_call = callAPI('POST', 'https://api.securepds.com/2.0/payments.svc/json/enpoint', json_encode($data_array));
$response = json_decode($make_call, true);
$errors   = $response['response']['errors'];
$data     = $response['response']['data'][0];

			
		
			
use REST::Client;

my $client = REST::Client->new();

$client->addHeader('Content-Type', 'application/json');
$client->addHeader('charset', 'UTF-8');
$client->addHeader('Accept', 'application/json');

$req = '{
	"MerchantID" : "0000000001",
	"Login" : "API0000000001",
	"Password" : "Temp1234!",
	"additionalData" : "",
	}';

$url="https://api.securepds.com/2.0/payments.svc/json/endpoint";

$client->POST($url, $req);
print $client->responseContent();
			
		
			
require 'net/http'

url = 'https://api.securepds.com/2.0/payments.svc/json/endpoint'
params = {
  merchantID => '0000000001',
  login => 'API0000000001',
  password => 'Temp1234!',
  additionalData => 'values'
}

resp = Net::HTTP.post_form(url, params)

resp_text = resp.body
			
		
			
import requests
import json

def main():
   data = {}
   data[MerchantID] = '000000000001'
   data[Login] = 'API0000000001'
   data[Password] = 'Temp1234!'
   data[additionalData] = ''
   json = json.dumps(data)

   req = requests.post('https://api.securepds.com/2.0/payments.svc/json/endpoint', data=None, json=None)
   print("HTTP Status Code: " + str(req.status_code))
   print(req.headers)
   json_response = json.loads(req.content)
   print(json_response)

if __name__ == '__main__':
   main()
			
		
			
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "io/ioutil"
    "net/http"
)

func main() {
    jsonData := map[string]string{
      "MerchantID": "0000000001",
      "Login": "API0000000001",
      "password": "Temp234!",
      "additionalData": "values"}
    jsonValue, _ := json.Marshal(jsonData)
    response, err := http.Post("https://api.securepds.com/2.0/payments.svc/json/endpoint",
	   "application/json",
	   bytes.NewBuffer(jsonValue))
    if err == nil {
        data, _ := ioutil.ReadAll(response.Body)
		fmt.Println(data)
    }
}
			
		

In the right hand panel we have provided code samples in several of the most popular programming languages.
You will find code for cURL, C#, JAVA, Javascript, Swift, PHP, Perl, Ruby, Python, and Go.
In addition to REST/JSON, we also support REST/XML, SOAP, and WCF calls.

For additional help and support during your integration please contact us at integrations@paymentdata.com

References

Test Account Numbers

Following account numbers can be used for testing

Account TypeAccount NumberRouting Number
Credit Card 4111111111111111
Debit Card 5489221100112235
ACH 123456789 555555550

PDS Response Codes

PDS will return 5000 series response codes for errors that occur within our system. Most of these errors are for improper formatting of data

CodeDescription
5000 Security Violation
5001 System Failure
5002 Unspecified Network Issue
5003 Unable To Parse Response
5004 Unable to Load Merchant Details
5005 Invalid Gateway Setup
5006 Transaction Limits Exceeded
5007 State Not Supported
5008 Prefunding Amount Exceeded
5009 Pinless Credits Cannot Be Returned
5010 Invalid Transaction Code
5011 Operation Not Valid On This Card
5012 Operation Not Available On This Transaction Type
5020 Invalid Confirmation ID
5030 Unable to locate record
5031 Unable to get gateway token
5050 Invalid Amount
5051 Invalid Credit Card Track Data
5052 Invalid Credit Card Track Data Method
5053 Invalid Email Address
5054 Invalid First Name
5055 Invalid Last Name
5056 Invalid Address
5057 Invalid Address 2
5058 Invalid City
5059 Invalid State
5060 Invalid Zip Code
5061 Invalid International Province
5062 Invalid Country
5063 Invalid Card Number
5064 Invalid Credit Card Type
5065 Invalid Expiration Date
5066 Invalid CVV
5067 Invalid Merchant Pay Account
5068 Invalid Office ID
5069 Invalid User ID
5070 Invalid Additional Search
5071 Invalid Account Code 1
5072 Invalid Account Code 2
5073 Invalid Account Code 3
5074 Invalid Convenience Fee Amount
5075 Unable to Void Authorizations
5076 Invalid Payment Date
5077 Invalid Phone Number
5078 Invalid Account Number
5079 Invalid Routing Number
5080 Invalid Check Number
5081 Invalid Merchant Name
5082 Invalid Bank Name
5083 Invalid Transaction Filter
5084 Invalid 3D Secure Data
5085 Invalid Terminal ID
5086 Card Brand is not supported
5088 Invalid Print Check Token
5090 Error Submitting Invoice
5091 Invalid Biller ID
5092 Invalid Biller Name
5093 Convenience Fee less than minimum
5094 Invalid Addenda Value
5095 Invalid Description
5096 Invalid SEC
5097 Invalid Same Day ACH Value
5098 Invalid ACH Option
5099 Invalid Mobile Wallet Type
5100 Invalid Mobile Wallet Cryptogram
5101 Invalid Mobile Wallet ECI Code
5102 Invalid Payment Frequency
5103 Bin Not Available for Pinless Debit
5104 Failed PDS Account Lookup
5107 Invalid Merchant ID
5108 Unable to Retrieve Merchant Credentials
5109 RCC Void Record Failed to Insert
5110 RCC Void Record Failed to Update
5111 RCC Payment Record Failed to Insert
5112 Duplicate Transaction
5113 Payment Not Found or Already Voided
5114 Error Processing Void/Return
5115 Invalid PaymentID
5116 Marks/Returns are not Available on Tokenize Transactions
5117 Mark Amount is More Than Double Original Auth Amount
5118 Mark is not Available on Tenerum Payments
5119 Error Checking Settlement
5120 Pinless Processing is Temporarily Disabled
5121 Error Submitting Payment Record
5122 Invalid Data Format
5123 Error Submitting Printed Check
5124 Account has been Locked

Gateway Response Codes

Error messages returned from the gateways, networks or issuer.

CodeDescription
EA Verification error
EB Verification error
EC Verification error
E1 P2PE decryption request invalid
E2 P2PE decryption services unavailable
E3 P2PE decryption failure
E4 P2PE decryption message malformed
E6 Possible P2PE decryption failure
E9 P2PE encryption required
N3 Cashback service not available
N4 Exceeds issuer withdrawal limit
N7 CVV2 value mismatch
P01 AVS Mismatch Failure
P02 CVV2 Mismatch Failure
P30 Test Tran. Bad Card
P35 Test Tran. Problem
P40 Username already exists
P41 Username is blank
P50 Fraud Screen Failure
P51 Missing PIN Code
P55 Invalid Credit Card No.
P56 Invalid CVV2/CVC2 No.
P57 Expired. CC Exp. Date
P58 Missing Data
P59 Missing Email Address
P60 Zip Code does not match Billing State.
P61 Invalid Billing Zip Code
P62 Zip Code does not match Shipping State.
P63 Invalid Shipping Zip Code
P64 Invalid Credit Card CVV2/CVC2 Format.
P91 Missing/incorrect password
P92 Account not configured for mobile administration
00 Approved
01 Refer to card issuer
02 Refer to card issuer, special conditions
03 Invalid Merchant ID
04 Pick up card
05 Do not honor/Generic authorization decline
06 General error
07 Pick up card, special conditions
12 Invalid transaction
13 Invalid amount
14 Invalid account/card number
15 No such issuer
17 Manual PAN tries exceeded
19 Re-enter transaction
21 Reversal unsuccessful/Unable to back out transaction
28 File is temporarily unavailable
30 Message format error
33 Pick up card - Expired
38 Allowable number of pin tries exceeded
39 No credit account
40 Requested function not supported
41 Pick up card – lost
43 Pick up card – stolen
47 Remote function unknown
51 Insufficient funds
52 No checking account
53 No savings account
54 Expired card
55 Incorrect pin
56 Cannot process
57 Trans. not permitted to cardholder
58 Trans. not permitted to terminal
59 Multiple accounts exist for a given to/from account type
61 Exceeds withdrawal limit/Primary phone number does not match for card activation
62 Invalid service code, restricted
63 Security violation
65 Activity limit exceeded
75 PIN tries exceeded
76 Unable to locate, no match/Late reversal
77 Inconsistent date, rev. or repeat
78 No account/No "To" account specified
79 Already reversed at switch/No "From" account specified
80 Invalid date
81 Cryptographic error
82 Cashback limit exceeded/Invalid CVV
83 Can not verify PIN
86 Can not verify PIN
88 Card record not available
89 Invalid authorization code
91 Issuer or switch is unavailable
92 Destination not found/Unable to route transaction
93 Violation, cannot complete/Illegal transaction
96 System Error
98 Duplicate transaction
99 Preferred debit routing denial/Credit transaction cannot be performed as debit
101 Invalid Card Info

Final Status Description

Final status description for ACH,Credit and Debit Payment type

Payment TypeFinal StatusDescription
ACH XXX Transaction Not accepted. See Error Message
ACH RXX Transaction was returned. See return codes list
ACH CXX Transaction has a Notice of Change. See return codes list
ACH ACHPaymentVoided Payment has been voided
ACH ACHPaymentCredited Payment has been credited
ACH 1912 Duplicate Transaction
ACH 1100 Account and Routing number are in the negative accounts table
 
Credit Card pending For Return will always show pending
Credit Card problem Processing error occurred. See Error Message
Credit Card Payment Marked Transaction has been marked
Credit Card Payment Voided Transaction has been voided
Credit Card success Transaction has been successfully created
Credit Card Payment Returned Transaction has been Returned
Credit Card badcard Card is not able to validate
Credit Card initiated CC Void/Refund sent to the CC gateway
Credit Card voided Record not found
Credit Card fraud Invalid credit card number.
Credit Card Payment Authorized Payment has been authorized
Credit Card failure Payment failed. See Error Message
 
Pinless Debit Success Transaction has been successfully submitted
Pinless Debit Payment Returned Transaction has been Returned
Pinless Debit failure Transaction has not submitted. See Error Message
Pinless Debit ChargedBack Transaction is chargedback

Remote Check Return Codes

Return codes for remote checks.

CodeDescription
RA NSF - Not Sufficient Funds
RB UCF - Uncollected Funds Hold
RC Stop Payment
RD Closed Account
RE UTLA - Unable to Locate Account
RF Frozen/Blocked Account - Account has Restrictions placed on it by either customer or bank
RG Stale Dated
RH Post Dated
RI Endorsement Missing
RJ Endorsement Irregular
RK Signature(s) Missing
RL Signature(s) Irregular, Suspected Forgery
RM Non-Cash Item (Non-Negotiable)
RN Altered/Fictitious Item/Suspected Counterfeit/Counterfeit
RO Unable to process (e.g. Unable to process physical item/Mutilated such that critical payment information is missing). This code shall not be used for unusable images or system problems (see code "U").
RP Item outside of stated dollar amount
RQ Not Authorized (Includes Drafts) - Unathorized item such as a draft
RR Branch/Account Sold (Wrong Bank) - Divested Account, Not Our Item
RS Refer to Maker
RT Item cannot be re-presented (Exceeds number of allowable times the item can be presented)
RU Unusable Image (Image could not be used for required business purpose, e.g. gross image defects, illegible, etc.)
RV Image Fails Security Check
RW Cannot Determine Amount - Amount cannot be verified
RX Refer to Image - Return Reason information is contained within the image of the item
RY Duplicate Presentment (Supporting documentation shall be readily available)
RZ Forgery - An affidavit shall be available upon request
R1 Does not conform with ANSI X9. 100-181 Specification for TIFF Image Format for Image Exchange standard
R2 Does not conform to the Industry's Universal Companion Document, TR 47.
R3 Warranty Breach (Includes Rule 8 & 9 claims)
R4 RCC Warranty Breach (Rule 8)
R5 Forged and Counterfeit Warranty Breach (Rule 9)
R6 Retired/Ineligible/Failed Institution Routing Number

AVS Codes - Visa

Address Verification Codes from Visa

CodeDescription
A Address matches, ZIP code does not.
B Street address match for international transaction; postal code not verified.
C Street & postal code not verified for international transaction.
D Street & Postal codes match for international transaction Both the five-digit postal zip code as well as the first five numerical characters contained in the address match for the international transaction.
E Transaction is ineligible for address verification.
F Street address & postal codes match for international transaction. (UK Only)
G AVS not performed because the international issuer does not support AVS.
I Address information not verified for international transaction.
M Street address & postal codes match for international transaction.
N Neither the ZIP nor the address matches.
P Postal codes match for international transaction; street address not verified.
S AVS not supported at this time.
R Issuer's authorization system is unavailable, try again later.
U Unable to perform address verification because either address information is unavailable or the Issuer does not support AVS.
W Nine-digit zip match, address does not. The nine-digit postal zip code matches that stored at the VIC or card issuer's center. However, the first five numerical characters contained in the address do not match.
X Exact match (nine-digit zip and address). Both the nine-digit postal zip code as well as the first five numerical characters contained in the address match.
Y Address & 5-digit or 9-digit ZIP match.
Z Either 5-digit or 9-digit ZIP matches, address does not.
0 Service Not Allowed. Generally associated with credit cards that are either not allowed to be used for any online transactions or are not allowed to be used for a specific classification of company.

AVS Codes - Mastercard

Address Verification Codes from Mastercard

CodeDescription
A Address matches, ZIP code does not.
B Street address match for international transaction; postal code not verified.
C Street & postal code not verified for international transaction.
D Street & Postal codes match for international transaction Both the five-digit postal zip code as well as the first five numerical characters contained in the address match for the international transaction.
E Ineligible transaction. Address verification not allowed for card type.
F Street address & postal codes match for international transaction. (UK Only)
G International Address information unavailable. The international address information was not available at the VIC or issuer's center.
I Address information not verified for international transaction.
M Street address & postal codes match for international transaction.
N Neither the ZIP nor the address matches.
P Postal codes match for international transaction; street address not verified.
S AVS not supported at this time.
R Retry, system unable to process.
U No data from issuer/BankNet switch.
W 9-digit ZIP code matches, but address does not.
X Exact, all digits match, 9-digit ZIP code.
Y Exact, all digits match, 5-digit ZIP code.
Z 5-digit ZIP code matches, but address does not.

AVS Codes - American Express

Address Verification Codes from American Express

CodeDescription
A Address only is correct.
B Street address match for international transaction; postal code not verified.
C Street & postal code not verified for international transaction.
D Street & Postal codes match for international transaction Both the five-digit postal zip code as well as the first five numerical characters contained in the address match for the international transaction.
E Ineligible transaction. Address verification not allowed for card type.
F Street address & postal codes match for international transaction. (UK Only)
G International Address information unavailable. The international address information was not available at the VIC or issuer's center.
I Address information not verified for international transaction.
M Street address & postal codes match for international transaction.
N Neither the ZIP nor the address matches.
P Street address match for international transaction; postal code not verified.
R Issuer's authorization system is unavailable, try again later.
S AVS not supported at this time.
U The necessary information is not available, account number is neither U.S. nor Canadian.
W Nine-digit zip match, address does not. The nine-digit postal zip code matches that stored at the VIC or card issuer's center. However, the first five numerical characters contained in the address do not match.
X Exact match (nine-digit zip and address). Both the nine-digit postal zip code as well as the first five numerical characters contained in the address match.
Y Yes, address and ZIP code are both correct.
Z ZIP code only is correct.

AVS Codes - Discover

Address Verification Codes from Discover

CodeDescription
A Address matches, ZIP code does not.
B Street address match for international transaction; postal code not verified.
C Street & postal code not verified for international transaction.
D Street & Postal codes match for international transaction Both the five-digit postal zip code as well as the first five numerical characters contained in the address match for the international transaction.
E Transaction is ineligible for address verification.
F Street address & postal codes match for international transaction. (UK Only)
G AVS not performed because the international issuer does not support AVS.
I Address information not verified for international transaction.
M Street address & postal codes match for international transaction.
N Neither the ZIP nor the address matches.
P Postal codes match for international transaction; street address not verified.
S AVS not supported at this time.
R Issuer's authorization system is unavailable, try again later.
U Unable to perform address verification because either address information is unavailable or the Issuer does not support AVS.
W Nine-digit zip match, address does not. The nine-digit postal zip code matches that stored at the VIC or card issuer's center. However, the first five numerical characters contained in the address do not match.
X Exact match (nine-digit zip and address). Both the nine-digit postal zip code as well as the first five numerical characters contained in the address match.
Y Address & 5-digit or 9-digit ZIP match.
Z Either 5-digit or 9-digit ZIP matches, address does not.
0 Service Not Allowed. Generally associated with credit cards that are either not allowed to be used for any online transactions or are not allowed to be used for a specific classification of company.