RDC Transaction

Create a transaction with RDC

Before you submit a check with RDC, remember to Create a User, OAuth the User and Open a Deposit Account.

To submit a check with RDC, create a transaction and supply the front & back images (png / .jpg / .jpeg) of the check and the check amount. We will confirm that the transaction amount matches the amount printed on the check. We will also look at the check number, account/routing number, and user's name on the check image.

RDC Node

Unlike our other payment products, you do not need to create an RDC node to deposit a check.

Receiving Nodes

Below are the nodes that will accept RDC transactions:

  • CLEARING-US
  • CUSTODY-US
  • DEPOSIT-US
  • IB-DEPOSIT-US
  • IC-DEPOSIT-US

Image Preferences

Checks should be photographed with a plain white background and be horizontal (no skewed or crooked angles). We also recommend RDC images be a minimum of 850 x 470 pixels to prevent delays in processing

Use this link to convert check images into base64: https://www.base64-image.de/

PATH PARAMETERS

user_id :
required
string

ID of receiving (user)

node_id :
required
string

ID of receiving node

BODY PARAMS

from.type :
required
string

Sending node type

from.meta.check_front :
required
string

Image (png / .jpg / .jpeg) of front of the check. Image must be a base64 string.

from.meta.check_back :
required
string

Image (png / .jpg / .jpeg) of back of the check. Image must be a base64 string.

to.type :
required
string

Receiving node type

to.id :
required
string

Receiving node ID

amount.amount :
required
double

Amount user wishes to send

amount.currency :
required
string

Currency of the transaction amount

extra.ip :
required
string

IP address of the user device while creating transaction

extra.settlement_delay :
integer

Days to delay settlement

extra.supp_id :
string

ID supplied to the transaction

extra.group_id :
string

Group ID supplied to the transaction

extra.note :
string

Memo tagged with the transaction

extra.process_on :
integer 0

When the transaction should be processed. The value is the delta value. Which means when 1 is supplied it means that the transaction will be processed tomorrow.

extra.other.attachments:
array of strings

Array of padded base64 of attachments

fees[fee ] :
double

Fee associated with the transaction

fees[note ] :
string

Reason for the fee

fees[to].id :
string

Node ID where the fee would be credited when the transaction settled. Fee node has to be DEPOSIT-US type always

EXAMPLE REQUEST

POST /v3.1/users/594e6da41acea2002e666987/nodes/5bc7b85a10447830861a21be/trans HTTP/1.1 
Host: uat-api.synapsefi.com 
X-SP-USER-IP: 127.0.0.1 
X-SP-USER: oauth_fyBaT5kswdlme0xQI6gSCPYKDG1Zrv8Ftj9NboJc|e83cf6ddcf778e37bfe3d48fc78a6502062fc 
Content-Type: application/json

{
  "from":{
  	"type":"RDC",
  	"meta":{
  		"check_front":"data:image/gif;base64,SUQs==",
  		"check_back":"data:image/gif;base64,SUQs=="
  	}
  },
  "to": {
    "type": "DEPOSIT-US",
    "id": "5bc9066810447800851612f3"
  },
  "amount": {
    "amount": 100.1,
    "currency": "USD"
  },
  "extra": {
    "ip": "127.0.0.1",
    "note": "Test transaction"
  }
}
node_id = '594e606212e17a002f2e3251'
body = {
  "from":{
    "type":"RDC",
    "meta":{
      "check_front":"data:image/gif;base64,SUQs==",
      "check_back":"data:image/gif;base64,SUQs=="
    }
  },
  "to": {
    "type": "DEPOSIT-US",
    "id": "5bc9066810447800851612f3"
  },
  "amount": {
    "amount": 100.1,
    "currency": "USD"
  },
  "extra": {
    "ip": "127.0.0.1",
    "note": "Test transaction"
  }
}

user.create_trans(node_id, body)
const nodeID = '594e606212e17a002f2e3251';
const body = {
  "from":{
    "type":"RDC",
    "meta":{
      "check_front":"data:image/gif;base64,SUQs==",
      "check_back":"data:image/gif;base64,SUQs=="
    }
  },
  "to": {
    "type": "DEPOSIT-US",
    "id": "5bc9066810447800851612f3"
  },
  "amount": {
    "amount": 100.1,
    "currency": "USD"
  },
  "extra": {
    "ip": "127.0.0.1",
    "note": "Test transaction"
  }
};

user.createTransaction(nodeID, body);
rdc_id= "5bc7b85a10447830861a21be"
body= {
  "from":{
  	"type":"RDC",
  	"meta":{
  		"check_front":"data:image/gif;base64,SUQs==",
  		"check_back":"data:image/gif;base64,SUQs=="
  	}
  },
  "to": {
    "type": "DEPOSIT-US",
    "id": "5bc9066810447800851612f3"
  },
  "amount": {
    "amount": 100.1,
    "currency": "USD"
  }
..
}

user.create_transaction(node_id: rdc_id, payload: body)
$meta = (object)[
   "Check_front" => "data:image/gif;base64,SUQs==",
   "Check_back" => "data:image/gif;base64,SUQs=="
];
$from = (object)[
   "type" => "RDC",
   "meta" => $meta
];
$to = (object)[
   "type" => "DEPOSIT-US",
   "id" => '5bc9066810447800851612f3'
];
$amount = (object)[
   "amount" => 22.1,
   "currency" => "USD"
];
$extra = (object)[
   "ip" => "::1"
];
$body = (object)[
   "from" => $from,
   "to" => $to,
   "amount" => $amount,
   "extra" => $extra
];
$nodeid = '594e606212e17a002f2e3251';


$trans = $user->create_trans($nodeid, $body);
nodeID := "5bc7b85a10447830861a21be"
body := `{
  "from":{
    "type":"RDC",
    "meta":{
      "check_front":"data:image/gif;base64,SUQs==",
      "check_back":"data:image/gif;base64,SUQs=="
    }
  },
  "to": {
    "type": "DEPOSIT-US",
    "id": "5bc9066810447800851612f3"
  },
  "amount": {
    "amount": 100.1,
    "currency": "USD"
  },
  "extra": {
    "ip": "127.0.0.1",
    "note": "Test transaction"
  }
}`

data, err := user.CreateTransaction(nodeID, body)

EXAMPLE RESPONSE

{
    "_id": "5bc908e8b4178a00eabe71a5",
    "_links": {
        "self": {
            "href": "https://uat-api.synapsefi.com/v3.1/users/5bc0cf51d83c19432e8412a2/nodes/5bc9066810447800851612f3/trans/5bc908e8b4178a00eabe71a5"
        }
    },
    "_v": 2,
    "amount": {
        "amount": 100.1,
        "currency": "USD"
    },
    "client": {
        "id": "589acd9ecb3cd400fa75ac06",
        "name": "* SynapseFI"
    },
    "extra": {
        "asset": null,
        "created_on": 1539901671837,
        "encrypted_note": "",
        "group_id": null,
        "ip": "127.0.0.1",
        "latlon": "0,0",
        "note": "Test transaction",
        "process_on": 1539901671837,
        "same_day": false,
        "settlement_delay": 0,
        "supp_id": ""
    },
    "fees": [
        {
            "fee": 0,
            "note": "Facilitator Fee",
            "to": {
                "id": "None"
            }
        }
    ],
    "from": {
        "id": null,
        "meta": {
            "check_back": "https://cdn.synapsepay.com/uploads/2018/10/18/e0gJzuXnEal57chYoIyB2i93HjprtwkbPGvFKODWNLfAmCUZ6s.gif",
            "check_front": "https://cdn.synapsepay.com/uploads/2018/10/18/tnu0UKzJBeFOPsSG32VThr9LqlZ0vYxwdkXbf8Cja4ER6iQDo1.gif"
        },
        "nickname": null,
        "type": "RDC",
        "user": {
            "_id": null,
            "legal_names": []
        }
    },
    "recent_status": {
        "date": 1539901671837,
        "note": "Transaction Created.",
        "status": "CREATED",
        "status_id": "1"
    },
    "timeline": [
        {
            "date": 1539901671837,
            "note": "Transaction Created.",
            "status": "CREATED",
            "status_id": "1"
        }
    ],
    "to": {
        "id": "5bc9066810447800851612f3",
        "nickname": "My Deposit Account",
        "type": "DEPOSIT-US",
        "user": {
            "_id": "5bc0cf51d83c19432e8412a2",
            "legal_names": [
                "Test User"
            ]
        }
    }
}

Transaction Statuses

Status
Description

CREATED

Check is deposited

PROCESSING-DEBIT

Check is batched

PROCESSING-CREDIT

Check is not yet settled

SETTLED

Check is settled

RETURNED

Check has been returned

Cutoff Times

Transactions must be submitted prior to 4PM PT to be included in that day's batch.

Subscribe to Webhooks

We recommend that you subscribe to webhooks to stay updated on the status of transactions.

Transaction Fees

By default, we deduct transaction fees from the transaction. To send the recipient 100% of the funds, designate the account you want to debit fees from.

Or take an additional fee for yourself and designate the DEPOSIT-US node you want to send fees to.

Idempotent Requests

POST calls support idempotency for safely retrying requests without accidentally performing the same operation twice. For example, if a request to create a transaction fails due to a network connection error, you can retry the request with the same idempotency key to guarantee that only a single charge is created.

To perform an idempotent request, attach a unique key to any POST request made to the API via the X-SP-IDEMPOTENCY-KEY: <key> header.

Idempotency keys expire after 24 hours.

RDC Transaction


Create a transaction with RDC

Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.