Make A Loan Payment

Create a transaction to pay off a loan

To make a loan payment you will need to create a transaction with a valid payment product. This transaction will designate the from node as the payment method and the to node as the loan account.

See below for payment methods.

Transaction Method
Fund
Withdraw

DEPOSIT-US

YES

NO

ACH

YES

NO

SUBACCOUNT-US

YES

NO

Loan Payment Questions

Can users pay their loan repayments ahead of schedule?
Yes, the user can change their payment date and pay early.

For example: If a user’s payment is due on the 20th of the month and the user pays early on the 1st. Then the rest of their scheduled repayments will get shifted up to the 1st of the month.

Can users put off or delay loan repayments?
Yes, users will receive loan repayment reminder via text message in which they will have the option to “snooze” payments. Users can snooze payments up to two weeks and this will change their repayment schedule.

For example: If a user’s payment is due on the 5th of the month and the user snoozes until the 10th. Then the rest of their scheduled repayments will get shifted until the 10th of the month.

Can the user change their installment?
Yes, the user can adjust their installment by doing PATCH on the node.

What happens when a loan is paid off?
The loan account will be closed but still available for the user to see the history of the loan. If it is a one time loan, once the loan is paid off and balance is zero, the node status will change to INACTIVE. If it is a revolving loan, once the loan is paid off for the last time (balance is zero) and the user wants to close the account, the node status will change to LOCKED.

What if the user pays off earlier?
If the user pays earlier, they will not pay the cap amount. If a user is late on payments, the most they will have to pay is the cap amount.

This incentivizes the user to pay earlier to not have to pay the cap amount but also does not penalize users for paying late.

What if the user does not pay off the loan?
If the loan is not paid off in a certain period of time, the platform can close the user’s loan account and the remaining negative ending balance would be reconciled out of the platform's loan reserve account. Then the loan would be closed after the balance is zero.

API Endpoint

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

PATH PARAMETER

user_id :
required
string

ID of sender (user)

node_id :
required
string

ID of sending node

BODY PARAMETER

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.asset :
string

Assign this value only in case of making a transaction to or from CRYPTO-US. Acceptable values are BTC and ETH

extra.same_day :
boolean false

Set this to true if you wish to settle the ACH on same day. Please note this would only work, if same day ACH has been enabled for your platform

extra.supp_id :
string

ID supplied to the transaction. Allows clients to track transactions based on specific events.

extra.group_id :
string

Group ID supplied to the transaction. Allows clients to track transactions based on specific events.

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

Below is an example transaction for your convenience. Please refer to the appropriate payment product page for relevant details, including return/chargeback timelines with them:

EXAMPLE REQUEST

POST /v3.1/users/5bee109fc256c334c5348d09/nodes/5bee114e192dde00ac622d8f/trans HTTP/1.1
Host: https://uat-api.synapsefi.com
X-SP-USER-IP: 255.127.79.76
X-SP-USER: oauth_HBb0adELTAFlgYvX3Zn8QmKjMIk4tCN5uDqRce2U|e83cf6ddcf778e37bfe3d48fc78a6502062fc
Content-Type: application/json
{
  "to": {
    "type": "LOAN-US",
    "id": "5bee11e7bab47500bc84a552"
  },
  "amount": {
    "amount": 300.1,
    "currency": "USD"
  },
  "extra": {
    "ip": "255.127.79.76",
    "note": "Loan payment"
  }
from_node= "5bee114e192dde00ac622d8f"
body= {
  "to": {
    "type": "LOAN-US",
    "id": "5bee11e7bab47500bc84a552"
  },
  "amount": {
    "amount": 300.1,
    "currency": "USD"
  },
  "extra": {
    "ip": "255.127.79.76",
    "note": "Loan payment"
  }

user.create_trans(from_node, body)
const fromNodeID = "5bee114e192dde00ac622d8f";
const body = {
  "to": {
    "type": "LOAN-US",
    "id": "5bee11e7bab47500bc84a552"
  },
  "amount": {
    "amount": 300.1,
    "currency": "USD"
  },
  "extra": {
    "ip": "255.127.79.76",
    "note": "Loan payment"
  };

user.createTransaction(fromNodeID, body);
from_node= "5bee114e192dde00ac622d8f"
body= {
  "to": {
    "type": "LOAN-US",
    "id": "5bee11e7bab47500bc84a552"
  },
  "amount": {
    "amount": 300.1,
    "currency": "USD"
  },
  "extra": {
    "ip": "255.127.79.76",
    "note": "Loan payment"
  }

user.create_transaction(node_id: from_node, payload: body)
$to = (object)[
   "type" => "LOAN-US",
   "id" => '5bee11e7bab47500bc84a552'
];
$amount = (object)[
   "amount" => 22.1,
   "currency" => "USD"
];
$extra = (object)[
   "ip" => "IP_address_of_user_device_while_creating_transaction"
];
$body = (object)[
   "to" => $to,
   "amount" => $amount,
   "extra" => $extra
];
$nodeid = '5bee114e192dde00ac622d8f';
$user->create_trans($nodeid, $body);
nodeID := "5bee114e192dde00ac622d8f"
body := `{
  "to": {
    "type": "LOAN-US",
    "id": "5bee11e7bab47500bc84a552"
  },
  "amount": {
    "amount": 300.1,
    "currency": "USD"
  },
  "extra": {
    "ip": "255.127.79.76",
    "note": "Loan payment"
  }
}`

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

EXAMPLE RESPONSE

{
    "_id": "5bee12e1a1c02600d55b5e7e",
    "_links": {
        "self": {
            "href": "https://uat-api.synapsefi.com/v3.1/users/5bee109fc256c334c5348d09/nodes/5bee114e192dde00ac622d8f/trans/5bee12e1a1c02600d55b5e7e"
        }
    },
    "_v": 2,
    "amount": {
        "amount": 300.1,
        "currency": "USD"
    },
    "client": {
        "id": "589acd9ecb3cd400fa75ac06",
        "name": "* SynapseFI"
    },
    "extra": {
        "asset": null,
        "created_on": 1542329056403,
        "encrypted_note": "",
        "group_id": null,
        "ip": "255.127.79.76",
        "latlon": "0,0",
        "note": "Loan payment",
        "process_on": 1542329056403,
        "same_day": false,
        "supp_id": ""
    },
    "fees": [
        {
            "fee": 0,
            "note": "Facilitator Fee",
            "to": {
                "id": "None"
            }
        }
    ],
    "from": {
        "id": "5bee114e192dde00ac622d8f",
        "nickname": "SynapsePay Test Checking Account - 8901",
        "type": "ACH-US",
        "user": {
            "_id": "5bee109fc256c334c5348d09",
            "legal_names": [
                "Test User"
            ]
        }
    },
    "recent_status": {
        "date": 1542329056403,
        "note": "Transaction Created.",
        "status": "CREATED",
        "status_id": "1"
    },
    "timeline": [
        {
            "date": 1542329056403,
            "note": "Transaction Created.",
            "status": "CREATED",
            "status_id": "1"
        }
    ],
    "to": {
        "id": "5bee11e7bab47500bc84a552",
        "nickname": "My Loan",
        "type": "LOAN-US",
        "user": {
            "_id": "5bee109fc256c334c5348d09",
            "legal_names": [
                "Test User"
            ]
        }
    }
}

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.

Make A Loan Payment


Create a transaction to pay off a loan

Suggested Edits are limited on API Reference Pages

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