Application underwriting

The underwriting process in Prime API evaluates loan applications using business information, banking data, and verification checks to make a credit decision. This automated process assesses the Borrower's creditworthiness and determines appropriate loan terms.

When initiating underwriting, the system first verifies that all required components are present: connected bank accounts, business information, and verified identity data. The process then runs in two phases: KYC/KYB verification, then executing the Prime loan sizing models to determine approval and terms.

The Underwriting Decision process is synchronous and typically completes within seconds. Once complete, the decision is stored with the Application and can not be modified, but can be retrieved from the Application entity. If the Underwriting Decision is successful, the enriched Application will include available loan terms (Offers); if declined, the system will generate an adverse action notice (AAN*), that will also be automatically sent to the Borrower email as a legal record for why their application was rejected.


Code sample

import requests
import time

def underwrite_application(auth_token, application_id):
    headers = {
        "Authorization": f"Bearer {auth_token}",
        "Content-Type": "application/json"
    }

    # Trigger underwriting
    response = requests.post(
        f"https://api.primeft.com/v2/applications/{application_id}/underwrite",
        headers=headers
    )

    if response.status_code == 200:
        decision = response.json()
        return {
            "decision": decision["decision_outcome"],
            "offers_gen_status": decision["offers_gen_status"],
            "screening_status": decision.get("screening_status"),
            "offers": decision.get("loan_offers", [])  # if the application is not declined
        }
    elif response.status_code == 422:
        raise Exception("Application not ready for underwriting")
    elif response.status_code == 408:
        raise Exception("Underwriting timeout - try again")
    else:
        raise Exception(f"Underwriting failed: {response.text}")


AAN* : An Adverse Action Notice (AAN) is a legally required document that lenders must provide when denying a credit application or making unfavorable credit decisions. Under federal law, it must explain the specific reasons for denial, provide credit bureau information if used, and inform applicants of their rights to obtain their credit report and dispute any inaccuracies.