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