{"error": {"code":"missing_user_credentials","en":"User credentials are missing from the request." },"error_code": "200","http_code": "400","success": false}
Go to Transaction Object Details to see all the required and optional body parameters allowed during transaction creation. Following are a few examples of various types of transactions and how to create them:
Create Transactions between Nodes
Below is an example of how to create a transaction between two nodes that exist in Synapse. If you wish to cover transaction fees, see our transaction fee resource.
POST /v3.1/users/5fe50a777562960078d3a5c6/nodes/5fe50b2dab6ce7004340c43a/trans HTTP/1.1Host:uat-api.synapsefi.comX-SP-USER-IP:255.127.79.76X-SP-USER:oauth_ohpVj1iwMQgqHR0ATzbGEU4fBuXOJ0FWZk28y7cD|e83cf6ddcf778e37bfe3d48fc78a6502062fcContent-Type:application/json{"to": {"type":"DEPOSIT-US","id":"5fe96562c54d7b7bcda9b9da" },"amount": {"amount":100.1,"currency":"USD" },"extra": {"ip":"255.127.79.76","note":"Test transaction" }}
Unlike Transactions between Nodes, for RDC transactions, both from and to nodes are part of the payload, while from is not really a node, its the RDC data:
For a submitted RDC transaction to be processed, we also look for the following:
The image is clear enough to read all of the text on the front and back of the check. (i.e no glare, shadows on the check images) and all corners of the check are visible.
The check does not have “VOID” or “VOIDED” written on it.
The check is not a traveler’s check or substitute check.
The check amount is in U.S. dollars (USD).
The two amounts written on the check are for the same amount.
The routing number in the MIRC line has 9 digits.
The handwriting on the check looks consistent in all fields.
The payee’s name is the same as the Synapse account holder’s name.
The check number in the MICR line is the same as the check number in the top right corner.
The check written date is in the past.
The payer’s bank information has a logo and name.
The check has security features: microprinting on the signature line, security screen on the back of the check, and/or the words “original document” on the back of the check.
The check signature does not have any stains or gaps around it, nor a digitized appearance (pixelated), or unnecessary up and down pen strokes.
Nothing on either the front or back of the check appears forged or altered.
The check is signed on the back in the “Endorse here” section.
The signature on the back is different from the signature on the front.
“For mobile deposit only” is written on the back of the check.
Please Note: Attempt to deposit in person before remote submittal will cause check to be declined.
If it is a cashier’s check:
The payee’s name is printed onto the check.
The bank phone number is shown on the check.
If it is a Deluxe or e-check:
The check does not include any confirmation requirement prior to depositing it.
Covering Transaction Fees
By default, fees are deducted from the fund recipient. This means if you send $1, the fund recipient will receive $1 minus the transaction fee.
If you prefer to cover your user's transaction fees, pre-fund a deposit account from which fees will be deducted. Then set fees.fee to the negative of whatever the transaction fee will be, and fees.to.id to the node ID of the pre-funded deposit account.
Note:fees.fee is expected to be a float in dollars (USD).
In the response, you will see two fees: one positive & one negative (corresponding with our Synapse-owned node & your pre-funded node respectively).
Please note that this payload only applies to transactions initiated via the API. To cover incoming wire fees from an EXTERNAL-US node, update your wire fee preferences in the dashboard.
Avoiding Race Conditions
Given that funds are made unavailable during the processing-debit stage in a transactions lifecycle, it is advised to not generate new transactions against the same node too quickly. The impact otherwise can be that a later transaction can settle before an earlier transaction, causing a node to go negative.
Suggestions to avoid this scenario include:
Delay same node transaction creation 4 to 5 seconds in-between.
Wait for the create webhook to be received.
node_id
string
ID of the node.
user_id
string
ID of the user.
X-SP-USER
string
User's OAuth key and device fingerprint, separated by a pipe.