Make A Loan Payment

Create a transaction to pay off a loan

To make a loan payment you will need to create a transaction from a Synapse Managed account (ex: DEPOSIT-US or SUBACCOUNT-US node) or make a payment via ACH (ACH-US) or card processing (INTERCHANGE-US). The transaction is sent to the LOAN-US node.

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 Synapse managed account 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"
            ]
        }
    }
}

Transaction Stages

QUEUED-BY-SYNAPSE

-1

Queued by Synapse

QUEUED-BY-RECEIVER

0

Queued by Client

CREATED

1

Transaction Created

PROCESSING-DEBIT

2

Processing Debit

PROCESSING-CREDIT

3

Processing Credit

SETTLED

4

Transaction Settled

CANCELED

5

Transaction Canceled

RETURNED

6

Transaction 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 or QUEUED status can be canceled. Once a transaction is processing or settled you are unable to cancel it.

Returned Transactions

Transactions may be marked as returned after a transaction has settled. Please note the appropriate payment method's transaction resources to understand return codes.

Loan Payment Questions

What if the user pays off early or late?
If the user pays earlier, they will not pay the full cap amount. They will only pay the interest accrued. If a user is late on payments, the most they will have to pay is the cap amount.

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.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,
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?
Once the loan is paid off and balance is zero, the loan is closed and you can change the node status to INACTIVE. The node will still be available for the user to see the history of the loan.

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 will be reconciled out of the platform's loan reserve account. After the loan balance is zero, the loan can be closed.

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.