One-Time Loan Intro

Introduction to loans product

Currently in Beta

This product is currently in beta. Following are still to-dos on our side that we will be finishing:

  • Repayment Transactions: Everyday we will check if a payment is due, if it is, we will create a repayment transaction for the user.
    Interest accrual logic: Currently daily interest accrual is disabled on sandbox.
  • Credit Checks: Some developers wish to issue loans based on a credit box, currently we do not have this feature enabled on sandbox.
  • Payment due message alerts: Text message alerts for repayments are disabled. But when we will enable the repayment logic, this will be a part of that release as well.
  • Email for agreements and decisioning: This will come with the PDF generation release.
  • Closing Account: With the above releases, we will also add a feature to let you close loan accounts for users.

Our loan product allows you to quickly issue and service short-term unsecured loans without the need to register as a lender. Loans are built on top of our Node architecture and are treated as accounts with a negative balance.

To issue a one-time loan, Create a User with the necessary KYC. Then OAuth the user and apply for a loan by creating a LOAN-US node. This node will have all loan details, including credit limit, payment account, disbursement account, APR etc. The user will then either be denied or approved for the loan based on your custom requirements. They can repay their loan account until it reaches zero, meaning the loan has been paid off. Once the user pays the loan off, the loan account is closed and the status will change to INACTIVE.

For a good example of one-time loans, check out Affirm. With Affirm, consumers get a loan at the point of sale and then over the course of next few months, they pay off the loan.

Note: Loans are considered unsecured loans because they are not backed by anything.

Node Type

Type
Default Permissions

LOAN-US

A loan account issued to a user with standard APR, credit limit, and payment details

Who is the lender? How is decisioning done?

Our partner banks act as the lender. This allows you to issue loans without registering as a lender yourself. However, you will still be guarantor of the loans issued to users. This means if the end user is unable to pay the loan, you will have to make the payments on their behalf.

When setting up your loan program, Synapse will underwrite your business and set an appropriate limit on how many loans your platform is allowed to underwrite at any given time. At this point, we will also work with you to establish decisioning for loan approval.

To be set up as the guarantor of loans your platform will hold a loan reserve account with the amount you’ll be giving out in loans. We will not debit this account as you are giving loans out, but this account will function more as collateral. We will only debit this account when the user does not pay back the loan after their agreed period of time. The platform's loan reserve account guarantees that loans are paid back. You can only issue loans based on the balance in your reserve account.

Interest Accrual and Cap amounts

Interest will be accrued daily on the LOAN-US node. This will be calculated by taking the balance of the loan account and the APR set for the node. A transaction will be made from the user's loan node to a designated platform node, indicating interest accrual. This will cause the loan account to go further negative. A percentage of this transaction will also be distributed to Synapse.

Although our interest is accrued daily (compound interest), there is a cap amount programmed in the beginning. The cap dollar amount will be the most the user will ever have to pay for interest for that loan. What that means is, for example, if an end user is approved for a $100 loan with an APR of 10% and cap of $40 dollars, then the interest will only accrue up to $40, not more.

If the user pays earlier, they will not pay the cap amount. If a user is late on payments, we do not charge for late payments so the most they will have to pay is the cap amount. This incentivizes the user to pay earlier so they do not have to pay the cap amount but also does not penalize users for paying late. The user is aware of what they will pay for interest in the worst case scenario. With this users are not charged late payments, and the only fee they have to worry about is the APR.

Required KYC

For one time loans, our KYC is flexible. At the minimum, we would need basic information (base doc) about the user. If you want to include a credit score minimum, Synapse would add SSN to be able to do soft credit checks. (Not enabled Yet)

Node Object

_id :
string

ID of the loan account

allowed :
string

permissions granted to the loan account

extra.note :
string

All reasons for rejecting a loan

info.agreements :
array of objects

Reference ID for the loan

info.agreements.type :
string

Type of agreement

info.agreements.url :
string

URL of the agreement

info.balance.amount :
float

Balance on the loan account

info.balance.currency :
string

currency of the loan account

info.credit_limit.amount :
float

limit of how much money can be borrowed out of this loan account

info.credit_limit.currency :
string

currency of the loan account

info.disbursement_node_id :
string

node id of where the funds will be disbursed to.

info.document_id :
string

KYC document ID of the user

info.installment_amount :
float

amount for each payment installment.

info.interest.accrued :
float

how much interest has accrued so far on the loan. In USD

info.interest.apr :
float

APR on the loan in percentage

info.interest.cap :
float

Max interest that will be charged on the loan in USD.

info.next_payment :
long

when the next payment is due. In unixtime (milliseconds)

info.nickname :
string

nickname of the loan account

info.num_payments :
integer

number of payments in the loan term

info.payment_node_id :
string

node ID of where we will collect payments from

info.schedule :
string

Payment schedule. All schedules are listed below

info.loan_type :
string

ONE-TIME or REVOLVING

type :
string

LOAN-US

user_id :
string

ID of the user

Allowed Statuses

PERMISSION
DESCRIPTION

CREDIT

This allowed type will be used for one time loans. Which means you can pay back the loan, but you cannot withdraw funds from the loan account again.

REJECTED

When the loan gets rejected, a loan account will be created but with allowed as REJECTED. The loan account will have details of rejection in the extra.notes section and also the adverse action letter under info.agreements.

LOCKED

When a loan account is closed, it will be marked as LOCKED. This can also be used to prevent collection of loans after a loan account has been deemed uncollectible.

INACTIVE

In case of one time loan, once the loan is paid off, the node can be set to INACTIVE.

Agreement Types

Agreement Types
Notes

ADVERSE_ACTION

If a loan is rejected, an adverse action letter will be issued and that will be under the info.agreements object.

CREDIT_AGREEMENT

If a loan is credit based, then the credit agreement will be under info.agreements object.

LOAN_AGREEMENT

If a loan is approved, the approved loan
with all the loan details agreement will be under info.agreements object.

Repayment Schedules

Schedules
Notes

MONTHLY

Monthly loan repayment

One-Time Loan Intro


Introduction to loans product

Suggested Edits are limited on API Reference Pages

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