Quickstart
A quick introduction to building with Onb

Introduction

API Keys

The first thing you'll need are your API keys, which you can get from your Onbo dashboard. If you don't have a dashboard account, use the Contact Us form on our homepage to get started.
You'll have two different API keys, and there are two different Onbo environments. Today we'll start in the Sandbox environment. View your API keys in the settings section of the dashboard.
API Key
Text
Client ID
Private identifier for your team
Secret Key
Private key
Your Secret Key must be kept safe from any external access.
Make sure it's not exposed in the javascript of your website or app, and take precaution to share it securely when needed.
Environment
Description
Text
Sandbox
Get started for free with dummy data
https://sandbox-api.stilt.com/v1
Production
Launch your app with live customers
https://api.onbo.com/v1

How it works

Here's a high-level flow of the loan application, decisioning, disbursement and servicing journey. This quickstart assumes you'll be using your own decisioning engine.
  1. 1.
    Create the User: once you complete KYC, create a user via the User API with your applicant's name, SSN and other information
  2. 2.
    Create the loan application: once you've decided whether to approve or reject the applicant, create a loan application via the Loan Application API, informing Onbo of your decision (you also have the option to use Onbo's decisioning model)
  3. 3.
    Get the promissory note: for approved applicants, you'll need to present the promissory note to the borrower to accept. Retrieve the promissory note using the Promissory Note API
  4. 4.
    Disburse the funds: instruct Onbo where to disburse the loan proceeds to using the Disburse API
  5. 5.
    Servicing: instruct Onbo when and what account to initiate repayments from using the Repayments API. Call the Statements API to send statement PDFs to the borrower
The first thing you'll need to do is create a user by making a POST request to the /users endpoint
// /users request body:
{
"email": "[email protected]",
"first_name": "Homer",
"middle_name": "Example",
"last_name": "Simpson",
"phone": "6166723456",
"dob": "1983-05-16",
"ssn": "1234567890",
"citizenship": "USA",
"address": {
"city": "Santa Clara",
"country": "UNITED STATES",
"line_1": "234 Market St",
"state": "CA",
"zip": "95678"
},
"credit_report_xml_gzip": "",
"asset_report_json_gzip": ""
}
A successful POST request to the /users endpoint will return a user uuid. At this point you'll make an underwriting decision on the applicant. There are only two outcomes of a decision: APPROVED or REJECTED, and you need to inform Onbo of the decision.
For an approved application, call the /loan/applications endpoint with the decision set to APPROVED along with the loan offer details
// /loans/applications request body for approved application
{
"amount": 8000,
"decision": "APPROVED",
"offers": [
{
"apr": 7.5,
"amount": 8000.0,
"term": 36,
"term_frequency": "MONTHLY",
"interest_rate": 7.5,
"origination_fee": 0.0
}
]
}
And for a rejected application, set decision to REJECTED and provide at least one reason (see our Rejection Reasons page for a full list of possible reasons):
// /loans/applications request body for rejected application
{
"amount": 8000,
"decision": "REJECTED",
"reasons": ["banking.error.income_too_low"]
}
The /loans/applications response will include a loan uuid. For approved applications, you'll need to retrieve the Promissory Note from Onbo to display to the applicant using the /promissory_note endpoint. Simply retrieve the PDF by passing user uuid and loan uuid in the url of the request.
// Example GET request for Promissory Note endpoint
https://sandbox-api.stilt.com/v1/users/{user uuid}/loans/{loan uuid}/documents/promissory_note
The last thing that you'll need from the user is for them to accept the offer and sign the agreement. This will occur in your application's UI. Once a user signs the agreement, just update the status of the loan to Accepted by making a PATCH request to the /loans endpoint
// Request body of PATCH call to loan status
{
"status": "Accepted",
"document_uuid": "0d9735e9-20f1-4fe5-8573-d7e73e9f91c0",
}
And that's it! Check out our loan docs for more on disbursing loan proceeds, repayments and getting loan statements