Quickstart Guide

Get up and running with LendFoundry APIs in under 15 minutes. Make your first API call to both LOS and LMS systems.

Quickstart Guide

🚀

Get Started in 15 Minutes

This guide will help you make your first API calls to both the Loan Origination System (LOS) and Loan Management System (LMS) in under 15 minutes.

This quickstart guide walks you through the essential steps to start using LendFoundry APIs. By the end of this guide, you'll have successfully made authenticated API requests to both systems and understand the basic workflow.


Prerequisites

Before you begin, ensure you have the following:

RequirementDescription
API CredentialsAPI token from LendFoundry administrator
Demo Environment AccessAccess to demo/sandbox environment
HTTP ClientcURL, Postman, or your preferred HTTP client
Basic REST KnowledgeUnderstanding of REST APIs and HTTP methods

Step 1: Get Your API Credentials

To use LendFoundry APIs, you need authentication credentials. Contact your LendFoundry administrator or account representative to obtain:

  • API Token - Your authentication token for API requests
  • Tenant ID - Your organization's tenant identifier (for multi-tenant environments)
  • Environment URLs - Base URLs for demo and production environments
📘

Note

API tokens are provisioned by LendFoundry and are specific to your organization and environment. Keep your tokens secure and never expose them in client-side code or public repositories.


Step 2: Set Up Your Environment

LendFoundry APIs are organized into two main systems, each with its own base URL:

Base URLs

SystemDemo EnvironmentProduction Environment
LOShttps://loc.demo.kendra.lendfoundry.com/v1https://loc.los.lendfoundry.com/v1
LMShttps://api.demo.lms.lendfoundry.com/v1https://api.lms.lendfoundry.com/v1

Available Microservices

Loan Origination System (LOS)

PortalBase PathPurpose
Back Office API/darbaan/back-office/rest/apiInternal operations, application management
Borrower Portal API/darbaan/borrower/rest/apiBorrower self-service operations
Affiliate API/darbaan/affiliate/rest/apiPartner integrations

Loan Management System (LMS)

MicroserviceBase PathPurpose
Application Processor/lms-application-processorLoan onboarding from LOS
Loan Management/loan-managementCore loan operations
Payment Processor/payment-processorPayment processing
Business Applicant/business-applicant-globalBorrower and business data
Call Management/call-managementCommunication tracking
Draw Filters/business-draw-down-filtersLOC draw validation
Loan Filters/loan-filtersSearch and filtering
Loan Accounting/loan-accountingFinancial transactions
Draw Processor/business-draw-down-processor-globalLOC draw processing

Step 3: Make Your First LMS Request

Let's retrieve loan information using the LMS Application Processor API. This endpoint allows you to get loan details by application number.

Request

curl -X GET "https://api.demo.lms.lendfoundry.com/v1/lms-application-processor/application/APP-2024-001234" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json"
const getLoan = async (applicationNumber) => {
  const response = await fetch(
    `https://api.demo.lms.lendfoundry.com/v1/lms-application-processor/application/${applicationNumber}`,
    {
      method: 'GET',
      headers: {
        'Authorization': 'Bearer YOUR_TOKEN',
        'Content-Type': 'application/json'
      }
    }
  );

  if (!response.ok) {
    throw new Error(`HTTP error! status: ${response.status}`);
  }

  return await response.json();
};

// Usage
const loan = await getLoan('APP-2024-001234');
console.log(loan);
import requests

def get_loan(application_number):
    url = f"https://api.demo.lms.lendfoundry.com/v1/lms-application-processor/application/{application_number}"
    headers = {
        "Authorization": "Bearer YOUR_TOKEN",
        "Content-Type": "application/json"
    }
    response = requests.get(url, headers=headers)
    response.raise_for_status()
    return response.json()

# Usage
loan = get_loan("APP-2024-001234")
print(loan)
import java.net.http.*;
import java.net.URI;

public class LendFoundryClient {
    private static final String BASE_URL = "https://api.demo.lms.lendfoundry.com/v1";
    private static final String TOKEN = "YOUR_TOKEN";
    
    public static String getLoan(String applicationNumber) throws Exception {
        HttpClient client = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create(BASE_URL + "/lms-application-processor/application/" + applicationNumber))
            .header("Authorization", "Bearer " + TOKEN)
            .header("Content-Type", "application/json")
            .GET()
            .build();
        
        HttpResponse<String> response = client.send(request, 
            HttpResponse.BodyHandlers.ofString());
        return response.body();
    }
}

Sample Response

{
  "loanId": "LN-2024-001234",
  "applicationNumber": "APP-2024-001234",
  "status": "Funded",
  "borrowerName": "John Doe",
  "loanAmount": 50000.00,
  "interestRate": 8.5,
  "term": 36,
  "fundedDate": "2024-01-15",
  "economics": {
    "principalOutstanding": 45000.00,
    "interestOutstanding": 1250.00,
    "feesOutstanding": 0.00,
    "totalOutstanding": 46250.00
  }
}

Success!

If you received a response similar to the example above, congratulations! You've successfully made your first LMS API call.

Screenshots

📷

Screenshot: LMS Loan View

This screenshot shows the loan view in LMS displaying loan details, status, and economics information that matches the API response structure.

LMS Loan View

Step 4: Make Your First LOS Request

Now let's retrieve application information from the Loan Origination System. This endpoint allows you to get application status and details.

Request

curl -X GET "https://loc.demo.kendra.lendfoundry.com/v1/darbaan/back-office/rest/api/applications/APP-2024-001234/status" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json"
const getApplicationStatus = async (applicationId) => {
  const response = await fetch(
    `https://loc.demo.kendra.lendfoundry.com/v1/darbaan/back-office/rest/api/applications/${applicationId}/status`,
    {
      method: 'GET',
      headers: {
        'Authorization': 'Bearer YOUR_TOKEN',
        'Content-Type': 'application/json'
      }
    }
  );

  if (!response.ok) {
    throw new Error(`HTTP error! status: ${response.status}`);
  }

  return await response.json();
};

// Usage
const status = await getApplicationStatus('APP-2024-001234');
console.log(status);
import requests

def get_application_status(application_id):
    url = f"https://loc.demo.kendra.lendfoundry.com/v1/darbaan/back-office/rest/api/applications/{application_id}/status"
    headers = {
        "Authorization": "Bearer YOUR_TOKEN",
        "Content-Type": "application/json"
    }
    response = requests.get(url, headers=headers)
    response.raise_for_status()
    return response.json()

# Usage
status = get_application_status("APP-2024-001234")
print(status)
import java.net.http.*;
import java.net.URI;

public class LendFoundryClient {
    private static final String LOS_BASE_URL = "https://loc.demo.kendra.lendfoundry.com/v1";
    private static final String TOKEN = "YOUR_TOKEN";
    
    public static String getApplicationStatus(String applicationId) throws Exception {
        HttpClient client = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create(LOS_BASE_URL + "/darbaan/back-office/rest/api/applications/" + applicationId + "/status"))
            .header("Authorization", "Bearer " + TOKEN)
            .header("Content-Type", "application/json")
            .GET()
            .build();
        
        HttpResponse<String> response = client.send(request, 
            HttpResponse.BodyHandlers.ofString());
        return response.body();
    }
}

Sample Response

{
  "applicationNumber": "APP-2024-001234",
  "status": "Approved",
  "borrowerName": "John Doe",
  "businessName": "Acme Corporation",
  "loanAmount": 50000.00,
  "submittedDate": "2024-01-10T10:30:00Z",
  "lastUpdated": "2024-01-12T14:20:00Z",
  "currentStage": "Ready for Onboarding"
}

Success!

You've now successfully made API calls to both LOS and LMS systems!

Screenshots

📷

Screenshot: LOS Application View

This screenshot shows the application view in LOS displaying application details, status, and borrower information that corresponds to the API response.

LOS Application View

Screenshots

📷

Screenshot: API Integration Overview

This screenshot provides a visual overview of how API responses map to the system interface, helping you understand the relationship between API data and UI displays.

API Integration Overview

Step 5: Explore Common Endpoints

Now that you've made your first API calls, here are some commonly used endpoints to explore:

LMS Endpoints

Use CaseMethodEndpoint
Get Loan DetailsGET/loan-management/{loanNumber}/{isMasked}
Search LoansPOST/loan-filters/loans/search
Make PaymentPOST/payment-processor/loans/{loanNumber}/payments
Get Payment ScheduleGET/loan-management/{loanNumber}/schedule/{version}
Retrieve Loan by ApplicationGET/lms-application-processor/application/{applicationNumber}

LOS Endpoints

Use CaseMethodEndpoint
Get ApplicationGET/darbaan/back-office/rest/api/applications/{id}
Submit ApplicationPOST/darbaan/back-office/rest/api/borrower-application-intake
Upload DocumentPOST/darbaan/back-office/rest/api/documents/upload
Get Application StatusGET/darbaan/back-office/rest/api/applications/{id}/status
Search ApplicationsPOST/darbaan/back-office/rest/api/applications/search
📘

Explore More

For complete API documentation, visit the API Reference to browse all available endpoints.


Troubleshooting

Common Issues

Problem: Receiving 401 Unauthorized errors

Solution:

  • Verify your token is included in the Authorization header
  • Ensure the token is prefixed with Bearer (with a space after Bearer)
  • Check that you're using the correct token for the environment (demo vs. production)

Problem: Receiving 404 Not Found errors

Solution:

  • Verify the endpoint URL is correct
  • Check that you're using the correct base URL for the system (LOS vs. LMS)
  • Ensure the application number or loan number exists in the system

Problem: Receiving 400 Bad Request errors

Solution:

  • Verify the request format is correct
  • Check that required parameters are included
  • Ensure the Content-Type header is set to application/json

Next Steps

Now that you've made your first API calls, explore these resources:

ResourceDescription
Authentication GuideLearn more about authentication, token security, and best practices
Base URLs ReferenceComplete list of all microservice endpoints
Response Codes GuideUnderstand HTTP status codes and error handling
Platform OverviewDeep dive into architecture and microservices
API ReferenceInteractive API documentation with "Try It" feature
RecipesStep-by-step implementation tutorials

Ready to Build?

Head to the Recipes section to learn how to implement common workflows like submitting a loan application or processing payments.