Tutorial: Originate a Push to Card transaction

If you are new to P2C we recommend you read the P2C overview before starting this tutorial. The tutorial assumes you have a knowledge of APIs and how they work.

In this tutorial, you'll learn how to

  • Register the relevant webhooks
  • Originate a push transaction

Before you begin

Make sure you have:

  • API credentials
  • Successfully registered to receive webhook event notifications
  • Registered the debit card you are pushing funds to
  • The requestId - your unique reference ID
  • The cardToken - the token you received when you registered the card
  • Dollar amount to send
  • Sufficient funds in your settlement account
  • The name of the individual or entity originating the P2C transaction

Register to receive webhook events

Use this endpoint, POST /api/WebhookRegistrations, to register to receive the webhooks available for P2C. These webhooks report relevant events back to your system in real-time, keeping you up to date on each transaction.

The Transaction webhook reports when a new transaction was done.

Originate a payment

When you send funds directly to a debit card, it's called a push payment - a push to card (P2C) transaction.

  1. Authenticate into our system and a token is returned to you.
  2. Use that token to call POST /api/transaction.
    Cross River confirms there are funds available in your settlement account to fund the transaction.
  3. Cross River sends this request to the card networks who route the transaction to the appropriate bank.
  4. The issuing bank (of the registered debit card) will receive the transaction and either authorize or decline it. If the transaction is authorized, your payee will receive the funds.
  "requestId": "{ID}", 
  "amount": 100.01,
  "sourceSenderName": "" 

After we receive a successful authorization from the card network, we will respond to your API call with a response that looks like this.

Sample response

"result": {
  "transactionRequestId": "e91ea2c5-e8dc-4790-acf7-5dea1cab7216", 
  "amount": 100,
  "transactionRequestedAt": "2019-09-10T00:28:37.76", 
  "transactionStatus": "Succeeded",
  "errorDescription": null,
  "creditCardId": "OMOZBSFLNAUG8E2134UDH18WILO2QDA9K6XQVN", 
  "railId": "RS2",
  "network": "visa",
  "retrievalReferenceId": "xxxxx"
  "actualTransactionDoneAt": "2019-09-10T12:28:51", 
  "paymentSent": true,
  "requestApproved": true,
  "responseReceived": true,
  "responseCode": "00",
  "responseDescription": "Approved", 
  "traceNumber": "000001",
  "error": null,
  "sourceSenderName": null,
  "sourceMcc": 5981,
  "isSuccessful": true