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, 6/25/24 © USIO
.
Change Log
Date | Author | Doc Version | Change 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/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/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 Message 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/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 |
12/12/2019 | Rachel Carlini | 2.24 | Added NACHA Return Codes |
12/18/2019 | Rachel Carlini | 2.25 | Added "Token" Parameter to GetConvenienceFee Method. Added a new Response Code 5125. |
1/17/2020 | Andrew Reese | 2.26 | Updated PDS references to Usio for Usio name change |
2/6/2020 | Andrew Reese | 2.27 | Added CCUpdater Request and Results methods and Response Codes |
7/27/2020 | Andrew Reese | 2.28 | Updated notes for CheckNegativeAccounts field |
12/3/2020 | Daniel Jackson | 2.29 | Updated links to new URL |
1/19/2021 | Rachel Carlini | 2.30 | Added debitbatch filter to GetTransactionList |
1/25/2021 | Tracy Rickman | 2.31 | Added Masked account number to reporting API's |
2/9/2021 | Rachel Carlini | 2.32 | Modified Verify ACH Account method to include possible responses |
3/1/2021 | Dylan Hughes | 2.33 | Modified Submit ACH Payment method to include note about NACHA rule change |
4/27/2021 | Connor Birch | 2.34 | Added Custom Search Filter to Get Transaction List Method |
4/27/2021 | Brianna Keck | 2.35 | Added Status Check Method |
5/4/2021 | Connor Birch | 2.36 | Added DisableDuplicateCheck to ACH, CC, RCC, Pinless, and Token payment methods |
5/24/2021 | Bhumika Kachhadia | 2.36 | Added Token,masked account number and create new token CC updater methods |
8/3/2021 | Brianna Keck | 2.37 | Added GetTerminals method |
9/21/2021 | Connor Birch | 2.38 | Added Special Test Cases to SubmitACH and PinlessDebit/Credit |
9/22/2021 | Daniel Jackson | 2.39 | Modified Printed Check method to add TemplateID parameter |
9/28/2021 | Brianna Keck | 2.40 | Removed BillPay and Repeating Payment Endpoints |
9/28/2021 | Brianna Keck | 2.40 | Added New Credit Card Response Code 46 |
4/21/2022 | Dylan Hughes | 2.42 | Added MaxResults parameter to GetTransactionsList |
4/25/2022 | Dylan Hughes | 2.42 | Added missing descriptions and URLs for StatusChceck and GetTerminals endpoint documentation |
7/19/2022 | Dylan Hughes | 2.43 | Updated link to Checkout documentation to point at latest version |
10/7/2022 | Daniel Jackson | 2.44 | Added CVV return codes |
3/21/2023 | Daniel Jackson | 2.45 | Removed cash payment method |
6/13/2023 | Raul Valadez | 2.46 | Added GetDocument to retrieve documents |
2/5/2024 | Raul Valadez | 2.47 | Added New BNPL product |
4/19/2024 | Kenneth Syailendra | 2.48 | Added CardType for Pinless Bin Check |
5/16/2024 | Raul Valadez | 2.49 | Remove Credit Card Type parameter from SubmitCCPayment endpoint |
6/11/2024 | Kenneth Syailendra | 2.50 | Added Level 2/3 Credit Card Payments |
6/25/2024 | Randy Baldwin | 2.51 | Added Real Time Payments product |
Environment
SANDBOX & PRODUCTION
https://payments.usiopay.com
Sandbox & Production
https://payments.usiopay.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://payments.usiopay.com/2.0/payments.svc?wsdl
REST/JSON Endpoints and definitions:
https://payments.usiopay.com/2.0/payments.svc/json/help
Required Parameters in all calls
Parameter Name | Description |
---|---|
MerchantID | Merchant ID assigned by USIO Systems |
Login | API Username |
Password | API Password |
Parameter values for Sandbox
Parameter Name | Test Value |
---|---|
MerchantID | 0000000001 |
Login | API0000000001 |
Password | Temp1234! |
If you require additional support, please contact us at integrations@usio.com.
Pinless Debit Card Payments
Pinless Bin Check
POST https://payments.usiopay.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,
"CardType": "string"
}
This method is used to check the eligibility of a card number for pinless debit and credit operations.
HTTP Request
POST https://payments.usiopay.com/2.0/payments.svc/JSON/PinlessBinCheck
Parameters
Name | Type | Required | Length | Description |
---|---|---|---|---|
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
Name | Type | Description |
---|---|---|
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 |
CardType | string | "Credit Card" or "Debit Card" or "Prepaid Card" |
Pinless Debit/Credit
POST https://payments.usiopay.com/2.0/payments.svc/JSON/PinlessDebit
POST https://payments.usiopay.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",
"DisableDuplicateCheck": false
}
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.
By default, all transactions when ran in test mode will return a successful response. To simulate a failure please pass the card number of 5489221100112235 and one of the below amounts to get various responses.
Amount | Description |
---|---|
1.01 | Failure response of 51: Insufficient funds |
1.02 | Failure response of 05: Do not honor |
1.03 | Failure response of 14: Invalid card number (no such number) |
1.04 | Failure response of 57: Transaction not permitted to cardholder |
1.05 | Successful response, but marks payment record with a “N” for the AVS code |
HTTP Request
POST https://payments.usiopay.com/2.0/payments.svc/JSON/PinlessDebit
POST https://payments.usiopay.com/2.0/payments.svc/JSON/PinlessCredit
Parameters
Name | Type | Required | Length | Description |
---|---|---|---|---|
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 (Internationally 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) |
DisableDuplicateCheck | bool | Optional | Disables check for duplicate payments |
Response
Name | Type | Description |
---|---|---|
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://payments.usiopay.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://payments.usiopay.com/2.0/payments.svc/JSON/PinlessReturn
Parameters
Name | Type | Required | Length | Description |
---|---|---|---|---|
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
Name | Type | Description |
---|---|---|
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://payments.usiopay.com/2.0/payments.svc/JSON/SubmitCCPayment
{
"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",
"ConvFeeAmount": "string",
"secure3D": "string",
"AuthOnly": false,
"TerminalID": "string",
"MobileWalletType": "string",
"MobileWalletCryptogram": "string",
"MobileWalletECI": "string",
"TrackData": "string",
"DisableDuplicateCheck": false,
"EnhancedDataFields": {
"SalesTax": 0.00,
"ShippingCharges": 0.00,
"PurchaseOrder": "string",
"LineItems": [
{
"ProductCode": "string",
"ProductName": "string",
"UnitOfMeasure": "string",
"Quantity": 0.00,
"UnitCost": 0.00,
"DiscountName": "string",
"UnitDiscountAmount": 0.00,
"UnitTaxAmount": 0.00
}
]
}
}
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 one of the below amounts to get various responses.
Amount | Description |
---|---|
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://payments.usiopay.com/2.0/payments.svc/JSON/SubmitCCPayment
Parameters
Name | Type | Required | Length | Description |
---|---|---|---|---|
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 | Credit/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 (Internationally 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 (WorldPay 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 | 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 100 | Cryptogram 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 150 | Unecrypted Track1/Track2 or combined Track1 and Track2 data. If sending encrypted track data, please contact us for formatting specifications |
DisableDuplicateCheck | bool | Optional | Disables check for duplicate payments | |
EnhancedDataFields | object | Optional | Level 2/3 Processing Data | |
-SalesTax | decimal | Optional | max 12 | Total Sales Tax of Transaction (#0.00) |
-ShippingCharges | decimal | Optional | max 12 | Total Shipping Amount of Transaction (#0.00) |
-PurchaseOrder | string | Optional | max 20 | Purchase Order Number |
-LineItems | list | Optional | Product Details | |
-ProductCode | string | Optional | max 20 | Unique product ID code |
-ProductName | string | Optional | max 50 | Name of the product |
-UnitOfMeasure | string | Optional | max 20 | Product unit of measurement |
-Quantity | decimal | Optional | max 7 | Product quantity |
-UnitCost | decimal | Optional | max 12 | Product price (#0.00) |
-DiscountName | string | Optional | max 50 | Name of the discount applied to a product |
-UnitDiscountAmount | decimal | Optional | max 12 | Amount of discount applied to a product (#0.00) |
-UnitTaxAmount | decimal | Optional | max 12 | Amount of tax applied to a product (#0.00) |
Response
Name | Type | Description |
---|---|---|
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://payments.usiopay.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://payments.usiopay.com/2.0/payments.svc/JSON/MarkCCPayment
Parameters
Name | Type | Required | Length | Description |
---|---|---|---|---|
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 the 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 (WorldPay Only) |
Response
Name | Type | Description |
---|---|---|
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://payments.usiopay.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://payments.usiopay.com/2.0/payments.svc/JSON/SubmitCCVoid
Parameters
Name | Type | Required | Length | Description |
---|---|---|---|---|
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 the original transaction |
Response
Name | Type | Description |
---|---|---|
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://payments.usiopay.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",
"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",
"DisableDuplicateCheck": false
}
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.
By default, all ACH transactions when ran in test mode will be marked as Accepted. To simulate a return, please pass the account number of 123456789, routing number of 555555550, and one of the amounts below. This will return a successful response on submission but will internally mark the transaction as returned. When you query the transaction it with the various reporting endpoints the transaction will show the return code.
Amount | Description |
---|---|
1.01 | Record will be marked as Returned, R01 |
1.02 | Record will be marked as Returned, R02 |
1.03 | Record will be marked as NOC, C01 |
NOTE: NACHA WEB Debit Account Validation Rule went into effect on 3/19/2021. This rule requires that for any new WEB debit transaction that you must first attempt to verify the existence of the account. USIO provides a way to do this with our ACH Validation Method. Please see our announcement page here for more details.
HTTP Request
POST https://payments.usiopay.com/2.0/payments.svc/JSON/SubmitACHPayment
Parameters
Name | Type | Required | Length | Description |
---|---|---|---|---|
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 (Internationally Supported) |
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 100 | Enter "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 |
CheckNegativeAccounts | bool | Required | Request or skip negative accounts database check | |
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) |
DisableDuplicateCheck | bool | Optional | Disables check for duplicate payments |
Response
Name | Type | Description |
---|---|---|
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
Code | Description |
---|---|
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
Code | Description |
---|---|
WEB | Web initiated transaction |
PPD | Prearranged Payment and Deposit |
TEL | Telephone initiated transaction |
CCD | Corporate Credit and Debit transaction |
Void/Refund Transaction
POST https://payments.usiopay.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://payments.usiopay.com/2.0/payments.svc/JSON/SubmitACHVoidReturn
Parameters
Name | Type | Required | Length | Description |
---|---|---|---|---|
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 the 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
Name | Type | Description |
---|---|---|
Status | string | "success" or "failure" |
Message | string | On failure will contain the error description |
Confirmation | string | On success will contain the transaction confirmation ID |
Real Time Payments
RTP Account Check
POST https://payments.usiopay.com/2.0/payments.svc/JSON/RTPAccountCheck
{
"MerchantID": "string",
"Login": "string",
"Password": "string",
"RoutingNumber": "string"
}
The above command returns the following JSON structure:
{
"Status": "string",
"Message": "string",
"AllowRTP": true
}
This method is used to check the eligibility of a routing number for Real Time Payments operations.
HTTP Request
POST https://payments.usiopay.com/2.0/payments.svc/JSON/RTPAccountCheck
Parameters
Name | Type | Required | Length | Description |
---|---|---|---|---|
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 | Routing Number |
Response
Name | Type | Description |
---|---|---|
Status | string | "success" or "failure" |
Message | string | On failure will contain the error description |
AllowRTP | bool | Boolean result of real time payment eligibility |
RTP Credit
POST https://payments.usiopay.com/2.0/payments.svc/JSON/RTPCredit
{
"MerchantID": "string",
"Login": "string",
"Password": "string",
"RoutingNumber": "string",
"AccountNumber": "string",
"Amount": "string",
"FirstName": "string",
"LastName": "string",
"EmailAddress": "string",
"Address1": "string",
"Address2": "string",
"City": "string",
"State": "string",
"Zip": "string",
"MerchantPayAccount": "string",
"UserID": "string",
"AdditionalSearch": "string",
"AccountCode1": "string",
"AccountCode2": "string",
"AccountCode3": "string",
"TokenizeOnly": false,
"DisableDuplicateCheck": false
}
The above command returns the following JSON structure:
{
"Status": "string",
"Message": "string",
"Confirmation": "string"
}
This method is used to credit (send) funds to a checking/savings account.
Important Information
To tokenize the account, set TokenizeOnly to true and an amount of 0.00. This will not credit the account.
By default, all transactions when run in test mode will return a successful response. To simulate a failure please pass the routing number of 555555550, account number 123456789 and one of the below amounts to get various responses.
Amount | Description |
---|---|
1.01 | Failure response of P02: Unknown customer, account closed |
1.02 | Failure response of P11: Transaction forbidden on this account |
1.03 | Failure response of P26: Missing or invalid mandatory field |
1.04 | Failure response of P34: Suspended account |
HTTP Request
POST https://payments.usiopay.com/2.0/payments.svc/JSON/RTPCredit
Parameters
Name | Type | Required | Length | Description |
---|---|---|---|---|
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 | 4-17 | Bank Account Number |
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 (Internationally Supported) |
MerchantPayAccount | string | Optional | max 32 | 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 |
TokenizeOnly | bool | Required | true = information will be tokenized only, false = standard transaction | |
DisableDuplicateCheck | bool | Optional | Disables check for duplicate payments |
Response
Name | Type | Description |
---|---|---|
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://payments.usiopay.com/2.0/payments.svc/JSON/SubmitRCCPayment
{
"MerchantID": "string",
"Login": "string",
"Password": "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,
"DisableDuplicateCheck": 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://payments.usiopay.com/2.0/payments.svc/JSON/SubmitRCCPayment
Parameters
Name | Type | Required | Length | Description |
---|---|---|---|---|
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 | |
DisableDuplicateCheck | bool | Optional | Disables check for duplicate payments |
Response
Name | Type | Description |
---|---|---|
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://payments.usiopay.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://payments.usiopay.com/2.0/payments.svc/JSON/SubmitRCCVoid
Parameters
Name | Type | Required | Length | Description |
---|---|---|---|---|
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
Name | Type | Description |
---|---|---|
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://payments.usiopay.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",
"TemplateID": "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://payments.usiopay.com/2.0/payments.svc/JSON/SendCheck
Sample Check Image
Parameters
Name | Type | Required | Length | Description |
---|---|---|---|---|
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 32 | Optional reporting field |
CheckWriterToken | string | Optional | max 39 | Token for Stored Check Writer |
CheckWriterFirstName | string | Conditional | 2-19 | First Name of the check writer |
CheckWriterLastName | string | Conditional | 2-19 | Last Name of the check writer |
CheckWriterAddress1 | string | Conditional | 2-39 | Address 1 of the check writer |
CheckWriterAddress2 | string | Optional | 2-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 |
TemplateID | string | Optional | 1-4 | Template identifier |
PayeeName | string | Required | 2-40 | Name of payee |
PayeeAddress1 | string | Required | 2-40 | Address 1 of payee |
PayeeAddress2 | string | Optional | 2-20 | Address 2 of payee |
PayeeCity | string | Required | 2-40 | City of payee |
PayeeState | string | Required | 2 | State of payee |
PayeeZip | string | Required | 5-10 | Zip code of payee |
MerchantName | string | Required | 2-39 | Merchant Name to appear on the check |
BankName | string | Required | 2-39 | Bank Name to appear on the check |
TokenizeOnly | bool | Required | true = information will be tokenized only, false = standard check |
Response
Name | Type | Description |
---|---|---|
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://payments.usiopay.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://payments.usiopay.com/2.0/payments.svc/JSON/VoidCheck
Parameters
Name | Type | Required | Length | Description |
---|---|---|---|---|
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
Name | Type | Description |
---|---|---|
Status | string | "success" or "failure" |
Message | string | On failure will contain the error description |
Confirmation | string | On success will contain the transaction confirmation ID |
Buy Now Pay Later
Submit BNPL Application
POST https://payments.usiopay.com/2.0/payments.svc/JSON/SubmitBNPLApplication
{
"MerchantID": "string",
"Login": "string",
"Password": "string",
"CustomerFirstName": "string",
"CustomerLastName": "string",
"Amount": "string",
"CustomerReferenceNumber": "string"
}
The above command returns the following JSON structure:
{
"Status": "string",
"Message": "string",
"ApplicationID": "string",
"URL": "string"
}
This method allow you to submit a request to create a new BNPL loan application.
You will get back a url for customer to complete their loan application.
HTTP Request
POST https://payments.usiopay.com/2.0/payments.svc/JSON/SubmitBNPLApplication
Parameters
Name | Type | Required | Length | Description |
---|---|---|---|---|
MerchantID | string | Required | 6-10 | Merchant Identification Number |
Login | string | Required | 6-12 | API Username |
Password | string | Required | max 25 | API Password |
CustomerFirstName | string | Optional | 2-20 | Customer First Name |
CustomerLastName | string | Optional | 2-20 | Customer Last Name |
Amount | string | Required | max 8 | Total Amount (#0.00) |
CustomerReferenceNumber | string | Optional | max 50 | Customer Unique Identifier Number |
Response
Name | Type | Description |
---|---|---|
Status | string | "success" or "failure" |
Message | string | On failure will contain the error description |
ApplicationID | string | ID of the loan application |
URL | string | URL for customer to complete their application |
Void BNPL Application
POST https://payments.usiopay.com/2.0/payments.svc/JSON/VoidBNPLApplication
{
"MerchantID": "string",
"Login": "string",
"Password": "string",
"ApplicationID": "string"
}
The above command returns the following JSON structure:
{
"Status": "string",
"Message": "string",
}
This method allows you to void an active BNPL loan application
HTTP Request
POST https://payments.usiopay.com/2.0/payments.svc/JSON/VoidBNPLApplication
Parameters
Name | Type | Required | Length | Description |
---|---|---|---|---|
MerchantID | string | Required | 6-10 | Merchant Identification Number |
Login | string | Required | 6-12 | API Username |
Password | string | Required | max 25 | API Password |
ApplicationID | string | Required | 36 | Application Identification Number |
Response
Name | Type | Description |
---|---|---|
Status | string | "success" or "failure" |
Message | string | On failure will contain the error description |
BNPL Report
POST https://payments.usiopay.com/2.0/payments.svc/JSON/GetBNPLReport
{
"MerchantID": "string",
"Login": "string",
"Password": "string",
"ApplicationID": "string",
"DateFrom": "string",
"DateTo": "string",
}
The above command returns the following JSON structure:
{
"Status": "string",
"Message": "string",
"Applications": [
{
"ApplicationID": "string",
"CustomerReferenceNumber": "string",
"FirstName": "string",
"LastName": "string",
"ApplicationCreateDate": "\/Date(1474360707280-0500)\/",
"Status": "string",
"LoanAmount": "string",
"PayoutAmount": "string",
"FinalStatusDate": "\/Date(1474360707280-0500)\/",
"Url": "string",
}
]
}
This method allow you to submit a request to retrive a single application, or a date range of applications
HTTP Request
POST https://payments.usiopay.com/2.0/payments.svc/JSON/GetBNPLReport
Parameters
Name | Type | Required | Length | Description |
---|---|---|---|---|
MerchantID | string | Required | 6-10 | Merchant Identification Number |
Login | string | Required | 6-12 | API Username |
Password | string | Required | max 25 | API Password |
ApplicationID | string | Conditional | 36 | Application Identification Number |
DateFrom | string | Conditional | max 20 | Starting date of search. Format “MM/D/YYYY HH:MM:SS” |
DateTo | string | Conditional | max 20 | Ending date of search. Format “MM/D/YYYY HH:MM:SS” |
Response
Name | Type | Description |
---|---|---|
Status | string | "success" or "failure" |
Message | string | On failure will contain the error description |
Applications | string | Array of BNPL Applications |
-ApplicationID | string | ApplicationID Identification Number |
-CustomerReferenceNumber | string | Customer Unique Identifier Number |
-FirstName | string | Customer First Name |
-LastName | string | Customer Last Name |
-ApplicationCreateDate | string | Date Application was created |
-Status | string | Status of the Application |
-LoanAmount | string | Amount the customer request |
-PayoutAmount | string | Amount merchant receives |
-FinalStatusDate | string | Date the application was finalize |
-Url | string | URL to the application |
Utilities
Tokenized Payments
POST https://payments.usiopay.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,
"DisableDuplicateCheck": 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://payments.usiopay.com/2.0/payments.svc/JSON/SubmitTokenPayment
Parameters
Name | Type | Required | Length | Description |
---|---|---|---|---|
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 the 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 100 | Enter "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 |
CheckNegativeAccounts | bool | Required | Request or skip negative accounts database check | |
ConvFeeAmount | string | Optional | max 6 | Secondary amount to denote what portion of the amount field should be applied as a convenience fee (WorldPay only) |
AuthOnly | bool | Optional | max 100 | false = Sale Transaction, true = Auth Only |
DisableDuplicateCheck | bool | Optional | Disables check for duplicate payments |
Response
Name | Type | Description |
---|---|---|
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://payments.usiopay.com/2.0/payments.svc/JSON/GetConvenienceFee
{
"AccountNumber": "string",
"IsACH": false,
"Login": "string",
"MerchantID": "string",
"Password": "string",
"TransactionAmount": 12.34,
"IsPinless": false,
"Token": "string"
}
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://payments.usiopay.com/2.0/payments.svc/JSON/GetConvenienceFee
Parameters
Name | Type | Required | Length | Description |
---|---|---|---|---|
MerchantID | string | Required | 6-10 | Merchant Identification Number |
Login | string | Required | 6-12 | API Username |
Password | string | Required | max 25 | API Password |
TransactionAmount | decimal | 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 |
Token | string | Optional | max 36 | Confirmation ID or Checkout Token to be used in place of payment information |
Response
Name | Type | Description |
---|---|---|
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://payments.usiopay.com/2.0/payments.svc/JSON/GetPrefundingBalance
{
"MerchantID": "string",
"Login": "string",
"Password": "string"
}
The above command returns the following JSON structure:
{
"Status": "string",
"Message": "string",
"ACHPrefundingBalance": 0.00,
"PinlessPrefundingBalance": 0.00,
"RTPPrefundingBalance": 0.00
}
This method allows you to request the current balance of your ACH and Pinless Debit Card prefunding accounts.
HTTP Request
POST https://payments.usiopay.com/2.0/payments.svc/JSON/GetPrefundingBalance
Parameters
Name | Type | Required | Length | Description |
---|---|---|---|---|
MerchantID | string | Required | 6-10 | Merchant Identification Number |
Login | string | Required | 6-12 | API Username |
Password | string | Required | max 25 | API Password |
Response
Name | Type | Description |
---|---|---|
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 |
RTPPrefundingBalance | decimal | Real time balance of the RTP prefunding account |
ACH Account Validation
POST https://payments.usiopay.com/2.0/payments.svc/JSON/VerifyACHAccount
{
"MerchantID": "string",
"Login": "string",
"Password": "string",
"RoutingNumber": "string",
"AccountNumber": "string"
"Token": "string"
}
The above command returns the following JSON structure:
{
"Status": "string",
"Message": "string",
"Confirmation": "string"
}
This method allows you to check if an account will be rejected by providing the routing number and account number.
By default, all verifications when ran in the sandbox will return an "Account Unknown" response. To simulate various responses, please pass the routing number of 555555550 and one of the account numbers below.
Account Number | Description |
---|---|
123456789 | Open Account |
234567890 | Closed Account |
HTTP Request
POST https://payments.usiopay.com/2.0/payments.svc/JSON/VerifyACHAccount
Parameters
Name | Type | Required | Length | Description |
---|---|---|---|---|
MerchantID | string | Required | 6-10 | Merchant Identification Number |
Login | string | Required | 6-12 | API Username |
Password | string | Required | max 25 | API Password |
RoutingNumber | string | Conditional | max 9 | Bank Routing Number. Required if Token is omitted. |
AccountNumber | string | Conditional | max 17 | Bank Account Number. Required if Token is omitted. |
Token | string | Conditional | 15-36 | Confirmation ID or Checkout Token. Required if AccountNumber and RoutingNumber are omitted. |
Response
Name | Type | Description |
---|---|---|
Status | string | "success" or "failure" |
Message | string | On success will contain if Account has been found or not. On failure will contain the error message. |
Confirmation | string | Confirmation ID for this transaction |
Message Values
Code | Description |
---|---|
Account Found | Account has been seen before |
Account Closed | Account has had unauthorized returns |
Account Unknown | Account has not been seen |
Credit Card Updater Request
POST https://payments.usiopay.com/2.0/payments.svc/JSON/SubmitCCUpdaterRequest
{
"MerchantID": "string",
"Login": "string",
"Password": "string",
"CardNumber": "string",
"ExpirationDate": "string",
"Token": "string",
"CreateNewToken": "false"
}
The above command returns the following JSON structure:
{
"Confirmation": "string",
"Message": "string",
"Status": "string"
}
This method is used to query for new card numbers and expiration dates associated with a credit card.
HTTP Request
POST https://payments.usiopay.com/2.0/payments.svc/JSON/SubmitCCUpdaterRequest
Parameters
Name | Type | Required | Length | Description |
---|---|---|---|---|
MerchantID | string | Required | 6-10 | Merchant Identification Number |
Login | string | Required | 6-12 | API Username |
Password | string | Required | max 25 | API Password |
CardNumber | string | Optional | 14-17 | Credit Card Number |
ExpirationDate | string | Optional | 4 | Expiration Date (MMYY) |
Token | string | Optional | 14-18 | Confirmation ID. Required if Credit card Number and Expiration Date are omitted. |
CreateNewToken | Bool | Optional | Set to true to create new token |
Response
Name | Type | Description |
---|---|---|
Confirmation | string | Confirmation ID for this request |
Message | string | On failure will contain the error message |
Status | string | "success" or "failure" |
Credit Card Updater Results
POST https://payments.usiopay.com/2.0/payments.svc/JSON/GetCCUpdaterResults
{
"MerchantID": "string",
"Login": "string",
"Password": "string",
"ConfirmationID": "string",
"DateFrom": "string",
"DateTo": "string",
"ReturnUnmaskedAccountNumber": "false"
}
The above command returns the following JSON structure:
{
"Status": "string",
"Message": "string",
"Results":
[
{
"ConfirmationID": "string",
"NewCardNumber": "string",
"NewExpirationDate": "string",
"ResponseCode": "string",
"NewToken": "string"
}
]
}
This method will return the updated card number and/or expiration date associated with a credit card. Search by ConfirmationID from Credit Card Updater request or Date Range.
Note: Since raw credit card numbers are being returned you need to be PCI Compliant.
HTTP Request
POST https://payments.usiopay.com/2.0/payments.svc/JSON/GetCCUpdaterResults
Parameters
Name | Type | Required | Length | Description |
---|---|---|---|---|
MerchantID | string | Required | 6-10 | Merchant Identification Number |
Login | string | Required | 6-12 | API Username |
Password | string | Required | max 25 | API Password |
ConfirmationID | string | Conditional | 14-17 | Confirmation ID from Credit Card Updater Request |
DateFrom | string | Conditional | max 10 | Starting Date of search. Format "MM/DD/YYYY" |
DateTo | string | Conditional | max 10 | Ending Date of search. Format "MM/DD/YYYY" |
ReturnUnmaskedAccountNumber | bool | Conditional | Set to true to get unmasked Account Number |
Response
Name | Type | Description |
---|---|---|
Status | string | "success" or "failure" |
Message | string | On failure will contain the error description |
Results | object | Array of Results |
-ConfirmationID | string | Confirmation ID from Credit Card Updater Request |
-NewCardNumber | string | New card number (if there is one) associated with the credit card |
-NewExpirationDate | string | New Expiration Date associated with the credit card |
-ResponseCode | string | Usio Response Code |
-ResponseDate | string | Network Response Date |
-NewToken | string | New Token |
Status Check
POST https://payments.usiopay.com/2.0/payments.svc/JSON/StatusCheck
{
"MerchantID": "string",
"Login": "string",
"Password": "string",
"TraceNumber": "string"
}
The above command returns the following JSON structure:
{
"Status": "string",
"Message": "string"
}
This method is used to check that the API is responding.
HTTP Request
POST https://payments.usiopay.com/2.0/payments.svc/JSON/StatusCheck
Parameters
Name | Type | Required | Length | Description |
---|---|---|---|---|
MerchantID | string | Required | 6-10 | Merchant Identification Number |
Login | string | Required | 6-12 | API Username |
Password | string | Required | max 25 | API Password |
TraceNumber | string | Optional | max 50 | Optional Trace Number |
Response
Name | Type | Description |
---|---|---|
Status | string | "success" or "failure" |
Message | string | On failure will contain the error description |
Get Terminals
POST https://payments.usiopay.com/2.0/payments.svc/JSON/GetTerminals
{
"MerchantID": "string",
"Login": "string",
"Password": "string"
}
The above command returns the following JSON structure:
{
"Status": "string",
"Message": "string",
"Terminals":
[
{
"TerminalID": "string",
"TerminalName": "string",
"MakeModel": "string",
"DeviceSN": "string"
}
]
}
This method is used to get a list of available terminals.
HTTP Request
POST https://payments.usiopay.com/2.0/payments.svc/JSON/GetTerminals
Parameters
Name | Type | Required | Length | Description |
---|---|---|---|---|
MerchantID | string | Required | 6-10 | Merchant Identification Number |
Login | string | Required | 6-12 | API Username |
Password | string | Required | max 25 | API Password |
Response
Name | Type | Description |
---|---|---|
Status | string | "success" or "failure" |
Message | string | 5001:System Failure. Support has been contacted. |
Terminals | object | List of Terminals |
-TerminalID | string | Terminal ID |
-TerminalName | string | Friendly Name of Terminal |
-MakeModel | string | Make and Model of Terminal |
-DeviceSN | string | Terminal Device Serial Number |
Reporting
Transaction Details
POST https://payments.usiopay.com/2.0/payments.svc/JSON/GetTransactionDetails
{
"MerchantID": "string",
"Login": "string",
"Password": "string",
"ReturnAccountMask": false,
"Confirmation": "string",
"IncludeHPPValues": false
}
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",
"AccountMask": "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",
"HPPValues":
{
"PageID": "GUID",
"SiteName": "string",
"customFields": [
{
"Value": "string",
"fieldLabel": "string"
}
],
"Designations":[
{
"Amount": "string",
"fieldLabel": "string",
"Value": "string"
}
]
}
}
]
}
This method allows you to get transaction details based on a confirmation ID.
HTTP Request
POST https://payments.usiopay.com/2.0/payments.svc/JSON/GetTransactionDetails
Parameters
Name | Type | Required | Length | Description |
---|---|---|---|---|
MerchantID | string | Required | 6-10 | Merchant Identification Number |
Login | string | Required | 6-12 | API Username |
Password | string | Required | max 25 | API Password |
ReturnAccountMask | bool | Required | Set to true to return masked account number | |
Confirmation | string | Required | 14-17 | Confirmation ID of transaction |
IncludeHPPValues | bool | Optional | Set to true to return HPP values |
Response
Name | Type | Description |
---|---|---|
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 |
-AccountMask | string | Masked account number if requested (xxx1234) |
-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 |
-HPPValues | object | JSON object containing custom and designation field information |
--PageID | GUID | Unique ID for the page |
--SiteName | string | Name of the site |
--CustomFields | object | List of the custom fields |
---FieldValue | string | Value of custom field |
---FieldLabel | string | Name of custom field |
--Designations | object | List of the designations |
---Amount | string | Amount for the designation |
---FieldLabel | string | Label for the designation |
---FieldValue | string | Value of the designation |
Transaction List
POST https://payments.usiopay.com/2.0/payments.svc/JSON/GetTransactionList
{
"MerchantID": "string",
"Login": "string",
"Password": "string",
"DateFrom": "string",
"DateTo": "string",
"ReturnAccountMask": false,
"FilterOptions": "string",
"IncludeHPPValues": false,
"MaxResults": int
}
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",
"AccountMask": "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",
"HPPValues":
{
"PageID": "GUID",
"SiteName": "string",
"customFields": [
{
"Value": "string",
"fieldLabel": "string"
}
],
"Designations": [
{
"Amount": "string",
"fieldLabel": "string",
"Value": "string"
}
]
}
}
]
}
This method allows you to get transactions for a date range.
HTTP Request
POST https://payments.usiopay.com/2.0/payments.svc/JSON/GetTransactionList
Parameters
Name | Type | Required | Length | Description |
---|---|---|---|---|
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” |
ReturnAccountMask | bool | Required | Set to true to return masked account number | |
FilterOptions | string | Optional | max 100 | See table below for options |
IncludeHPPValues | bool | Optional | Set to true to return HPP values | |
MaxResults | int | Optional | Set to limit number of transactions returned |
Response
Name | Type | Description |
---|---|---|
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 |
-AccountMask | string | Masked account number if requested (xxx1234) |
-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 |
-HPPValues | object | JSON object containing custom and designation field information |
--SiteName | string | Name of the site |
--PageID | GUID | Unique ID for the page |
--CustomFields | object | List of the custom fields |
---FieldLabel | string | Name of custom field |
---FieldValue | string | Value of custom field |
--Designations | object | List of the designations |
---Amount | string | Amount for the designation |
---FieldLabel | string | Label for the designation |
---FieldValue | string | Value of the designation |
Filter Options
Code | Description |
---|---|
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 |
debitbatch | Returns Pinless Debit Card transactions by batch |
dbchback | Returns Pinless Debit Card chargebacks |
confirmationlist | Returns transactions specific to the confirmation ID(s) provided Ex : confirmationlist|1234,5678 |
custom | Returns transactions specific to the custom filter provided Format:custom|fieldname|data Ex:custom|accountcode1|1234 Available Fields: accountcode1, accountcode2, accountcode3, merchantpayaccount, additionalsearch |
ACH Account Inquiry
POST https://payments.usiopay.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 a summary for an ACH account if we have information about it. This will also provide a list of up to 35 of the most recent transactions. By default, all lookups when ran in the sandbox will return an empty response. To simulate a successful lookup please pass the routing number of 555555550 and the account number 123456789 to get a "Known Account" response, which will provide five transactions with its response.
HTTP Request
POST https://payments.usiopay.com/2.0/payments.svc/JSON/ACHInquiry
Parameters
Name | Type | Required | Length | Description |
---|---|---|---|---|
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 | int | 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
Name | Type | Description |
---|---|---|
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 | double | 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 |
Get Documents
POST https://payments.usiopay.com/2.0/payments.svc/JSON/GetDocument
{
"MerchantID": "string",
"Login": "string",
"Password": "string",
"DocumentType": int,
"Year": "string",
"Month": "string"
}
The above command returns the following JSON structure:
{
"Status": "string",
"Message": "string",
"Base64Data": "string",
"DocumentType": int,
"Year": "string",
"Month": "string",
"Filename": "string"
}
This method allows you to retrieve a document. The document will be return as a base64 encoded string.
Document Type | Description |
---|---|
1 | Credit Card Statement |
2 | ACH Statement |
HTTP Request
POST https://payments.usiopay.com/2.0/payments.svc/JSON/GetDocument
Parameters
Name | Type | Required | Length | Description |
---|---|---|---|---|
MerchantID | string | Required | 6-10 | Merchant Identification Number |
Login | string | Required | 6-12 | API Username |
Password | string | Required | max 25 | API Password |
DocumentType | int | Required | 1 | Document type to retrieve (legend above) |
Year | string | Required | 4 | Year of the document to retrieve |
Month | string | Required | 1 | Month of the document to retrieve |
Response
Name | Type | Description |
---|---|---|
Status | string | "success" or "failure" |
Message | string | On failure will contain the error description |
Base64Data | string | Base64 document data |
DocumentType | int | Document type retrieved |
Year | string | Year of Document |
Month | string | Month of Document |
Filename | string | File Name of document retrieved |
Enrollment
Please click here for access to our Enrollment API documentation.
Usio Checkout
Please click here for access to our Usio Checkout documentation.
Code Samples
curl -X POST \
https://payments.usiopay.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://payments.usiopay.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://payments.usiopay.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://payments.usiopay.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://payments.usiopay.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://payments.usiopay.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://payments.usiopay.com/2.0/payments.svc/json/endpoint";
$client->POST($url, $req);
print $client->responseContent();
require 'net/http'
url = 'https://payments.usiopay.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://payments.usiopay.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://payments.usiopay.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@usio.com.
References
Test Account Numbers
Following account numbers can be used for testing:
Account Type | Account Number | Routing Number |
---|---|---|
Credit Card | 4111111111111111 | |
Debit Card | 5489221100112235 | |
ACH | 123456789 | 555555550 |
Usio Response Codes
Usio will return 5000 series response codes for errors that occur within our system. Most of these errors are for improper formatting of data.
Code | Description |
---|---|
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 |
5089 | Invalid Print Check Template ID |
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 Terminal 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 |
5125 | Invalid Token |
5126 | Velocity Limit Exceeded |
5127 | Invalid From Date |
5128 | Invalid To Date |
5129 | Credit Cards not supported |
5130 | Invalid Date Range |
5131 | Convenience Fee Not Available On Gross Settlement |
5132 | Invalid Number Of Custom Filter Arguments |
5133 | Invalid Custom Filter Field |
5134 | Invalid Number Of Confirmation List Filter Arguments. |
5148 | Invalid Input for Accounts in Test Mode |
5154 | Invalid Payment Time Frame After Prenote Entry |
5155 | Terminal In Use |
5156 | Invalid Document Retrieval Year |
5157 | Invalid Document Retrieval Month |
5158 | Invalid Document Retrieval Document Type |
5159 | Unable to locate document |
5160 | Decline Rate Exceeded |
5161 | BNPL Application not found |
5162 | Invalid request |
5163 | Account not eligible for RTP |
Gateway Response Codes
Error messages returned from the gateways, networks or issuer.
Code | Description |
---|---|
EA | Verification error |
EC | Verification error |
E9 | P2PE encryption required |
EQ | No available gateway nodes |
EU | Unknown/Not documented |
N3 | Cashback service not available |
N4 | Exceeds issuer withdrawal limit |
N7 | Error in additon Future |
R1 | Credit not Received Future |
RR | Unknown backend processing error |
S9 | Expiration date mismatch |
SA | Inactive card |
ZN | MasterCard MoneySend Decline due to Card was Declined |
ZR | MasterCard MoneySend Decline due to Unsupported Card |
ZU | MasterCard MoneySend Error due to an Unknown Reason |
P55 | Invalid Credit Card No. |
00 | Approved |
01 | Refer to card issuer |
02 | Refer to card issuer, special conditions |
03 | Invalid Merchant |
04 | Pick-Up |
05 | Do not honor |
06 | General error |
07 | Pick-up card, special conditions |
08 | Honor with identification |
09 | Request in progress |
10 | Approved for partial amount |
11 | Approved (VIP) |
12 | Invalid Transaction |
13 | Invalid amount |
14 | Invalid card number (no such number) |
15 | No such issuer |
17 | Manual PAN tries exceeded |
19 | Re-enter transaction |
20 | Invalid response |
21 | Reversal unsuccessful/Unable to back out transaction |
28 | File is temporarily unavailable |
30 | Message format error |
31 | Bank not supported by switch |
33 | Pick up card - Expired |
34 | Suspected fraud, pick up |
38 | Allowable number of pin tries exceeded |
39 | No credit account |
40 | Requested function not supported |
41 | Lost Card, Pick Up |
43 | Stolen Card, Pick Up |
44 | No investment account |
46 | Acccount closed |
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 | Transaction not permitted to CardHolder |
58 | Transaction not permitted to terminal (may also be a chargeback) |
59 | Suspected Fraud |
61 | Exceeds withdrawal amount limit |
62 | Restricted Card |
63 | Security violation |
65 | Exceeds withdrawl frequency limit |
67 | Hard Capture, Pick-Up |
75 | Allowable number of PIN tries exceeded |
76 | Unable to locate, no match/Late reversal |
77 | Inconsistent date, rev. or repeat |
78 | Customer not eligible for POS (Star SM ) |
79 | Already reversed at switch/No "From" account specified |
80 | Invalid date |
81 | Cryptographic error |
82 | Cashback limit exceeded/Invalid CVV |
83 | Fraud Card-Absent Environment. |
86 | Can not verify PIN |
88 | Card record not available |
89 | Card verification value (CVV) verification failed (no pickup) |
91 | Issuer or Switch is inoperative |
92 | Financial institution or intermediate network unknown for routing |
93 | Violation, cannot complete/Illegal transaction |
96 | System Malfunction |
98 | Duplicate transaction |
99 | Preferred debit routing denial/Credit transaction cannot be performed as debit |
100 | Do not Honor |
101 | Expired Card |
107 | Refer to card issuer |
108 | Refer to card issuer's special condition |
114 | No account of type requested |
116 | Insufficient funds |
119 | Transaction not permitted to cardholder |
123 | Exceeds withdawal limit frequency |
209 | Stolen card |
908 | Transaction destination cannot be found for routing |
Final Status Description
Final status description for ACH,Credit and Debit Payment type.
Payment Type | Final Status | Description |
---|---|---|
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 | Voided transaction request |
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 |
NACHA Return Codes
Return codes for NACHA transactions.
Code | Description |
---|---|
R01 | Insufficient Funds |
R02 | Account Closed |
R03 | No Account/Unable to Locate Account |
R04 | Invalid Account Number |
R05 | Unauthorized Debit Entry |
R06 | Returned per ODFI’s Request |
R07 | Authorization Revoked by Customer (adjustment entries) |
R08 | Payment Stopped or Stop Payment on Item |
R09 | Uncollected Funds |
R10 | Customer Advises Not Authorized; Item Is Ineligible, Notice Not Provided, Signatures Not Genuine, or Item Altered (adjustment entries) |
R11 | Customer Advises Entry Not in Accordance with the Terms of the Authorization |
R12 | Branch Sold to Another DFI |
R13 | RDFI not qualified to participate |
R14 | Representative Payee Deceased or Unable to Continue in that Capacity |
R15 | Beneficiary or Account Holder (Other Than a Representative Payee) Deceased |
R16 | Account Frozen |
R17 | File Record Edit Criteria (Specify) |
R20 | Non-Transaction Account |
R21 | Invalid Company Identification |
R22 | Invalid Individual ID Number |
R23 | Credit Entry Refused by Receiver |
R24 | Duplicate Entry |
R29 | Corporate Customer Advises Not Authorized |
R31 | Permissible Return Entry (CCD and CTX only) |
R33 | Return of XCK Entry |
R34 | Limited Participation D.F.I. |
R35 | Return of Improper Debit Entry |
R36 | Return of Improper Credit Entry |
R37 | Source Document Presented for Payment (adjustment entries) (A.R.C.) |
R38 | Stop Payment on Source Document (adjustment entries) |
R39 | Improper Source Document |
R40 | Non Participant in E.N.R. Program |
R41 | Invalid Transaction Code (E.N.R. only) |
R42 | Routing Number/Check Digit Error |
R43 | Invalid D.F.I. Account Number |
R44 | Invalid Individual I.D. Number |
R45 | Invalid Individual Name |
R46 | Invalid Representative Payee Indicator |
R47 | Duplicate Enrollment |
R50 | State Law Prohibits Truncated Checks |
R51 | Notice not Provided/Signature not Authentic/Item Altered/Ineligible for Conversion |
R52 | Stop Pay on Item |
R53 | Item and A.C.H. Entry Presented for Payment |
R61 | Misrouted Return |
R67 | Duplicate Return |
R68 | Untimely Return |
R69 | Field Errors |
R70 | Permissible Return Entry Not Accepted |
R71 | Misrouted Dishonor Return |
R72 | Untimely Dishonored Return |
R73 | Timely Original Return |
R74 | Corrected Return |
R75 | Original Return not a Duplicate |
R76 | No Errors Found |
R80 | Cross-Border Payment Coding Error |
R81 | Non-Participant in Cross-Border Program |
R82 | Invalid Foreign Receiving D.F.I. Identification |
R83 | Foreign Receiving D.F.I. Unable to Settle |
R84 | Entry Not Processed by O.G.O. |
NACHA NOC Codes
Notifications of Change codes for NACHA transactions. A Notification of Change may be created by an RDFI to notify the ODFI that a posted Entry or Prenotification Entry contains invalid or erroneous information and should be changed.
Code | Description |
---|---|
C01 | Bank account number incorrect or formatted incorrectly |
C02 | Once valid transit/routing number must be changed |
C03 | Once valid transit/routing number must be changed and causes a change to bank account number structure |
C04 | Customer has changed name or ODFI submitted name incorrectly |
C05 | Entry posted to demand account should contain savings payment codes or vice versa |
C06 | Bank account number must be changed and payment code should indicate posting to another account type (demand/savings) |
C07 | Changes required in transit/routing number, bank account number and payment code |
C08 | Incorrect Receiving DFI Identification (IAT only) |
C09 | Individual's ID number is incorrect |
C10 | Company name is no longer valid and should be changed |
C11 | Company ID is no longer valid and should be changed |
C12 | Both the company name and company id are no longer valid and must be changed |
C13 | Addenda Format Error |
C14 | Incorrect SEC Code for Outbound International Payment |
Remote Check Return Codes
Return codes for remote checks.
Code | Description |
---|---|
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 |
Credit Card Updater Response Codes
Return Codes from Credit Card Updater.
Code | Description |
---|---|
300 | Accepted |
301 | Transmitted to Network |
302 | No Response From Network |
303 | Match Made, New Card Number |
304 | Match Made, Closed Account |
305 | Match Made, Expiration Date Changed |
306 | Invalid Card Account Number |
307 | No Match |
308 | Invalid Expiration Date |
309 | Match Made, Contact Cardholder |
310 | Issuer Corrected a Previous Update |
311 | Network Error |
312 | Match Made, Account Number and Exp Date Unchanged |
AVS Codes
Address Verification Codes.
Code | Description |
---|---|
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. |
R | Issuer's authorization system is unavailable, try again later. |
S | AVS not supported at this time. |
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. |
CVV Return Codes
Code | Description |
---|---|
X | No CVV2 information is available. |
U | The issuer has not certified or has not provided the encryption keys to the interchange. |
P | Card verification not performed, CVD was not on the card. Not all cards have a CVD value encoded. |
Y | Card verification performed, and CVD was valid. |
D | Card verification performed, and CVD was invalid. |
N | Authorizing entity has not attempted card verification or could not verify the CVD due to a security device error. |
M | Match |
RTP Return Codes
Code | Description |
---|---|
000 | Accepted |
P01 | Insufficient Funds |
P02 | Unknown customer, account closed |
P04 | Debtor/Creditor Account invalid |
P07 | Account blocked |
P11 | Transaction forbidden on this account |
P14 | Deceased customer |
P18 | Invalid Date |
P21 | Incorrect Agent |
P23 | Amount not agreed upon or invalid |
P24 | Duplicate message |
P26 | Missing or invalid mandatory field |
P27 | See narrative information for more detail about error |
P28 | Incorrect RTN |
P34 | Suspended account |
Z01 | Internal RTP error |
Z02 | Timeout |
Z03 | Token error |
Z0U | Unknown Network Error |
C01 | Insufficient Funds (in RTP-Sponsor Bank Account) |
C02 | Unknown Account |
C04 | Invalid Account |
C26 | Upstream Process Error |
C99 | Upstream Process Error |
CZZ | Upstream Connection Error |
COU | Limit Error (at RTP-Sponsor Bank) |