Skip to content

TurnKey Lender — Public API Reference

TurnKey Lender Public API v7.12 — 100 operations across 9 modules. Base path https://{site_domain}/PublicApi/v7-12/{endpoint}. Interactive: the API page. Auth: tkLender_ApiKey (+ tkLender_UserAuthToken). See Authentication.

Customer (33)

GET /Customer/AccountSummary

Get Customer Account Summary Returns a summary for the current customer's account.

Param In Required
`` False

POST /Customer/ConfirmAccount

Disclaimer confirmation If this customer's account was not created on Back-Office or via API, then this method lets the customer confirm the disclaimer before getting in their dashboard.

GET /Customer/CreditProducts

Get the list of credit products Provides information about credit products in the system. To issue a new loan, you will require the Name property of the credit product. Other properties can be used to help the end user specify correct loan terms.

Param In Required
state query False

GET /Customer/Details

Get Customer Details Returns complete information about the authenticated customer.

Param In Required
`` False

PUT /Customer/Details

Update Customer Details Changes personal details for the authenticated customer.

Param In Required
`` False

GET /Customer/Disclaimer

Get disclaimer information Returns disclaimer settings NOTE (verified on Kaptl UAT 2026-07-15): requires tkLender_UserAuthToken — returns 401 'Customer authentication failed' with only the API key.

Param In Required
`` False

GET /Customer/Loans

Get Active Loans Returns information about all active loans issued by the authenticated customer. This list doesn't include closed (rejected, paid off, written off, etc.) loans

Param In Required
`` False

POST /Customer/Loans/Calculate

Calculate loan schedule Calculates loan schedule for provided terms

POST /Customer/Loans/Create

Create a new loan for the customer Creates a new loan application for a given customer. Loan terms are provided as parameters. A new loan is created with the 'Pre-Origination' status (if Customer Details are not completed) or with 'Origination' status (otherwise).

Param In Required
`` False

GET /Customer/Loans/{loanId}

Get Loan Details Returns information about a single loan issued by the authenticated customer.

Param In Required
`` False
`` False

POST /Customer/Loans/{loanId}/AcceptLoanOffer

Accept loan offer Customer accepts the loan offer. The method works only if Loan status = 'OfferConfirmation'

Param In Required
`` False
`` False
offerId query False

POST /Customer/Loans/{loanId}/Cancel

Cancel the loan Cancel the loan by the customer's request. Cancellation reason must be provided.

Param In Required
`` False
`` False
reasonId query True
comments query False

GET /Customer/Loans/{loanId}/CoApplicant

Get Co-Applicant Details Returns complete information about the loan Co-Applicant.

Param In Required
`` False
`` False

PUT /Customer/Loans/{loanId}/CoApplicant

Update Co-Applicant Details Changes Co-Applicant details for the loan.

Param In Required
`` False
`` False

POST /Customer/Loans/{loanId}/Collaterals

Add Collateral Add a new collateral item to then loan

Param In Required
`` False
`` False

PUT /Customer/Loans/{loanId}/Collaterals

Update Collateral Update the details of an existing collateral for the loan

Param In Required
`` False
`` False

DELETE /Customer/Loans/{loanId}/Collaterals/{collateralId}

Delete Collateral Removes a specified collateral from the loan

Param In Required
`` False
`` False
`` False

POST /Customer/Loans/{loanId}/DeclineDocument

Decline a document Decline a system loan document

Param In Required
`` False
`` False
docTypeId query True

POST /Customer/Loans/{loanId}/DeclineLoanOffer

Decline loan offer Customer declines the loan offer. The method works only if Loan status = 'OfferConfirmation'

Param In Required
`` False
`` False

GET /Customer/Loans/{loanId}/Documents

Returns all system loan documents Returns all system loan documents which are supposed to be signed in general

Param In Required
`` False
`` False

GET /Customer/Loans/{loanId}/Documents/{docTypeId}

Return a system loan document

Param In Required
`` False
`` False
docTypeId path True

PUT /Customer/Loans/{loanId}/LoanDetails

Update loan details Update details of the given loan

Param In Required
`` False
`` False

GET /Customer/Loans/{loanId}/LoanOffer

Get Loan Offer Details Returns information about a single loan offer issued by the authenticated customer. Available only is Loan status = 'Offer confirmation'

Param In Required
`` False
`` False

GET /Customer/Loans/{loanId}/LoanOffers

Get Loan Offer Details Returns information about all loan offers issued by the authenticated customer. Available only if Loan status = 'Offer confirmation' and Loan has been approved while functionality 'Multiple loan offers created by Underwriter' = true

Param In Required
`` False
`` False

POST /Customer/Loans/{loanId}/Process

Send loan for processing This method should be called once all required customer details are gathered. The method works if Loan Status is 'Origination' or 'Reprocessing'. For unsecured loans, the methods sumbits a loan for automatic processing (decision-making).For secured loans, the loan status is changed to 'Collateral'.

Param In Required
`` False
`` False
comments query False

POST /Customer/Loans/{loanId}/ResendSmsCode

Resend SMS with a code Resend SMS to a customer with a new generated code

Param In Required
`` False
`` False
docTypeId query True

DELETE /Customer/Loans/{loanId}/Rollover

Cancel rollover request Cancel rollover request for a specified loan.

Param In Required
`` False
`` False

POST /Customer/Loans/{loanId}/Rollover

Request rollover Requests rollover of a specified loan.

Param In Required
`` False
`` False

GET /Customer/Loans/{loanId}/Rollover/Allowed

Check if rollover can be requested Checks is rollover can be requested for a certain loan

Param In Required
`` False
`` False

POST /Customer/Loans/{loanId}/SignDocument

Sign a document Sign a system loan document with a code from SMS

Param In Required
`` False
`` False
code query True
docTypeId query True

GET /Customer/PromoCode/Check

Check promo code Checks if a given promo code exists. If true is received as a response, this promo code's value can be used as a credit product name in Calculate and Loans/Create endpoints

Param In Required
promoCode query True
state query False

POST /Customer/Register

Create a new customer account Creates a new customer account.

Param In Required
login query True
password query True

GET /Customer/States

Get the list of states If state management is enabled in the system, this endpoint can be used to receive total list of states of operation enabled by the administrator. Results of this endpoint can be used to allow the customer select his/her state before choosing a credit product and loan terms

Investor (13)

GET /Investor/ActiveInvestments

Get Active Investments Returns the list of active investments. Active investments here means investments for currently disbursed loans.

Param In Required
`` False

GET /Investor/ActiveInvestments/{id}

Get Investment Details Returns information about a specified active investment made by the authenticated Investor

Param In Required
`` False
id path True

GET /Investor/Bids

Get the list of bids Returns the list of investment bids submitted by the authenticated Investor

Param In Required
`` False

POST /Investor/Bids/Submit

Submit a bid Submits a new loan investment bid by the name of the authenticated Investor

Param In Required
`` False

DELETE /Investor/Bids/{id}

Withdraw a bid

Param In Required
`` False
id path True

GET /Investor/Bids/{id}

Get investment bid details Returns the details of a specified investment bid that was submitted by the authenticated Investor

Param In Required
`` False
id path True

PUT /Investor/Bids/{id}

Modify a bid Changes the amount of a submitted bid

Param In Required
`` False
id path True

GET /Investor/Opportunities

Get the list of investment opportunities Returns the list of investment opportunities (loan applications awaiting investments)

Param In Required
`` False

GET /Investor/PersonalDetails

Get investor's personal details Returns personal details of the authenticated investor

Param In Required
`` False

PUT /Investor/PersonalDetails

Update investor's personal details Updates personal details of the authenticated investor

Param In Required
`` False

GET /Investor/Preferences

Get Preferences Returns preferences of the authenticated investor's account

Param In Required
`` False

PUT /Investor/Preferences

Updates Preferences Updates authenticated investor's account preferences

Param In Required
`` False

POST /Investor/Register

Create a new Investor account Creates a new Investor account

Param In Required
login query True
password query True

Management (23)

GET /Management/BranchOffices

Get the list of branch offices Returns a list of branch offices registered in the system. The old URL /Migration/BranchOffices works as well.

GET /Management/CreditProducts

Get the list of credit products Returns a list of credit products registered in the system. The old URL /Migration/CreditProducts works as well.

Param In Required
state query False

POST /Management/Customers/Create

Register Customer Creates a new customer account with provided login and CustomerDetails. The old URL /Migration/Customers/Create works as well.

GET /Management/Customers/Search

Search customers Retrieve the list of customers that align with the search criteria. Customers can be filtered based on any combination of input parameters. A customer is considered a match only if all provided non-empty parameter values align with their personal details.

Param In Required
firstName query False
lastName query False
birthDate query False
email query False
ssn query False
driverLicenseId query False
phone query False
pageNumber query False
pageSize query False

GET /Management/Customers/{customerId}

Get Customer Details Get Customer's details by ID.

Param In Required
customerId path True

PUT /Management/Customers/{customerId}

Update Customer Details Updates personal details for the customer. The old URL /Migration/Customers/{customerId} works as well.

Param In Required
customerId path True

GET /Management/Customers/{customerId}/BankAccounts

Get All Bank Accounts Get all bank accounts.

Param In Required
customerId path True

POST /Management/Customers/{customerId}/BankAccounts

Create New Bank Account Create a new bank account.

Param In Required
customerId path True

DELETE /Management/Customers/{customerId}/BankAccounts/{profileId}

Delete Bank Account Delete a bank account.

Param In Required
customerId path True
profileId path True

GET /Management/Files/Download

Download Document Retrieves a loan document from the server. The old URL /Migration/Files/Download works as well.

Param In Required
fileId query True

GET /Management/Files/GetInfo/{documentId}

Get document details Retrieves info about an uploaded file. The old URL /Migration/Files/GetInfo works as well.

Param In Required
documentId path True

POST /Management/Files/Upload

Upload File Uploads a new file to the Turnkey Lender database. The old URL /Migration/Files/Upload works as well.

POST /Management/Loans

Create a new loan for the customer Creates a new loan for a given customer. If there are no disbursements, a loan is created with the 'Pre-Origination' status (if Customer Details are not completed) or with 'Origination' status (otherwise). If there is one disbursement, then a loan is created as 'Active'/'Past Due'/'Repaid'. The old URL /Migration/Loans/Create works as well.

POST /Management/Loans/Disbursements

Register a disbursement transaction Register a disbursement transaction. The method works correctly only if Loan Status = 'Approved' and the disbursement amount is equal to the Loan Amount.

POST /Management/Loans/Repayments

Register repayment transaction Register a repayment transaction. All transactions are applied with Repayment Mode = "Regular payment" by default

DELETE /Management/Loans/Repayments/{id}

Repayment transaction is reversed Reverse a repayment transaction

Param In Required
id path True

PUT /Management/Loans/Repayments/{id}

Edit a repayment transaction

Param In Required
id path True

GET /Management/Loans/{loanId}

Get Loan Details Returns information about a single loan issued by the authenticated customer.

Param In Required
`` False

POST /Management/Loans/{loanId}/Approve

Approve the loan Approve the loan if its status is Waiting for approval only.

Param In Required
`` False
comments query False

POST /Management/Loans/{loanId}/AutochargeDisable

Disable auto-charges Disables automatic repayments (auto-charges) for an individual loan

Param In Required
`` False
comment query False

POST /Management/Loans/{loanId}/AutochargeEnable

Enable auto-charges If automatic repayments (auto-charges) are disabled for a loan, call this endpoint to enable them

Param In Required
`` False
comment query False

POST /Management/Loans/{loanId}/IssueDisbursement

Initiate disbursement using a payment service Initiate loan disbursement via a payment service. Requires payment processing integration to be properly set-up

Param In Required
loanId path True
amount query True

POST /Management/Loans/{loanId}/Process

Send loan for processing This method should be called once all required customer details are gathered. The method works if Loan Status is 'Origination' or 'Reprocessing'. For unsecured loans, the methods sumbits a loan for automatic processing (decision-making).For secured loans, the loan status is changed to 'Collateral'.

Param In Required
`` False
comments query False

Payment Options (13)

GET /PaymentOptions/BankAccounts

Get Bank Accounts list The System returns information with all the bank accounts customer has added to the System.

Param In Required
`` False

POST /PaymentOptions/BankAccounts

Add a new bank account Adds customer's new Bank account to the System (bank account details are set as parameters).

Param In Required
`` False

POST /PaymentOptions/BankVerification/CancelBankVerification/{loanId}

Skip bank verification check Allows customer to skip bank verification check

Param In Required
`` False
loanId path True
reason query True

GET /PaymentOptions/BankVerification/IsDataProcessed

Check if Customer's Bank accounts are verified successfully Check if Bank account verification is passed successfully

Param In Required
`` False

POST /PaymentOptions/BankVerification/SaveData

Save data from iframe Save all data seceived from Bank verification service (iframe) in TurnKey Lender DB

Param In Required
`` False

GET /PaymentOptions/BankVerification/Settings

Get settings for Bank Verification iframe Returns settings to open iframe for the integrated bank verification provider.

Param In Required
`` False

GET /PaymentOptions/Cards

Get Cards list Returns information about all the cards a customer has added to the System.

Param In Required
`` False

POST /PaymentOptions/Cards

Add a new debit/credit card

Param In Required
`` False

PUT /PaymentOptions/Cards/{cardId}

Update card details The System changes authenticated customer's card details (for the selected card).

Param In Required
`` False
`` False
`` False

DELETE /PaymentOptions/DeleteMethod

Delete a payment method Delete payment method

Param In Required
`` False
paymentMethodId query True

GET /PaymentOptions/RepaymentAmounts/{loanId}

Get repayment amounts Returns possible repayment amounts for a given loan

Param In Required
`` False
`` False

POST /PaymentOptions/SetDefaultMethod

Update a payment method Sets submited payment method as default

Param In Required
`` False
paymentMethodId query True

POST /PaymentOptions/SubmitRepayment

Submit (charge) a repayment Submits repayment for given loan. The funds will be automatically charged from the customer's card or bank account.

Param In Required
`` False
loanId query True
amount query True
mode query True

Files (6)

GET /Files/Download

Download Document Retrieves a loan document from the server

Param In Required
`` False
fileId query True

GET /Files/GetInfo/{documentId}

Get document details Retrieves info about an uploaded file

Param In Required
`` False
documentId path True

POST /Files/Upload

Upload File Uploads a new file to the Turnkey Lender database

Param In Required
`` False

GET /UserDocuments

Get user documents Retrieves user documents with document groups

Param In Required
`` False
loanId query False
dashboardMode query True
loanMode query True

PUT /UserDocuments

Add file Adds file to document group. File should be already uploaded.

Param In Required
`` False

DELETE /UserDocuments/{UserDocumentId}

Delete a file Removes file from document group

Param In Required
`` False
UserDocumentId path True

Dictionary (3)

GET /Dictionary/CancellationReasons

Returns cancellation reasons Returns list of cancellation reasons dictionary items that are visible on the Front-Office

POST /Dictionary/GetFilteredValues

Gets values from the dictionary based on the passed filter. Returns filtered values for the specified dictionary.

POST /Dictionary/GetValues

Get all items from the requested dictionaries Returns list of dictionary names with their values.

System settings (1)

GET /Settings/Application/CoApplicant

Get Co-Applicant options for application flow

Param In Required
`` False

Vendors (4)

GET /Vendors/GetSettings

Get vendor settings

GET /Vendors/GetStores/{vendorId}

Get the list of all stores for a given vendor

Param In Required
`` False

GET /Vendors/GetVendors

Get the list of all vendors

GET /Vendors/StoresMap

Get the list of all stores to be shown on a map

User (4)

POST /User/ChangePassword

Change Password Change password for the current user

Param In Required
`` False
currentPassword query True
newPassword query True

POST /User/Login

Login user Checks if a user with the specified login and password exists. If yes, returns the authentication token that must be provided to other methods that require user authentication (tkLender_UserAuthToken header parameter).

Param In Required
login query True
password query True

POST /User/RequestPasswordReset

Request user's password change Request one-time change of the user's password. As a result, (1) the password reset link is generated and (2) an email with the password reset link is sent to the user with provided login.

Param In Required
login query True
confirmationUrl query False

POST /User/ResetPassword

Reset user's password Assumes that the user followed the password reset link (see /User/RequestPasswordReset), entered the new password and submitted the form. As a result, the user's password is changed.

Param In Required
newPassword query True
code query True