Overview

The SMB Loan Application API allows you to submit loan applications for small and medium-sized businesses. This API processes loan applications ranging from $25,000 to $500,000 and returns preliminary qualification results.

Key Features

  • Real-time pre-qualification decisions
  • Support for multiple business types and loan purposes
  • Comprehensive validation of business and owner information
  • Test modes for simulating declines and errors

Quick Start

Submit your first loan application in minutes:

POST https://api.embed.mkiii.ai/v1/smb/application

Minimal Request Example

{
  "externalId": "app-123456",
  "loanAmountDollars": 100000,
  "loanPurpose": "working_capital",
  "businessApplicant": {
    "businessName": "Acme Corporation",
    "businessType": "corporation",
    "employeeCount": 25,
    "naicsCode": "541511",
    "totalDebtDollars": 50000,
    "bankruptcy": false,
    "yearsInBusiness": 5,
    "addressLineOne": "123 Main St",
    "city": "Portland",
    "state": "OR",
    "zip": "97201"
  },
  "ownerApplicants": [
    {
      "firstName": "John",
      "lastName": "Doe",
      "ownerType": "owner",
      "ownershipPercentage": 0.75,
      "creditScore": 720,
      "creditPullDate": "2025-01-15T10:00:00Z",
      "addressLineOne": "456 Oak Ave",
      "city": "Portland",
      "state": "OR",
      "zip": "97201"
    }
  ]
}

Successful Response

{
  "id": "SMB_01JZR8WRCSRGT0X85S4Q7HN5K5",
  "externalId": "app-123456",
  "status": "prequal",
  "premiumRate": 3.25,
  "deductibleRate": 4.75,
  "interestRate": 17.25,
  "declineReason": null
}

Endpoint Details

POST https://api.embed.mkiii.ai/v1/smb/application
Property Value
Method POST
Content-Type application/json
Authorization Bearer TOKEN_HERE

Enums Reference

Loan Purpose

Value Description
working_capital General working capital needs
line_of_credit Establish or expand line of credit
business_startup New business startup costs
business_acquisition Purchase existing business
business_expansion Expand current operations
business_debt_refinancing Refinance existing business debt
buyout Partner or shareholder buyout
commercial_property_purchase Purchase commercial real estate
commercial_property_improvements Improve existing commercial property
commercial_property_new_construction New commercial construction
equipment_purchase Purchase business equipment
inventory_or_materials_purchase Purchase inventory or materials
other Other business purposes

Business Type

Value Description
individual Individual business owner
corporation General corporation
sole-proprietorship Sole proprietorship
partnership General partnership
limited_liability_partnership Limited liability partnership (LLP)
limited_partnership Limited partnership (LP)
limited_liability_company Limited liability company (LLC)
c_corporation C Corporation
s_corporation S Corporation
b_corporation Benefit Corporation
close_corporation Close Corporation
nonprofit_corporation Nonprofit Corporation
nonprofit General nonprofit
cooperative Cooperative

Owner Type

Value Description
co-owner Co-owner of the business
owner Primary owner
guarantor Loan guarantor
affiliate Business affiliate
other Other relationship

Request Schema

Root Object

Field Type Required Description
externalId string Yes Your unique identifier for this application
loanAmountDollars integer Yes Loan amount (min: $25,000, max: $500,000)
loanPurpose enum Yes Purpose of the loan (see enum table)
businessApplicant object Yes Business information
ownerApplicants array Yes Array of business owners (min: 1)

Business Applicant Object

Field Type Required Description
businessName string Yes Legal business name
businessType enum Yes Type of business entity
employeeCount integer Yes Number of employees (min: 0)
naicsCode string Yes 6-digit NAICS code
totalDebtDollars integer Yes Total business debt (min: 0)
bankruptcy boolean Yes Has business filed for bankruptcy
yearsInBusiness integer Yes Years in operation (min: 0)
addressLineOne string Yes Business street address
addressLineTwo string No Additional address info
city string Yes City
state string Yes 2-letter state code
zip string Yes 5-digit ZIP code

Owner Applicant Object

Field Type Required Description
firstName string Yes Owner's first name
lastName string Yes Owner's last name
ownerType enum Yes Relationship to business
ownershipPercentage number Yes Ownership percentage (0.20-1.0)
creditScore integer Yes Credit score (300-850)
creditPullDate string Yes ISO 8601 date of credit pull
addressLineOne string Yes Owner's street address
addressLineTwo string No Additional address info
city string Yes City
state string Yes 2-letter state code
zip string Yes 5-digit ZIP code

Response Schema

Success Response

Field Type Description
id string System-generated application ID (format: SMB_[random])
externalId string Your provided external ID
status string "prequal" or "decline"
premiumRate number | null Premium rate percentage (null if declined)
deductibleRate number | null Deductible percentage (null if declined)
interestRate number | null Interest rate percentage (null if declined)
declineReason string | null Reason for decline (null if approved)

Decline Reasons

Reason Description
Deductible is greater than 15% Risk assessment resulted in unacceptably high deductible
Probability of default is greater than 5% Credit risk exceeds acceptable threshold
Interest rate is over 25% Required interest rate exceeds maximum allowed

Examples

Successful Pre-qualification

Request

{
  "externalId": "success-001",
  "loanAmountDollars": 150000,
  "loanPurpose": "equipment_purchase",
  "businessApplicant": {
    "businessName": "Tech Solutions Inc",
    "businessType": "s_corporation",
    "employeeCount": 15,
    "naicsCode": "541512",
    "totalDebtDollars": 25000,
    "bankruptcy": false,
    "yearsInBusiness": 8,
    "addressLineOne": "789 Innovation Drive",
    "addressLineTwo": "Suite 200",
    "city": "Seattle",
    "state": "WA",
    "zip": "98101"
  },
  "ownerApplicants": [
    {
      "firstName": "Sarah",
      "lastName": "Johnson",
      "ownerType": "owner",
      "ownershipPercentage": 1.0,
      "creditScore": 780,
      "creditPullDate": "2025-01-10T14:30:00Z",
      "addressLineOne": "321 Residential St",
      "city": "Bellevue",
      "state": "WA",
      "zip": "98004"
    }
  ]
}

Response

{
  "id": "SMB_01JZR8XK7NQR5PME9H3J2CV4WA",
  "externalId": "success-001",
  "status": "prequal",
  "premiumRate": 2.75,
  "deductibleRate": 4.25,
  "interestRate": 16.25,
  "declineReason": null
}

Declined Application

To simulate a decline in the sandbox environment, set the business name to "decline"

Request

{
  "externalId": "decline-test-001",
  "loanAmountDollars": 450000,
  "loanPurpose": "business_acquisition",
  "businessApplicant": {
    "businessName": "decline",
    "businessType": "limited_liability_company",
    "employeeCount": 3,
    "naicsCode": "722511",
    "totalDebtDollars": 275000,
    "bankruptcy": true,
    "yearsInBusiness": 1,
    "addressLineOne": "456 Test Street",
    "city": "Los Angeles",
    "state": "CA",
    "zip": "90001"
  },
  "ownerApplicants": [
    {
      "firstName": "Test",
      "lastName": "User",
      "ownerType": "owner",
      "ownershipPercentage": 0.51,
      "creditScore": 580,
      "creditPullDate": "2025-01-05T09:15:00Z",
      "addressLineOne": "123 Test Ave",
      "city": "Los Angeles",
      "state": "CA",
      "zip": "90001"
    }
  ]
}

Response

{
  "id": "SMB_01JZR8Y2FQMXN7B9GJHKSA3D5E",
  "externalId": "decline-test-001",
  "status": "decline",
  "premiumRate": null,
  "deductibleRate": null,
  "interestRate": null,
  "declineReason": "Probability of default is greater than 5%"
}

Multiple Owners Example

Request

{
  "externalId": "multi-owner-001",
  "loanAmountDollars": 250000,
  "loanPurpose": "business_expansion",
  "businessApplicant": {
    "businessName": "Partnership Enterprises LLC",
    "businessType": "limited_liability_company",
    "employeeCount": 50,
    "naicsCode": "423450",
    "totalDebtDollars": 100000,
    "bankruptcy": false,
    "yearsInBusiness": 12,
    "addressLineOne": "1000 Commerce Blvd",
    "city": "Austin",
    "state": "TX",
    "zip": "78701"
  },
  "ownerApplicants": [
    {
      "firstName": "Michael",
      "lastName": "Chen",
      "ownerType": "owner",
      "ownershipPercentage": 0.40,
      "creditScore": 745,
      "creditPullDate": "2025-01-12T11:00:00Z",
      "addressLineOne": "2001 Riverside Dr",
      "city": "Austin",
      "state": "TX",
      "zip": "78704"
    },
    {
      "firstName": "Lisa",
      "lastName": "Rodriguez",
      "ownerType": "co-owner",
      "ownershipPercentage": 0.35,
      "creditScore": 760,
      "creditPullDate": "2025-01-12T11:00:00Z",
      "addressLineOne": "3002 Lake View Ave",
      "city": "Austin",
      "state": "TX",
      "zip": "78703"
    },
    {
      "firstName": "David",
      "lastName": "Park",
      "ownerType": "co-owner",
      "ownershipPercentage": 0.25,
      "creditScore": 710,
      "creditPullDate": "2025-01-12T11:00:00Z",
      "addressLineOne": "4003 Hill Country Rd",
      "city": "Cedar Park",
      "state": "TX",
      "zip": "78613"
    }
  ]
}

Response

{
  "id": "SMB_01JZR8YM3KPQT2VXWA6B8CNDEF",
  "externalId": "multi-owner-001",
  "status": "prequal",
  "premiumRate": 3.5,
  "deductibleRate": 5.0,
  "interestRate": 17.75,
  "declineReason": null
}

Nonprofit Organization

Request

{
  "externalId": "nonprofit-001",
  "loanAmountDollars": 75000,
  "loanPurpose": "commercial_property_improvements",
  "businessApplicant": {
    "businessName": "Community Care Foundation",
    "businessType": "nonprofit_corporation",
    "employeeCount": 20,
    "naicsCode": "813211",
    "totalDebtDollars": 10000,
    "bankruptcy": false,
    "yearsInBusiness": 15,
    "addressLineOne": "500 Community Center Way",
    "city": "Denver",
    "state": "CO",
    "zip": "80202"
  },
  "ownerApplicants": [
    {
      "firstName": "Emily",
      "lastName": "Thompson",
      "ownerType": "guarantor",
      "ownershipPercentage": 0.20,
      "creditScore": 800,
      "creditPullDate": "2025-01-08T16:45:00Z",
      "addressLineOne": "789 Board Member Lane",
      "city": "Denver",
      "state": "CO",
      "zip": "80210"
    }
  ]
}

Response

{
  "id": "SMB_01JZR8Z4HQNVR3S7TXY2AB9CDE",
  "externalId": "nonprofit-001",
  "status": "prequal",
  "premiumRate": 2.5,
  "deductibleRate": 4.0,
  "interestRate": 15.75,
  "declineReason": null
}

Error Handling

Validation Errors

When request validation fails, you'll receive a 400 Bad Request response with nested error details:

Example: Missing Required Field

{
  "requestId": "01JZR9H0ZSGRP92P2VJ3HH8BFP",
  "type": "Validation Error",
  "message": "Invalid or missing request data",
  "errors": [
    {
      "property": "businessApplicant",
      "children": [
        {
          "property": "businessName",
          "constraints": {
            "isNotEmpty": "businessName should not be empty"
          }
        }
      ]
    }
  ]
}

Example: Invalid Loan Amount

{
  "requestId": "01JZR9H5XKPQR3MNVB2WC4DEFG",
  "type": "Validation Error",
  "message": "Invalid or missing request data",
  "errors": [
    {
      "property": "loanAmountDollars",
      "constraints": {
        "min": "Loan amount must be at least $25,000",
        "max": "Loan amount cannot exceed $500,000"
      }
    }
  ]
}

Example: Invalid Enum Value

{
  "requestId": "01JZR9H8QWERT5YU7IOPA9SDFG",
  "type": "Validation Error",
  "message": "Invalid or missing request data",
  "errors": [
    {
      "property": "loanPurpose",
      "constraints": {
        "isEnum": "loanPurpose must be one of the following values: working_capital, line_of_credit, business_startup, business_acquisition, business_expansion, business_debt_refinancing, buyout, commercial_property_purchase, commercial_property_improvements, commercial_property_new_construction, equipment_purchase, inventory_or_materials_purchase, other"
      }
    }
  ]
}

Example: Nested Array Validation

{
  "requestId": "01JZRA1WDJVCT82FNV3YVK6WK9",
  "type": "Validation Error",
  "message": "Invalid or missing request data",
  "errors": [
    {
      "property": "ownerApplicants",
      "children": [
        {
          "property": "0",
          "children": [
            {
              "property": "creditScore",
              "constraints": {
                "min": "creditScore must not be less than 300",
                "max": "creditScore must not be greater than 850"
              }
            }
          ]
        }
      ]
    }
  ]
}

Server Errors

To simulate a server error in the sandbox environment, set the business name to "error"

500 Internal Server Error

{
  "error": "Internal server error",
  "statusCode": 500,
  "message": "Simulated error for testing purposes",
  "requestId": "01JZR9HBXYZAB3CD4EFG5HIJKL"
}

Testing & Go Live

Special Test Cases

The sandbox environment supports special business names for testing:

Business Name Result Description
"decline" Declined application Returns a random decline reason
"error" 500 Server Error Simulates internal server error
Any other value Pre-qualified Returns random rates within valid ranges

Rate Ranges in Sandbox

Successful applications will receive rates within these ranges:

Field Min Max
Premium Rate 2.5% 4.75%
Premium Deductible 4.0% 6.25%
Interest Rate 15.75% 20.0%

🚀 Go Live Checklist

Complete these integration steps before launching in production:

Progress

0 of 11 tasks completed