Send A Check

Create a transaction to send a check

When it is time to process a payment and send out the check, create a transaction from user’s deposit account to the recipient's CHECK-US node

You will pass the sending deposit Node_ID in the path parameters and the CHECK-US Node_ID in the body parameters.

API ENDPOINT

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

Client Library Examples:

POST /v3.1/users/5bb6ab05472e2500adffad5a/nodes/5bba781485411800991b606b/trans HTTP/1.1
Host: uat-api.synapsefi.com
X-SP-USER-IP: 127.0.0.1
X-SP-USER: oauth_UAH2bLKxpYMB5eXDRST1rQW90ohusljFtI78Pfnq|n38dj3h8NE393bv24ovoRY34kd62
Content-Type: application/json


{
  "to": {
    "type": "CHECK-US",
    "id": "5bba74c785411800991b6037"
  },
  "amount": {
    "amount": 68.27,
    "currency": "USD"
  },
  "extra": {
    "ip": "127.0.0.1",
    "note": "Test transaction"
  }
}
from_node_id = 5bba74c785411800991b60373
body = {
  "to": {
    "type": "CHECK-US",
    "id": "5bba74c785411800991b6037"
  },
  "amount": {
    "amount": 68.27,
    "currency": "USD"
  },
  "extra": {
    "ip": "127.0.0.1",
    "note": "Test transaction"
  }
}
user.create_trans(from_node_id, body)
const fromNodeID = “5bba74c785411800991b60373”;
const body = {
  "to": {
    "type": "CHECK-US",
    "id": "5bba74c785411800991b6037"
  },
  "amount": {
    "amount": 68.27,
    "currency": "USD"
  },
  "extra": {
    "ip": "127.0.0.1",
    "note": "Test transaction"
  }
};

user.createTransaction(fromNodeID, body);
from_node = “5bba74c785411800991b60373”
body = {
  "to": {
    "type": "CHECK-US",
    "id": "5bba74c785411800991b6037"
  },
  "amount": {
    "amount": 68.27,
    "currency": "USD"
  },
  "extra": {
    "ip": "127.0.0.1",
    "note": "Test transaction"
  }
}
user.create_transaction(node_id: from_node, payload: body)
$to = (object)[
   "type" => “CHECK-US",
   "id" => '5c6468aa7b08ab8e4fe658d9'
];
$amount = (object)[
   "amount" => 22.1,
   "currency" => "USD"
];
$extra = (object)[
   "ip" => "IP_address_of_user_device_while_creating_transaction",
   “note” => “Test Transaction”
];
$body = (object)[
   "to" => $to,
   "amount" => $amount,
   "extra" => $extra
];
$nodeid = '5c3d416f7b08ab0066ee8cae';
$user->create_trans($nodeid, $body);
nodeID := “5bba781485411800991b606b”
body := `{
  “to”: {
    “type”: “CHECK-US”,
    “id”: “5bba74c785411800991b6037”'
  },
  “amount”: {
    “amount”: 100.1,
    “currency”: 'USD'
  },
  “extra”: {
    “ip”: “127.0.0.1”,
    “note”: “Test transaction”
  }
}`
data, err := user.CreateTransaction(nodeID, body)

EXAMPLE RESPONSE

{
    "_id": "5bba7836aab23600cd68aad8",
    "_links": {
        "self": {
            "href": "https://uat-api.synapsefi.com/v3.1/users/5bb6ab05472e2500adffad5a/nodes/5bba781485411800991b606b/trans/5bba7836aab23600cd68aad8"
        }
    },
    "_v": 2,
    "amount": {
        "amount": 68.27,
        "currency": "USD"
    },
    "client": {
        "id": "5ade26b4567a900029e2afd2",
        "name": "* YY Test Account"
    },
    "extra": {
        "asset": null,
        "created_on": 1538947126191,
        "encrypted_note": "",
        "group_id": null,
        "ip": "127.0.0.1",
        "latlon": "0,0",
        "note": "Test transaction",
        "process_on": 1538947126191,
        "same_day": false,
        "supp_id": ""
    },
    "fees": [
        {
            "fee": 0,
            "note": "Facilitator Fee",
            "to": {
                "id": "None"
            }
        }
    ],
    "from": {
        "id": "5bba781485411800991b606b",
        "nickname": "My Deposit Account",
        "type": "DEPOSIT-US",
        "user": {
            "_id": "5bb6ab05472e2500adffad5a",
            "legal_names": [
                "Test User"
            ]
        }
    },
    "recent_status": {
        "date": 1538947126191,
        "note": "Transaction Created.",
        "status": "CREATED",
        "status_id": "1"
    },
    "timeline": [
        {
            "date": 1538947126191,
            "note": "Transaction Created.",
            "status": "CREATED",
            "status_id": "1"
        }
    ],
    "to": {
        "id": "5bba74c785411800991b6037",
        "nickname": "My Cell Phone Checking",
        "type": "CHECK-US",
        "user": {
            "_id": "5bb6ab05472e2500adffad5a",
            "legal_names": [
                "Test User"
            ]
        }
    }
}

Check Cutoff Time

Check transactions must be submitted before 9AM PT to make it in the day's batch. Checks submitted after 9AM PT will be included in the next business day's batch.

Example Timeline

Here is an example timeline for a check. Not all transactions will follow this exact timeline, so please do not build your logic off these times. Instead, monitor transaction status and account balance.

Note: Different banks post transactions at different times, so a user may not see their transaction marked as settled at the exact time that we mark a transaction as settled.

Description
Time
Transaction Status
status_id

User creates a transaction from their Synapse managed account.

Day 1, 7AM PT

CREATED

1

The transaction amount is debited from the user's deposit account

Day 1, 7AM PT

PROCESSING-DEBIT

2

Physical check is printed and mailed out via USPS (The check should be delivered in 8-10 business days)

Day 1, 9AM PT

PROCESSING-CREDIT

3

Transaction Settled

Day 8, 4PM PT

SETTLED

4

Transaction Status

The following are different types of transaction statuses for a check.

STATUS
STATUS_ID
Comment

QUEUED-BY-SYNAPSE

-1

Transaction queued by Synapse.

QUEUED-BY-RECEIVER

0

Transaction queued by client.

CREATED

1

Transaction created.

PROCESSING-DEBIT

2

The transaction amount is debited from the user's deposit account

PROCESSING-CREDIT

3

Physical check is printed and mailed out via USPS (The check should be delivered in 8-10 business days)

SETTLED

4

Transaction is Settled

CANCELED

5

Transaction is Canceled

RETURNED

6

Transaction is Returned

QUEUED AND CANCELED TRANSACTIONS

Visit our Transaction Codes resource for the full list of reasons a transaction can be queued or canceled.

To cancel a transaction yourself, DELETE transaction. Only transactions with a CREATED, QUEUED, PROCESSING-DEBIT and PROCESSING-CREDIT status can be canceled. Once a transaction is settled you are unable to cancel it.

Returned Transactions

Returned Transactions will be marked as returned. When possible, we will propagate the reason along with the return.

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.