Card payments

P2C is the Cross River payment-to-card solution for disbursement of funds. P2C allows merchants to transfer money to and from debit card accounts. These transfers happen through participating card networks.

As a Cross River merchant partner, you can use these P2C APIs:

  • Cards

  • iFrame

  • Transactions

  • FX rates

  • OFAC

  • Webhooks

Note

When accessing card payments APIs, specify the following scope: crbapi.

Card authorization and compliance

P2C processing complies with PCI standards. Cross River uses only encrypted token information throughout our system. Any card number we use to transfer funds is meant for temporary access only during a transaction request.

Using a card token to call APIs

Cross River is careful about securing debit card numbers. This section describes how keep cards secure by using tokens.

Tokens are a security measure. Stored by the merchant, a token identifies a payment card in place of an actual card number.

Sign up

When you sign up a card in P2C, the API response includes a card token. We recommend that you use that token in your API calls to identify the debit card. Meaning, the card token is the identifier that you use between your system and Cross River. This helps ensure the safe transfer of funds to the cardholder.

Receiving a card token

When you call POST /api/Card to sign up a card, P2C stores the debit card number and returns a token to you.

Using a card token to perform transactions

When you POST a pull or push transaction, send the cardToken, amount, and RequestId in the request body.

When P2C receives the POST request, it uses the token to retrieve the debit card number and performs the transaction. The API response includes the card token, amount transferred, and a transaction status that indicates success/failure.

Verifying a token

To confirm that communication with an application and the API is working, call GET /api/SignupCard/TestOauth. This verifies that there aren't any allowlist or network issues between systems. If it is working, the API returns a simple message.

Webhook events

When an event happens, P2C triggers a webhook. Webhooks contain real-time notifications. Webhooks update you on the status of your cards. Register the callback URL once for all webhook events. The API sends these updates, which include full event details, to your system. This eliminates the need to poll the API to discover changes.

Status updates

Go to our status page and subscribe to alerts, which lets you: 

  • Monitor current API status

  • View incident reports

  • Get notified about scheduled maintenance.

Access our sandbox

URL

Description

https://pushtopaystaging.crbnj.net/swagger/ui/index#/

Push APIs

https://pullfromcardapistg.crbnj.net/swagger/ui/index#/

Pull APIs

Note

To access the sandbox, see the Get started page and follow the instructions to register, authenticate, and start working.

Production environment (base) URLs

URL

Description

https://pushtopay.crbnj.net

Push APIs

https://pullfromcardapi.crbnj.net

Pull APIs

Card network response codes

Card networks return response codes to approve or decline a transaction. They follow the standards set by the International Organization for Standardization (ISO) 8583. This standard defines a specific message format so that different systems can communicate. Every network can adapt the standard for its own use.

Have the funds been transferred? 

The following response codes determine if funds were transferred at the end of the transaction.

  1. 00 - a successful funds transfer

  2. 91 - this error while processing the transaction means the transaction status is unknown. The issue is on the side of the issuer. If this happens, do not attempt to retry the transaction. Instead, wait until the next day and check the status in the daily settlement file. Contact p2p.support@crossriver.com.

Pull transaction retried too often

To promote good user behavior, Visa and MasterCard run integrity programs. These prevent negative impact on cardholders and processing systems caused by bad authorizations. Before you retry a pull transaction, check the table below.

Error codes

Error code Description
1000 validation A field in the message didn't pass validation. See the description for more information.
2000 application The message format is incorrect.
3000 security A security issue occurred.
9999 system An internal server system error occurred.