Bank Payments

Before you can run live bank payments, use our test environment to check that your integration works correctly. You can use our test environment to test the following transaction types:

  • Sales
  • Authorizations
  • Reversals
  • Unreferenced refunds

In addition to testing different transaction types, you can trigger specific return codes and re-present payments.

Note: If you have any issues when you run our test cases, email our integrations team at [email protected].

Before you begin

To help you with testing, we provide you with:

  • Test environment
  • Test values
  • Returns

Test environment

Send your requests to our test environment:

Test environment base URI: https://api.uat.payroc.com/v1

Important: Use only test bank account details in our test environment.

Authenticating your requests

Use our test Identity Service to generate a Bearer token to include in the header of your requests. To generate your Bearer token, complete the following steps:

  1. Include your API key in the x-api-key parameter in the header of a POST request.
  2. Send your request to https://identity.uat.payroc.com/authorize.

Note: You need to generate a new Bearer token before the previous Bearer token expires.

Example request

curl --location --request POST 'https://identity.uat.payroc.com/authorize' --header 'x-api-key: <api key>'

Example response

If your request is successful, we return a response that contains your Bearer token, information about its scope, and when it expires.

{
"access_token": "eyJhbGc....adQssw5c",
"expires_in": 3600,
"scope": "service_a service_b",
"token_type": "Bearer"
}

Example request header

curl
-H "Authorization: Bearer <access token>"

Test values

Use the following routing number and account number combinations to trigger specific results:

Routing numberAccount numberResultDescription
05320098311101010ApprovedSuccessful transaction.
05320098311101011DeclinedGeneric account-level decline.
05320098311101012DeclinedRouting number is incorrect.
05320098311101013DeclinedAccount number is incorrect.
05320098311101014DeclinedPotential fraudulent transaction.
05320098311101015WarningWarning that indicates the account structure is incorrect.
05320098311101016DeclinedDaily transaction limit exceeded.
05320098311101017DeclinedTransaction limit exceeded over a specific time.
05320098311101018DeclinedTransaction amount exceeds the maximum limit.
05320098311101019DeclinedDuplicate check number.
05320098311101020DeclinedCheck number too low.
05320098311101021DeclinedCustomer needs to provide a driver’s license.
05320098311101022DeclinedCustomer needs to provide a phone number.
05320098311101023DeclinedIncorrect driver’s license format.

You can also use the following routing number and account number combinations:

Routing numberAccount numberResultReason
123123123123123123DeclinedRouting number and account number are identical.
123123123Any other account numberDeclinedUnqualified receiving bank.
111111111222222222DeclinedIncorrect transit number.

Returns

To simulate a return, send a value of 888000XX for the account number, where XX is the return code without the R.

The following table shows a few examples of how to use test account numbers to trigger return codes:

Return codeReasonRouting numberAccount number
R01Insufficient funds.05320098388800001
R02Account closed.05320098388800002
R03Unable to locate account.05320098388800003
R04Incorrect account number.05320098388800004

Note: Each night we check for any requests that trigger a return code. It might take a day for us to create a return for the transaction.

Re-presentments

For some return codes, you can choose to re-present the payment or close the return. You can re-present or close returns with the following return codes:

  • R01
  • R03
  • R04
  • R09

Note: You can re-present a payment up to two times.