NAV Navbar

Logo
Logo

Introduction

Payment Data Systems - Payments API 2.0 Documentation

PDS 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, 11/7/2018 © Payment Data Systems.

Change Log

DateAuthorVersionChange Summary
11/7/2018 Tracy Rickman 2.0 Initial web release
12/5/2018 Rachel Carlini 2.1 Minor text fixes

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 Payment Data 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@paymentdata.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"
}
                
            

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

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

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

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 successfull response. To simulate a failure plese 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 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
ConvFeeAmount string Optional max 6 Secondary Amount to denote what portion of the amount field should be applied as a convenience fee. (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 string Optional max 100False = Sale Transaction, True = Auth Only (Vantiv Only)
TerminalID string Optional max 10 Tenerum terminal ID. When sending terminal ID, leave card number, expiration date and CVV empty.

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",
	"Confirmation": "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 Amount of Transaction (#0.00)
Confirmation 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. (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",
	"Confirmation": "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)
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

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 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
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.
(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",
	"Confirmation": "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)
Confirmation 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

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",
	"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"
}
                
            

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

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 Required max 39 Merchants Account Number
CheckWriterFirstName string Required max 39 First Name of the check writer
CheckWriterLastName string Required max 39 Last Name of the check writer
CheckWriterAddress1 string Required max 39 Address 1 of the check writer
CheckWriterAddress2 string Optional max 39 Address 2 of the check writer
CheckWriterCity string Required max 39 City of the check writer
CheckWriterState string Required 2 State of the check writer
CheckWriterZip string Required max 10 Zip code of the check writer
CheckWriterPhone string Optional max 39 Phone number of the check writer
CheckWriterAccountNumber string Required max 17 Checking Account number of the check writer
CheckWriterRoutingNumber string Required 9 Routing Number of the check writer
Amount string Required max 8 Amount for the check (#0.00)
CheckNumber string Required max 9 Unique Check Number
PayeeAccountNumber string Optional max 30 Optional reporting field
AdditionalSearch string Optional max 15 Optional reporting field
PayeeName string Required max 39 Name of payee
PayeeAddress1 string Required max 39 Address 1 of payee
PayeeAddress2 string Optional max 20 Address 2 of payee
PayeeCity string Required max 39 City of payee
PayeeState string Required 2 State of payee
PayeeZip string Required max 10 Zip code of payee
MerchantName string Required max 39 Merchant Name to appear on the check
BankName string Required max 39 Bank Name to appear on the 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

Utilities

Repeating Payments

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

            
{
	"MerchantID": "string",
	"Login": "string",
	"Password": "string",
	"ConfirmationID": "string",
	"CardNumber": "string",
	"CardType": "string",
	"CVV": "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"
}
                
            

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 frequences 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 Card Number
CardType string Optional 4 VISA, MSTR, DISC, AMEX
CVV string Optional 3-4 CVC/CVV Number
ExpDate string Optional 6 Expiration Date (MMYYYY)
UseDebitNetwork string 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)
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
FinalPaymentAmountAmountstringOptional 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

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 Optional 14-17 (reserved for future use)
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)
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 string Optional max 100False = Sale Transaction, True = Auth Only (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

Reporting

Transaction Details

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

            
{
	"MerchantID": "string",
	"Login": "string",
	"Password": "string",
	"ConfirmationID": "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",
			"AccoutnName": "string",
			"AccountType": "string",
			"AdditionalSearch1": "string",
			"Address1": "string",
			"Address2": "string",
			"Amount": "string",
			"AuthCode": "string",
			"BatchNumber": "string",
			"CVVResp": "string",
			"City": "string",
			"Confirmation": "string",
			"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
   -AccoutnName 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
   -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",
			"AccoutnName": "string",
			"AccountType": "string",
			"AdditionalSearch1": "string",
			"Address1": "string",
			"Address2": "string",
			"Amount": "string",
			"AuthCode": "string",
			"BatchNumber": "string",
			"CVVResp": "string",
			"City": "string",
			"Confirmation": "string",
			"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
   -AccoutnName 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
   -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

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,
	"creditTotalAmout": double,
	"debitRecordCount": int,
	"debitTotalAmout": 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 Trave ID from request
creditRecordCount int Number of credit transactions seen
creditTotalAmout double Total amount of all credits seen
debitRecordCount int Number of debit transactions seen
debitTotalAmout 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.

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

Gateway Response Codes

Error messages returned from the gateways, networks or issuer.

CodeDescription
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 issuer
02 Refer to issuer
28 File is temporarily unavailable
91 Issuer or switch is unavailable
04 Pick up card
07 Pick up card
41 Pick up card – lost
43 Pick up card – stolen
EA Verification error
79 Already reversed at switch
13 Invalid amount
83 Can not verify PIN
86 Can not verify PIN
14 Invalid card number
82 Cashback limit exceeded
N3 Cashback service not available
EB Verification error
EC Verification error
80 Invalid date
05 Do not honor
51 Insufficient funds
N4 Exceeds issuer withdrawal limit
61 Exceeds withdrawal limit
62 Invalid service code, restricted
65 Activity limit exceeded
93 Violation, cannot complete
81 Cryptographic error
06 General error
54 Expired card
92 Destination not found
12 Invalid transaction
78 No account
21 unable to back out transaction
76 Unable to locate, no match
77 Inconsistent date, rev. or repeat
39 No credit account
15 No such issuer
75 PIN tries exceeded
19 Re-enter transaction
63 Security violation
57 Trans. not permitted-Card

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.