Skip to navigation

Create loan

Creates a loan for a borrower. loan_type is one of AlternativeFinancing, SBA, CommercialTerm, CommercialRealEstate, ResidentialMortgage, Auto, Personal; loan_sub_type must belong to it; rate_type is Fixed, SOFR or Prime, and Fixed when omitted.

Requires the loans:write scope. Rate limit: 200 requests per minute per key (the api lane).

Authentication

AuthorizationBearer

Bearer token. Use ss_live_… for live data or ss_test_… for the sandbox (test mode). See Authentication.

Path parameters

borrower_idstringRequired
The borrower's id.

Headers

Idempotency-KeystringOptional<=255 characters

Idempotency token. Retries that reuse the key within 24h replay the original response. Up to 255 characters; a UUID is typical. See Idempotency.

SpreadSpace-VersionstringOptionalformat: "^\d{4}-\d{2}-\d{2}$"

Pin the API version, e.g. 2026-10-07. Omit to get the latest. See Versioning.

Request

This endpoint expects an object.
namestringRequired<=200 characters
loan_typeenumOptional

One of AlternativeFinancing, SBA, CommercialTerm, CommercialRealEstate, ResidentialMortgage, Auto, Personal, Transaction. Case-insensitive. Any other value is rejected with 400.

loan_sub_typestring or nullOptional<=100 characters

A subtype of the given loan_type; a subtype that belongs to a different type is rejected with 400.

loan_numberstring or nullOptional<=100 characters
requested_amountstring or nullOptionalformat: "^(0|[1-9][0-9]{0,11})\.[0-9]{2}$"
Monetary amount as a decimal string with exactly two decimal places. From 0.00 through 999999999999.99.
rate_typeenumOptional
Allowed values:
interest_ratedouble or nullOptional0-99.999
term_monthsinteger or nullOptional1-600
notesstring or nullOptional<=2000 characters
guarantorslist of strings or nullOptional

Guarantor names declared on the loan. They can be declared before any document is uploaded; each one is matched by name to the people the loan’s documents identify.

Response headers

X-Request-IDstringOptional
Correlation ID for this request. Quote it in support tickets.
Idempotency-Replayboolean

Set to true when the response is replayed from the idempotency cache for a request that re-presented an Idempotency-Key it had already used. Absent on the original (winner) response. A replay repeats the original status and body. When the original could not be stored (an unhandled server fault, or a body over the 1 MiB replay cap) the replay is an error envelope that says so; the operation is never re-run under the same key.

SpreadSpace-VersionstringOptional

The API surface version the server resolved for this request. Always present, regardless of whether the client supplied the request-side SpreadSpace-Version header. Default: 2026-10-07.

RateLimit-Limitinteger

Request budget of the endpoint’s rate-limit policy per 60-second sliding window. See Rate limits.

RateLimit-Remaininginteger

Requests left in the current window. Suppressed on 429 responses produced outside the rate limiter (for example a usage throttle), where a remaining budget would be misleading.

RateLimit-Resetinteger

Seconds until a guaranteed-fresh window.

RateLimit-PolicystringOptional

The active policy in limit;w=window-seconds form.

LocationstringOptional
The new loan's URL.

Response

Created
loan_idstring
borrower_idstring
assigneeslist of objects
statusstring
created_atdatetime
updated_atdatetime
borrowerobject or null

Borrower summary nested into a LoanResponse when the caller requests ?include=borrower on a loan list endpoint. Carries the borrower metadata the list surface already exposes (name, entity type, location, industry), never a tax identifier, so a per-loan borrower read is not needed.

borrower_namestring or nullOptional
loan_typestring or nullOptional
loan_sub_typestring or nullOptional
loan_type_labelstring or nullOptional
loan_sub_type_labelstring or nullOptional
namestring or nullOptional
loan_numberstring or nullOptional
requested_amountstring or nullOptionalformat: "^(0|[1-9][0-9]{0,11})\.[0-9]{2}$"
Monetary amount as a decimal string with exactly two decimal places. From 0.00 through 999999999999.99.
rate_typestring or nullOptional
interest_ratedouble or nullOptional
term_monthsinteger or nullOptional
prioritystring or nullOptional
notesstring or nullOptional
guarantorslist of strings or nullOptional

Guarantor names declared on the loan. Gated like Notes: null when the caller may not read the loan file, and null when none were declared.

documentslist of objects or nullOptional

Nested per-loan document summaries. Populated only when the loan list endpoint was called with ?include=documents and the caller may read this loan, and null otherwise. The field is always present on the wire; an empty list means the loan has no documents yet.

Errors

400
Bad Request Error
401
Unauthorized Error
402
Payment Required Error
403
Forbidden Error
404
Not Found Error
409
Conflict Error
429
Too Many Requests Error
500
Internal Server Error