LogoLogo
StatusChangelogDashboardCreate a Ticket
  • Getting Started
  • Intro to APIs
  • How to Contact us
  • How to Go-Live
  • Intro to Risk
  • Intro to Spec Sheets
  • Product Guides
    • Deposit Hub
      • 🌎Global Cash
    • Credit Hub
    • Payment Accounts
    • ID Score
  • API References
    • OAuth
      • OAuth Object Details
      • Create OAuth Key
      • Generate Refresh Token
    • Users
      • User Object Details
      • Testing on UAT
      • View All Users
      • View User
      • Create User
      • Update User
      • Generate UBO Doc
      • Manage Duplicates
      • Allowed Document Types
      • Allowed Entity Scopes
      • Allowed Entity Types
    • Nodes
      • Node Object Details
      • Testing on UAT
      • View all User Nodes
      • View Node
      • Create Node
      • Update Node
      • Generate eCash Barcode
      • Allowed Node Types
      • View ATMs
    • Subnets
      • Subnet Object Details
      • Testing on UAT
      • View all Node Subnets
      • View Subnet
      • Create Subnet
      • Update Subnet
      • Push to Wallet
    • Shipments
      • Shipment Object Details
      • View all Subnet Shipments
      • View Shipment
      • Create Shipment
      • Cancel Shipment
    • Statements
      • Statement Object Details
      • View all User Statements
      • View all Node Statements
    • Transactions
      • Transaction Object Details
      • Testing on UAT
      • View all User Transactions
      • View all Node Transactions
      • View Transaction
      • Create Transaction
      • Create Batch Transactions
      • Cancel Transaction
      • Retry ACH Transaction
      • Dispute Chargebacks
      • Dispute Transaction
    • Subscriptions
      • Subscription Object Details
      • Webhook Object Details
      • Testing on UAT
      • View all Subscriptions
      • View Subscription
      • Create Subscription
      • Update Subscription
      • View Webhook Logs
    • Miscellaneous
      • Dummy Transactions
      • Verify Address
      • Verify Routing Number
      • International WIRE-INT Required Data by Country
      • View Billers
      • View Enriched Data
      • Loan Limits
      • Transaction Decisioning
      • 3D Secure
      • Virtual Terminal
      • Pre-Authorization
      • Card Disputes Guide
      • Mobile Wallets
      • Interchange Revenue
      • Enrichment Guide
  • Developer Guides
    • User Onboarding
      • Create User Flow
      • Authenticate as the User
      • Create Node Flow
        • Cash Advance
        • Credit Builder Loan
        • One Time Loans
        • Secured Open Loans
        • Secured Revolving Loans
        • Unsecured Revolving Loans
      • Create Subnets Flow
        • Creating Cards
        • Creating AC/RT
      • Linking External Accounts
        • Linking Cards
        • Linking External Bank Account
      • Add Additional Documents
    • Account Details
      • Displaying Balances
      • Transaction History
      • Transaction Details
      • Account Agreements
      • Node Statements
      • Card Details
    • Managing Cards
      • Card Preferences
      • Setting PIN
      • Mobile Wallet Flow
        • Integrate with Apple Pay
        • Integrate with Google Pay
        • Integrate with Samsung Pay
      • Shipping Cards
    • Originating Transactions
      • Sending Fed Wires
      • Sending ACH Transfers
      • Sending International Wires
      • Deposit a Check
      • Issuing Checks
      • Recurring Transactions
      • 3rd Party Payment Accounts
      • Cancelling Transactions
      • Exceeding Origination Limits
    • Receiving Transactions
      • Transaction Decisioning
      • Receiving ACH / Wires
      • Card Transactions
      • Exceeding Inbound Limits
    • Managing Disputes
      • ACH Disputes
      • Card Disputes
    • 3rd Party Integrations
      • Payment Integrations
      • Account Aggregators
      • 3rd Parties & Compliance
  • Recipes
    • Overdraft Protection
    • Social Banking
    • Monetizing Transactions
Powered by GitBook
On this page
  • Transactions
  • Create Transactions between Nodes
  • Create RDC Transactions
  • Covering Transaction Fees
  • Avoiding Race Conditions

Was this helpful?

Export as PDF
  1. API References
  2. Transactions

Create Transaction

Transactions

POST https://api.synapsefi.com/v3.1/users/:user_id/nodes/:node_id/trans

This endpoint allows you to create a transaction.

Path Parameters

Name
Type
Description

node_id

string

ID of the node.

user_id

string

ID of the user.

Headers

Name
Type
Description

X-SP-USER

string

User's OAuth key and device fingerprint, separated by a pipe.

X-SP-USER-IP

string

IP address of user's device.

X-SP-GATEWAY

string

Your Client ID and Secret, separated by a pipe.

{
    "_id": "5fea57e174a834ac69203672",
    "_links": {
        "self": {
            "href": "https://uat-api.synapsefi.com/v3.1/users/5fe50a777562960078d3a5c6/nodes/5fe50b2dab6ce7004340c43a/trans/5fea57e174a834ac69203672"
        }
    },
    "_v": 2,
    "amount": {
        "amount": 100.1,
        "currency": "USD"
    },
    "client": {
        "id": "589acd9ecb3cd400fa75ac06",
        "name": "* SynapseFi"
    },
    "extra": {
        "asset": null,
        "created_on": 1609193441254,
        "group_id": null,
        "ip": "255.127.79.76",
        "latlon": "unknown,unknown",
        "location": {
            "address_city": null,
            "address_country_code": null,
            "address_postal_code": null,
            "address_subdivision": null,
            "lat": 0,
            "lon": 0
        },
        "note": "Test transaction",
        "other": {
            "affect_limits": true,
            "attachments": [],
            "chargeback_disputed": false,
            "dispute_form": null,
            "dispute_meta": {},
            "dispute_reason": null,
            "disputed": false,
            "is_provisional_credit": false
        },
        "process_on": 1609193441254,
        "rate": null,
        "rate_limit": null,
        "same_day": false,
        "settlement_delay": 0,
        "supp_id": "",
        "tracking_number": null
    },
    "fees": [
        {
            "fee": 0.0,
            "note": "Facilitator Fee",
            "to": {
                "id": "None"
            }
        }
    ],
    "from": {
        "id": "5fe50b2dab6ce7004340c43a",
        "nickname": "SynapsePay Test Checking Account - 8901",
        "type": "ACH-US",
        "user": {
            "_id": "5fe50a777562960078d3a5c6",
            "legal_names": [
                "Test User"
            ]
        }
    },
    "recent_status": {
        "date": 1609193441254,
        "note": "Transaction Created.",
        "status": "CREATED",
        "status_id": "1"
    },
    "timeline": [
        {
            "date": 1609193441254,
            "note": "Transaction Created.",
            "status": "CREATED",
            "status_id": "1"
        }
    ],
    "to": {
        "id": "5fe96562c54d7b7bcda9b9da",
        "nickname": "My Deposit Account",
        "type": "DEPOSIT-US",
        "user": {
            "_id": "5fe50a777562960078d3a5c6",
            "legal_names": [
                "Test User"
            ]
        }
    }
}
{
    "error": {
        "code": "missing_user_credentials",
        "en": "User credentials are missing from the request."
    },
    "error_code": "200",
    "http_code": "400",
    "success": false
}

Create Transactions between Nodes

POST /v3.1/users/5fe50a777562960078d3a5c6/nodes/5fe50b2dab6ce7004340c43a/trans HTTP/1.1
Host: uat-api.synapsefi.com
X-SP-USER-IP: 255.127.79.76
X-SP-USER: oauth_ohpVj1iwMQgqHR0ATzbGEU4fBuXOJ0FWZk28y7cD|e83cf6ddcf778e37bfe3d48fc78a6502062fc
Content-Type: application/json

{
  "to": {
    "type": "DEPOSIT-US",
    "id": "5fe96562c54d7b7bcda9b9da"
  },
  "amount": {
    "amount": 100.1,
    "currency": "USD"
  },
  "extra": {
    "ip": "255.127.79.76",
    "note": "Test transaction"
  }
}
curl --location --request POST 'https://uat-api.synapsefi.com/v3.1/users/5fe50a777562960078d3a5c6/nodes/5fe50b2dab6ce7004340c43a/trans' \
--header 'X-SP-USER-IP: 255.127.79.76' \
--header 'X-SP-USER: oauth_ohpVj1iwMQgqHR0ATzbGEU4fBuXOJ0FWZk28y7cD|e83cf6ddcf778e37bfe3d48fc78a6502062fc' \
--header 'Content-Type: application/json'
--data-raw '{
  "to": {
    "type": "DEPOSIT-US",
    "id": "5fe96562c54d7b7bcda9b9da"
  },
  "amount": {
    "amount": 100.1,
    "currency": "USD"
  },
  "extra": {
    "ip": "255.127.79.76",
    "note": "Test transaction"
  }
}'
//
//
//
//

Create RDC Transactions

POST /v3.1/users/5fe50a777562960078d3a5c6/nodes/5fe96562c54d7b7bcda9b9da/trans HTTP/1.1
Host: uat-api.synapsefi.com
X-SP-USER-IP: 255.127.79.76
X-SP-USER: oauth_ohpVj1iwMQgqHR0ATzbGEU4fBuXOJ0FWZk28y7cD|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": "5fe96562c54d7b7bcda9b9da"
  },
  "amount": {
    "amount": 500.1,
    "currency": "USD"
  },
  "extra": {
    "ip": "255.127.79.76",
    "note": "Test transaction"
  }
}
curl --location --request POST 'https://uat-api.synapsefi.com/v3.1/users/5fe50a777562960078d3a5c6/nodes/5fe96562c54d7b7bcda9b9da/trans' \
--header 'X-SP-USER-IP: 255.127.79.76' \
--header 'X-SP-USER: oauth_ohpVj1iwMQgqHR0ATzbGEU4fBuXOJ0FWZk28y7cD|e83cf6ddcf778e37bfe3d48fc78a6502062fc' \
--header 'Content-Type: application/json' \
--data-raw '{
  "from":{
  	"type":"RDC",
  	"meta":{
  		"check_front":"data:image/gif;base64,SUQs==",
  		"check_back":"data:image/gif;base64,SUQs=="
  	}
  },
  "to": {
    "type": "DEPOSIT-US",
    "id": "5fe96562c54d7b7bcda9b9da"
  },
  "amount": {
    "amount": 500.1,
    "currency": "USD"
  },
  "extra": {
    "ip": "255.127.79.76",
    "note": "Test transaction"
  }
}'
//
//
//
//

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).

POST /v3.1/users/61281d15b72f862f1a97e6e2/nodes/61281d22ab6ce721377d53ec/trans HTTP/1.1
Host: uat-api.synapsefi.com
X-SP-USER-IP: 255.127.79.76
X-SP-USER: oauth_qWTA0DPUc5lC4sxjfnd9eYQLhIG8w3motKbE6uOk|e83cf6ddcf778e37bfe3d48fc78a6502062fc
Content-Type: application/json
Content-Length: 344

{
  "to": {
    "type": "DEPOSIT-US",
    "id": "61281d317e08873466a0e7b1"
  },
  "amount": {
    "amount": 100.0,
    "currency": "USD"
  },
  "extra": {
    "ip": "255.127.79.76",
    "note": "Test Transaction"
  },
  "fees": [{
    "fee":-0.03,
    "note": "Facilitator Fee",
    "to": {
        "id":"60be880b7e08876cd9349cf4"
    }

  }]
}
curl --location --request POST 'https://uat-api.synapsefi.com/v3.1/users/61281d15b72f862f1a97e6e2/nodes/61281d22ab6ce721377d53ec/trans' \
--header 'X-SP-USER-IP: 255.127.79.76' \
--header 'X-SP-USER: oauth_qWTA0DPUc5lC4sxjfnd9eYQLhIG8w3motKbE6uOk|e83cf6ddcf778e37bfe3d48fc78a6502062fc' \
--header 'Content-Type: application/json' \
--data-raw '{
  "to": {
    "type": "DEPOSIT-US",
    "id": "61281d317e08873466a0e7b1"
  },
  "amount": {
    "amount": 100.0,
    "currency": "USD"
  },
  "extra": {
    "ip": "255.127.79.76",
    "note": "Test Transaction"
  },
  "fees": [{
    "fee":-0.03,
    "note": "Facilitator Fee",
    "to": {
        "id":"60be880b7e08876cd9349cf4"
    }

  }]
}'

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.

PreviousView TransactionNextCreate Batch Transactions

Last updated 2 years ago

Was this helpful?

Please note that , , and are transactions that cannot be created by the API as by the very nature of the transaction, the user accounts receive them vs create them via the API.

Go to 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:

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 .

Unlike , for RDC transactions, both from and to nodes are part of the payload, while from is not really a node, its the RDC data:

Transaction Object Details
transaction fee resource
Transactions between Nodes
RDFI ACH
Wire Transactions
Internal Transactions
Card Transactions