Bank Rails
The first step to working with Cross River APIs is to submit a request for Sandbox access.
Make sure you fill in all the relevant fields. The more accurate the information you give us at this stage, the faster you'll be onboarded into our systems.
Include:
- Your full name
- The name of the company you work for/represent.
- The URL of the official company website.
- The location/address of your company.
- A working telephone number including international dialing code.
- Your static public IP address in IPv4 format (not hexadecimal format).
You must have an allowlisted static public IP to access our products. Your internal IT department should be able to provide you with your static IP. For more information on static IPs see here.
Once we allowlist your static IP, we send you 2 encrypted emails with your credentials. One email with your client_id and one email with your client_secret. Your relationship manager will give you your partner_id.
The request and response models for Cross River products are available in our Swagger .
OAuth 2.0 is a popular protocol for authorization. This controls entry to our system and ensures that only authorized entities can access our APIs and other protected resources. The information you enter into our authentication system is confidential and can never be accessed from any other Cross River applications.
Accessing Cross River APIs
Our system authenticates machine clients and authorizes them to talk to our APIs.
Authenticating your identity
The Cross River Integration Team provides you with a client_id and a client_secret that you use when requesting an access token. You can use a web-based tool, like Postman, to send API requests.
Auth0 support has ended. Please note the updated endpoints below:
Sandbox:
Auth0 support in the sandbox environment has ended.
Production:
HTTPS request components
HTTP component | Attribute | Description |
---|---|---|
Endpoint | POST /connect/token | Endpoint for retrieving an access token |
Header | content-type | application/x-www-form- urlencoded |
Body | grant_type | This field will always have a value of client_credentials |
Body | client_id | The unique identifier for a client |
Body | client_secret | An encrypted string of characters used to sign and validate ID tokens. Important: Secrets aren't recoverable by CR. If you lose a secret, a new one must be generated. Do not commit your secrets into source control. |
Body | audience | A way for the user to validate if a particular access token is meant for them. |
Get an access token
Sample call for an access token in cURL
Sample call for an access token in Postman
![Document image Document image](https://images.archbee.com/511c8QBH-VHiwWnyzIwUb/FocGabypZATB7w_hAoKqz_authentication-clientidsecret.png?format=webp)
Detailed instructions for using Postman to create an access token.
Request tokens using Explorer
Go into the Explorer, click the arrow down next your login, and click Copy Access Token.
The access token is copied to your clipboard and ready for use in the Sandbox.
![Document image Document image](https://images.archbee.com/511c8QBH-VHiwWnyzIwUb/NCUaerozm2DrachTf6Xcj_image.png?format=webp)
Request tokens using the API
COS uses OpenID Connect and OAuth 2.0 for authentication and authorization. Before you can use the API, you must obtain an access token using the client_id and client_secret provided to you. Once a token has been obtained, it must be passed in the Authorization header of each request to the API.
To request a token send a POST to our auth server containing the client ID and client secret provided.
Successful authentication and access token returned
When you've successfully authenticated, an access_token will be returned to you. This access token allows you to send information securely as a JSON object for use in our APIs. Add this token to the header of your API calls.
Make sure to protect your token. Don’t log it. Anyone who steals your token can impersonate your client for the lifetime of the token.
Present tokens
In the request header
In the header of each API request, the access token obtained should be included as follows:
API Request Header
Authorization: Bearer [your token here]
In Swagger
In the top of the swagger screen, paste the token from the clipboard into the token field and click Explore. The token is now activated.
![Document image Document image](https://images.archbee.com/511c8QBH-VHiwWnyzIwUb/J-nUFflk2fIGXheUM8DoL_swagger-without-token.png?format=webp)
![Document image Document image](https://images.archbee.com/511c8QBH-VHiwWnyzIwUb/9w576Otqqy9gPQUmpgly0_swagger-with-token.png?format=webp)
The access token should be stored and used until it expires. The token response you receive specifies the expiration time in seconds.
Do not request a new token for every API request.
It is recommended you use the current token until you receive a 401 unauthorized error, at which point you would request a new token.
To start working with bank rails, make sure you have:
- Partner ID - You will get this from your Relationship Manager
We also recommend that you register for the relevant webhook events.
Next, pick the bank rail you want to use
You can now make your first payment.
We have a full sandbox to explore. The sandbox is a completely isolated environment, so feel free to experiment. When you're ready to move to production, let us know and we will get you production credentials to access the live environment.
Status Page
To see a list of upcoming releases, monitor current API status, view incident reports, or get notified of scheduled maintenance, visit our status page and subscribe to alerts.