Enumerated Values Index

Complete reference for all enumerated values used in LendFoundry LOS and LMS APIs

Enumerated Values Index

πŸ“˜

Quick Reference

This document provides a comprehensive index of all enumerated values (enums) used throughout the LendFoundry API. Use this reference when constructing API requests to ensure you're using valid enum values.

Enumerated values are predefined constants that specify the allowed values for specific fields in API requests and responses. Using the correct enum values is essential for successful API integration.


Overview

What Are Enumerated Values?

Enumerated values (enums) are predefined constants that specify the exact string values allowed for specific fields in API requests and responses. They ensure data consistency and prevent invalid values from being submitted.

How to Use This Reference

  1. Find the enum type you need (e.g., ApplicationStatusValues, PaymentStatusValues)
  2. Review the allowed values and their descriptions
  3. Use the exact string value in your API requests (case-sensitive)
  4. Check code examples for implementation patterns

Enum Value Format

All enum values are case-sensitive strings. Use the exact value as shown in the tables below:

{
  "status": "Approved",        // βœ… Correct
  "status": "approved",        // ❌ Wrong (lowercase)
  "status": "APPROVED"         // ❌ Wrong (uppercase)
}

LOS Enumerated Values

The Loan Origination System (LOS) uses the following enumerated values for application and verification workflows.

Application Status Values

Application status values track the progress of a loan application through the origination process.

ValueDescription
SubmittedInitial application submission
Pending ApprovalApplication under review
Offer GeneratedOffer has been created for the borrower
Pending OfferAwaiting borrower acceptance of offer
ApprovedApplication approved and ready for onboarding
RejectedApplication rejected
Not InterestedBorrower declined the offer

Application Status Flow:

%%{init: {'theme': 'base', 'themeVariables': {'background': '#ffffff', 'mainBkg': '#ffffff', 'clusterBkg': '#ffffff', 'clusterBorder': '#2563eb', 'primaryColor': '#2563eb', 'primaryTextColor': '#ffffff', 'titleColor': '#000000', 'lineColor': '#374151'}, 'flowchart': {'padding': 15, 'nodeSpacing': 25, 'rankSpacing': 30}}}%%
flowchart LR
    subgraph MainContainer[πŸ“‹ Application Status Flow]
        direction LR
        A[πŸ“ Submitted] --> B[⏳ Pending Approval]
        B --> C[πŸ“„ Offer Generated]
        C --> D[⏳ Pending Offer]
        D --> E[βœ… Approved]
        D --> F[❌ Rejected]
        D --> G[🚫 Not Interested]
    end
    
    style A fill:#2563eb,stroke:#1e40af,color:#fff
    style B fill:#d97706,stroke:#b45309,color:#fff
    style C fill:#2563eb,stroke:#1e40af,color:#fff
    style D fill:#d97706,stroke:#b45309,color:#fff
    style E fill:#059669,stroke:#047857,color:#fff
    style F fill:#dc2626,stroke:#b91c1c,color:#fff
    style G fill:#6b7280,stroke:#4b5563,color:#fff

Verification Data Status Values

Verification data status values indicate the current state of document and data verification processes.

ValueDescription
NoneVerification not yet initiated
InitiatedVerification process started
Pending DocDocument required from borrower
InProgressDocument uploaded and under review
CompletedVerification process complete
FailedVerification failed

Verification Data Status Flow:

%%{init: {'theme': 'base', 'themeVariables': {'background': '#ffffff', 'mainBkg': '#ffffff', 'clusterBkg': '#ffffff', 'clusterBorder': '#2563eb', 'primaryColor': '#2563eb', 'primaryTextColor': '#ffffff', 'titleColor': '#000000', 'lineColor': '#374151'}, 'flowchart': {'padding': 15, 'nodeSpacing': 25, 'rankSpacing': 30}}}%%
flowchart LR
    subgraph MainContainer[πŸ” Verification Data Status Flow]
        direction LR
        A[βšͺ None] --> B[πŸš€ Initiated]
        B --> C[πŸ“„ Pending Doc]
        C --> D[⏳ InProgress]
        D --> E[βœ… Completed]
        D --> F[❌ Failed]
    end
    
    style A fill:#6b7280,stroke:#4b5563,color:#fff
    style B fill:#2563eb,stroke:#1e40af,color:#fff
    style C fill:#d97706,stroke:#b45309,color:#fff
    style D fill:#d97706,stroke:#b45309,color:#fff
    style E fill:#059669,stroke:#047857,color:#fff
    style F fill:#dc2626,stroke:#b91c1c,color:#fff

Verification Result Values

Verification result values indicate the outcome of a verification process.

ValueDescription
PassedVerification successful
FailedVerification failed
ReviewManual review required

Verification Result Flow:

%%{init: {'theme': 'base', 'themeVariables': {'background': '#ffffff', 'mainBkg': '#ffffff', 'clusterBkg': '#ffffff', 'clusterBorder': '#2563eb', 'primaryColor': '#2563eb', 'primaryTextColor': '#ffffff', 'titleColor': '#000000', 'lineColor': '#374151'}, 'flowchart': {'padding': 15, 'nodeSpacing': 25, 'rankSpacing': 30}}}%%
flowchart LR
    subgraph MainContainer[βš–οΈ Verification Result]
        direction LR
        A{βš–οΈ Verification} --> B[βœ… Passed]
        A --> C[❌ Failed]
        A --> D[πŸ“‹ Review]
    end
    
    style A fill:#6b7280,stroke:#4b5563,color:#fff
    style B fill:#059669,stroke:#047857,color:#fff
    style C fill:#dc2626,stroke:#b91c1c,color:#fff
    style D fill:#d97706,stroke:#b45309,color:#fff

LMS Enumerated Values

The Loan Management System (LMS) uses the following enumerated values for loan servicing, payments, and transactions.

Loan Status Values

Loan status values indicate the current state of a loan in the servicing system.

ValueDescription
UnfundedLoan created but not yet funded
FundedLoan has been funded
ActiveLoan is active and in repayment
DelinquentLoan is past due
DefaultLoan is in default
ChargedOffLoan has been charged off
PaidOffLoan has been fully paid off
ClosedLoan is closed

Loan Status Flow:

%%{init: {'theme': 'base', 'themeVariables': {'background': '#ffffff', 'mainBkg': '#ffffff', 'clusterBkg': '#ffffff', 'clusterBorder': '#2563eb', 'primaryColor': '#2563eb', 'primaryTextColor': '#ffffff', 'titleColor': '#000000', 'lineColor': '#374151'}, 'flowchart': {'padding': 15, 'nodeSpacing': 25, 'rankSpacing': 30}}}%%
flowchart LR
    subgraph MainContainer[πŸ’° Loan Status Flow]
        direction LR
        A[πŸ“ Unfunded] --> B[πŸ’΅ Funded]
        B --> C[βœ… Active]
        C --> D[⚠️ Delinquent]
        C --> E[❌ Default]
        D --> E
        E --> F[πŸ“‰ ChargedOff]
        C --> G[βœ… PaidOff]
        G --> H[πŸ”’ Closed]
        F --> H
    end
    
    style A fill:#6b7280,stroke:#4b5563,color:#fff
    style B fill:#2563eb,stroke:#1e40af,color:#fff
    style C fill:#059669,stroke:#047857,color:#fff
    style D fill:#d97706,stroke:#b45309,color:#fff
    style E fill:#dc2626,stroke:#b91c1c,color:#fff
    style F fill:#dc2626,stroke:#b91c1c,color:#fff
    style G fill:#059669,stroke:#047857,color:#fff
    style H fill:#374151,stroke:#1f2937,color:#fff

Payment Status Values

Payment status values track the progress of payment transactions.

ValueDescription
InitiatedPayment initiated by user or system
SubmittedPayment submitted for processing
SuccessPayment successfully processed
FailedPayment processing failed
ReversedPayment reversed
CancelledPayment cancelled

Payment Status Flow:

%%{init: {'theme': 'base', 'themeVariables': {'background': '#ffffff', 'mainBkg': '#ffffff', 'clusterBkg': '#ffffff', 'clusterBorder': '#2563eb', 'primaryColor': '#2563eb', 'primaryTextColor': '#ffffff', 'titleColor': '#000000', 'lineColor': '#374151'}, 'flowchart': {'padding': 15, 'nodeSpacing': 25, 'rankSpacing': 30}}}%%
flowchart LR
    subgraph MainContainer[πŸ’³ Payment Status Flow]
        direction LR
        A[πŸš€ Initiated] --> B[πŸ“€ Submitted]
        B --> C[βœ… Success]
        B --> D[❌ Failed]
        C --> E[↩️ Reversed]
        B --> F[🚫 Cancelled]
    end
    
    style A fill:#2563eb,stroke:#1e40af,color:#fff
    style B fill:#d97706,stroke:#b45309,color:#fff
    style C fill:#059669,stroke:#047857,color:#fff
    style D fill:#dc2626,stroke:#b91c1c,color:#fff
    style E fill:#6b7280,stroke:#4b5563,color:#fff
    style F fill:#6b7280,stroke:#4b5563,color:#fff

Payment Instrument Values

Payment instrument values specify the method used for payment.

ValueDescription
CashCash payment
CheckCheck payment
ACHACH bank transfer
DebitCardDebit card payment
WireWire transfer

Payment Instruments:

%%{init: {'theme': 'base', 'themeVariables': {'background': '#ffffff', 'mainBkg': '#ffffff', 'clusterBkg': '#ffffff', 'clusterBorder': '#6b7280', 'primaryColor': '#2563eb', 'primaryTextColor': '#ffffff', 'titleColor': '#000000', 'lineColor': '#374151'}, 'flowchart': {'padding': 15, 'nodeSpacing': 25, 'rankSpacing': 30}}}%%
flowchart LR
    subgraph MainContainer[πŸ’³ Payment Instruments]
        direction LR
        A[πŸ’΅ Cash] --- B[πŸ“„ Check] --- C[🏦 ACH] --- D[πŸ’³ DebitCard] --- E[πŸ”— Wire]
    end
    
    style A fill:#2563eb,stroke:#1e40af,color:#fff
    style B fill:#2563eb,stroke:#1e40af,color:#fff
    style C fill:#2563eb,stroke:#1e40af,color:#fff
    style D fill:#2563eb,stroke:#1e40af,color:#fff
    style E fill:#2563eb,stroke:#1e40af,color:#fff

Payment Type Values

Payment type values specify how a payment should be allocated.

ValueDescription
SystemUse system default payment hierarchy
ScheduleApply to scheduled payment
PrincipalOnlyApply to principal only
PayoffFull loan payoff
CustomCustom payment allocation

LOC Status Values

Line of Credit (LOC) status values indicate the current state of a credit line.

ValueDescription
ActiveLOC is active and available for draws
SuspendedLOC temporarily disabled
ClosedLOC fully closed
CancelledLOC permanently cancelled

LOC Status Flow:

%%{init: {'theme': 'base', 'themeVariables': {'background': '#ffffff', 'mainBkg': '#ffffff', 'clusterBkg': '#ffffff', 'clusterBorder': '#2563eb', 'primaryColor': '#2563eb', 'primaryTextColor': '#ffffff', 'titleColor': '#000000', 'lineColor': '#374151'}, 'flowchart': {'padding': 15, 'nodeSpacing': 25, 'rankSpacing': 30}}}%%
flowchart LR
    subgraph MainContainer[πŸ’³ LOC Status Flow]
        direction LR
        A[βœ… Active] --> B[⏸️ Suspended]
        A --> C[πŸ”’ Closed]
        A --> D[🚫 Cancelled]
        B --> C
    end
    
    style A fill:#059669,stroke:#047857,color:#fff
    style B fill:#d97706,stroke:#b45309,color:#fff
    style C fill:#374151,stroke:#1f2937,color:#fff
    style D fill:#dc2626,stroke:#b91c1c,color:#fff

Draw Status Values

Draw status values track the progress of Line of Credit draw requests.

ValueDescription
RequestedDraw requested by borrower
ApprovedDraw approved
RejectedDraw rejected
FundedDraw funded and disbursed
CancelledDraw cancelled

Draw Status Flow:

%%{init: {'theme': 'base', 'themeVariables': {'background': '#ffffff', 'mainBkg': '#ffffff', 'clusterBkg': '#ffffff', 'clusterBorder': '#2563eb', 'primaryColor': '#2563eb', 'primaryTextColor': '#ffffff', 'titleColor': '#000000', 'lineColor': '#374151'}, 'flowchart': {'padding': 15, 'nodeSpacing': 25, 'rankSpacing': 30}}}%%
flowchart LR
    subgraph MainContainer[πŸ“ Draw Status Flow]
        direction LR
        A[πŸ“ Requested] --> B{βš–οΈ Decision}
        B -->|βœ…| C[βœ… Approved]
        B -->|❌| D[❌ Rejected]
        C --> E[πŸ’΅ Funded]
        A --> F[🚫 Cancelled]
    end
    
    style A fill:#2563eb,stroke:#1e40af,color:#fff
    style B fill:#6b7280,stroke:#4b5563,color:#fff
    style C fill:#059669,stroke:#047857,color:#fff
    style D fill:#dc2626,stroke:#b91c1c,color:#fff
    style E fill:#059669,stroke:#047857,color:#fff
    style F fill:#6b7280,stroke:#4b5563,color:#fff

Fee Type Values

Fee type values specify when and how fees are applied.

ValueDescription
ScheduledFee applied on scheduled date
PerOccurrenceFee applied per event occurrence
PreAppliedFee applied upfront
ChargeOffFee applied after charge-off

Transaction Type Values

Transaction type values categorize financial transactions.

ValueDescription
PaymentPayment transaction
FeeFee transaction
InterestInterest accrual
PrincipalPrincipal change
WaiverFee waiver
ReversalTransaction reversal

Transaction Types:

%%{init: {'theme': 'base', 'themeVariables': {'background': '#ffffff', 'mainBkg': '#ffffff', 'clusterBkg': '#ffffff', 'clusterBorder': '#6b7280', 'primaryColor': '#2563eb', 'primaryTextColor': '#ffffff', 'titleColor': '#000000', 'lineColor': '#374151'}, 'flowchart': {'padding': 15, 'nodeSpacing': 25, 'rankSpacing': 30}}}%%
flowchart LR
    subgraph MainContainer[πŸ’³ Transaction Types]
        direction LR
        A[πŸ’³ Payment] --- B[πŸ’° Fee] --- C[πŸ“ˆ Interest] --- D[πŸ’΅ Principal] --- E[βœ… Waiver] --- F[↩️ Reversal]
    end
    
    style A fill:#2563eb,stroke:#1e40af,color:#fff
    style B fill:#d97706,stroke:#b45309,color:#fff
    style C fill:#2563eb,stroke:#1e40af,color:#fff
    style D fill:#2563eb,stroke:#1e40af,color:#fff
    style E fill:#059669,stroke:#047857,color:#fff
    style F fill:#6b7280,stroke:#4b5563,color:#fff

Collection Status Values

Collection status values indicate the delinquency stage of a loan.

ValueDescription
CurrentLoan is current (not in collections)
EarlyEarly delinquency (1-30 days past due)
LateLate delinquency (31-60 days past due)
SevereSevere delinquency (61-90 days past due)
ChargeOffLoan charged off

Collection Status Flow:

%%{init: {'theme': 'base', 'themeVariables': {'background': '#ffffff', 'mainBkg': '#ffffff', 'clusterBkg': '#ffffff', 'clusterBorder': '#2563eb', 'primaryColor': '#2563eb', 'primaryTextColor': '#ffffff', 'titleColor': '#000000', 'lineColor': '#374151'}, 'flowchart': {'padding': 15, 'nodeSpacing': 25, 'rankSpacing': 30}}}%%
flowchart LR
    subgraph MainContainer[πŸ“ž Collection Status Flow]
        direction LR
        A[βœ… Current] --> B[⚠️ Early<br/>1-30 DPD]
        B --> C[⚠️ Late<br/>31-60 DPD]
        C --> D[🚨 Severe<br/>61-90 DPD]
        D --> E[πŸ“‰ ChargeOff]
    end
    
    style A fill:#059669,stroke:#047857,color:#fff
    style B fill:#d97706,stroke:#b45309,color:#fff
    style C fill:#d97706,stroke:#b45309,color:#fff
    style D fill:#dc2626,stroke:#b91c1c,color:#fff
    style E fill:#dc2626,stroke:#b91c1c,color:#fff

Recasting Option Values

Recasting option values specify how loan schedules are recalculated after extra principal payments.

ValueDescription
ReducePaymentLower monthly payment, same term
KeepPaymentSameSame payment, shorter term

Recasting Options:

%%{init: {'theme': 'base', 'themeVariables': {'background': '#ffffff', 'mainBkg': '#ffffff', 'clusterBkg': '#ffffff', 'clusterBorder': '#2563eb', 'primaryColor': '#2563eb', 'primaryTextColor': '#ffffff', 'titleColor': '#000000', 'lineColor': '#374151'}, 'flowchart': {'padding': 15, 'nodeSpacing': 25, 'rankSpacing': 30}}}%%
flowchart LR
    subgraph MainContainer[πŸ”„ Recasting Options]
        direction LR
        A{πŸ”„ Recast} --> B[πŸ’° ReducePayment<br/>Lower Payment]
        A --> C[πŸ“… KeepPaymentSame<br/>Shorter Term]
    end
    
    style A fill:#6b7280,stroke:#4b5563,color:#fff
    style B fill:#2563eb,stroke:#1e40af,color:#fff
    style C fill:#2563eb,stroke:#1e40af,color:#fff

Code Examples

Using Enums in Requests

The following examples demonstrate how to use enumerated values in API requests:

curl -X POST "https://api.demo.lms.lendfoundry.com/v1/payment-processor/payments" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "loanNumber": "LN-2024-001",
    "paymentAmount": 500.00,
    "paymentInstrument": "ACH",
    "paymentType": "Schedule",
    "recastingOption": "KeepPaymentSame"
  }'
// Example: Payment with enum values
const payment = {
  loanNumber: 'LN-2024-001',
  paymentAmount: 500.00,
  paymentInstrument: 'ACH',           // PaymentInstrumentValues
  paymentType: 'Schedule',            // PaymentTypeValues
  recastingOption: 'KeepPaymentSame'  // RecastingOptionValues
};

const response = await fetch(
  'https://api.demo.lms.lendfoundry.com/v1/payment-processor/payments',
  {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify(payment)
  }
);

const result = await response.json();
console.log(result);
# Example: Using enums with validation
from enum import Enum

class PaymentInstrument(Enum):
    CASH = "Cash"
    CHECK = "Check"
    ACH = "ACH"
    DEBIT_CARD = "DebitCard"
    WIRE = "Wire"

class PaymentType(Enum):
    SYSTEM = "System"
    SCHEDULE = "Schedule"
    PRINCIPAL_ONLY = "PrincipalOnly"
    PAYOFF = "Payoff"
    CUSTOM = "Custom"

class RecastingOption(Enum):
    REDUCE_PAYMENT = "ReducePayment"
    KEEP_PAYMENT_SAME = "KeepPaymentSame"

def make_payment(loan_number, amount, instrument: PaymentInstrument, payment_type: PaymentType, recasting: RecastingOption):
    payload = {
        "loanNumber": loan_number,
        "paymentAmount": amount,
        "paymentInstrument": instrument.value,
        "paymentType": payment_type.value,
        "recastingOption": recasting.value
    }
    
    import requests
    url = "https://api.demo.lms.lendfoundry.com/v1/payment-processor/payments"
    headers = {
        "Authorization": "Bearer YOUR_ACCESS_TOKEN",
        "Content-Type": "application/json"
    }
    
    response = requests.post(url, json=payload, headers=headers)
    response.raise_for_status()
    return response.json()

# Usage
result = make_payment(
    "LN-2024-001",
    500.00,
    PaymentInstrument.ACH,
    PaymentType.SCHEDULE,
    RecastingOption.KEEP_PAYMENT_SAME
)
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

public class PaymentExample {
    public static void makePayment() throws Exception {
        String requestBody = """
            {
                "loanNumber": "LN-2024-001",
                "paymentAmount": 500.00,
                "paymentInstrument": "ACH",
                "paymentType": "Schedule",
                "recastingOption": "KeepPaymentSame"
            }
            """;
        
        HttpClient client = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://api.demo.lms.lendfoundry.com/v1/payment-processor/payments"))
            .header("Authorization", "Bearer YOUR_ACCESS_TOKEN")
            .header("Content-Type", "application/json")
            .POST(HttpRequest.BodyPublishers.ofString(requestBody))
            .build();
        
        HttpResponse<String> response = client.send(request,
            HttpResponse.BodyHandlers.ofString());
        
        System.out.println(response.body());
    }
}

Best Practices

Enum Usage Guidelines

  1. Use exact values: Enum values are case-sensitive. Use the exact string as shown in the tables above.

  2. Validate before sending: Validate enum values in your application before making API requests to avoid errors.

  3. Handle invalid values: API responses will return validation errors if invalid enum values are used. Handle these errors gracefully.

  4. Use constants: In your code, define constants or enums for these values to avoid typos and ensure consistency.

  5. Check API responses: API responses may include enum values. Use these to understand the current state of resources.

Common Errors

ErrorCauseSolution
Invalid enum valueWrong case or typoUse exact value from table
Value not allowedValue not in enum listCheck enum definition
Missing required fieldEnum field not providedInclude required enum field

Related Documentation