Salt Partner API v.5
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
The Salt Partner API allows business to interface with and utilize Salt Lending's crypto-backed loan offerings.
Base URLs:
Authentication
# HTTP Header
x-api-key: 4eC39HqLyjWDarjtT1zdp7dc
The Salt Partner API uses API keys to authenticate requests. API keys will be distrubited via Salt's security team.
Your API keys carry many privileges, so be sure to keep them secure! Do not share your secret API keys in publicly accessible areas such as GitHub, client-side code, and so forth.
Authentication to the API is performed via the x-api-key header. Simply provide your API key as the value to a header with the key x-api-key. All API requests must be made over HTTPS. Calls made over plain HTTP will fail. API requests without a valid API key in the x-api-key header will also fail.
Webhooks Overview
SALT uses webhooks to notify your application when an event happens in your account. Webhooks are useful for asynchronous events like when a user’s registration is complete or a loan request changes its status.
Security
API customers should use IP whitelisting to restrict access to their webhook handler endpoints. Please reach out to SALT for more information.
What are webhooks
A webhook enables SALT to push real-time notifications to your app. SALT uses HTTPS to send these notifications to your app as a JSON payload. You can then use these notifications to execute actions in your backend systems.
Steps to receive webhooks
You can start receiving event notifications in your app using the steps in this section:
- Identify the events you want to monitor and the event payloads to parse.
- Create a webhook endpoint as an HTTP endpoint (URL) on your local server.
- Handle requests from SALT by parsing each event object and returning 2xx response status codes.
- Test that your webhook endpoint is working properly.
- Deploy your webhook endpoint so it’s a publicly accessible HTTPS URL.
- Subscribe your publicly accessible HTTPS URL in the Partner API.
What is a webhook endpoint
Creating a webhook endpoint is no different from creating any other page on your website. It’s an HTTP or HTTPS endpoint on your server with a URL. If you’re still developing your endpoint on your local machine, it can be HTTP. After it’s publicly accessible, it must be HTTPS. You can use one endpoint to handle several different event types at once, or set up individual endpoints for specific events.
Events
{
"loanId": "81502fdc-1072-40e7-9309-93bdb549d8da",
"subject": "registration",
"action": "complete"
}
{
"loanId": "81502fdc-1072-40e7-9309-93bdb549d8da",
"subject": "loan_request",
"action": "under_review"
}
{
"loanId": "81502fdc-1072-40e7-9309-93bdb549d8da",
"subject": "loan_request",
"action": "awaiting_funding"
}
{
"loanId": "81502fdc-1072-40e7-9309-93bdb549d8da",
"subject": "loan_request",
"action": "active"
}
Events are our way of letting you know when something interesting happens in your account. When an event occurs, we create a new Event object. If you registered a webhook endpoint to receive that event, we send it to your endpoint as part of a POST request.
Types of events
loan_request:*
Using a wildcard for the loan request action will capture all of the loan request events.
loan_request:registration_complete
Occurs when the user has logged in and completed the initial registration.
loan_request:awaiting_collateral
Occurs when the user of the loan has completed the full KYC process.
loan_request:under_review
Occurs when the user deposits sufficient collateral and the loan is ready for review.
loan_request:awaiting_funding
Occurs when all loan documents and requirements have been completed and the loan funding is actively being prepared.
loan_request:active
Occurs when the loan has been funded.
loan_request:cancelled
Occurs when the loan request has been cancelled.
Partners
getOwnPartner
Code samples
GET /partners/me
Get Own Partner Data
Returns Partner data for current user
Example responses
200 Response
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"email": "user@example.com"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Status 200 Response | GetOwnPartnerSuccessResponse |
| 400 | Bad Request | Status 400 Response | InvalidRequestResponse |
| 500 | Internal Server Error | Status 500 Response | InternalServerErrorResponse |
Campaigns
getAllCampaigns
Code samples
GET /campaigns
Get all Campaigns
Returns all Campaigns for current users Partner
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| page | query | number | false | Page number for pagination |
| limit | query | number | false | Limit for pagination |
Example responses
200 Response
{
"page": 0,
"limit": 0,
"totalRecords": 0,
"hasMore": true,
"records": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"description": "string",
"bankAccount": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"isInUSA": true,
"accountType": "checking",
"routingNumber": "string",
"accountNumber": "stringstri",
"swift": "stringst",
"iban": "string",
"notes": "string"
},
"walletAddress": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"address": "string",
"currency": "string"
},
"code": "string",
"logoURL": "string",
"payoutType": "bank_account",
"merchant": {
"name": "string",
"DBA": "string",
"taxId": "string",
"industrySector": "string",
"country": "string",
"address": "string",
"city": "string",
"state": "string",
"zip": "string",
"createdAt": "2019-08-24T14:15:22Z"
},
"createdAt": "2019-08-24T14:15:22Z"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Status 200 Response | GetAllCampaignsResponse |
| 400 | Bad Request | Status 400 Response | InvalidRequestResponse |
| 500 | Internal Server Error | Status 500 Response | InternalServerErrorResponse |
createCampaign
Code samples
POST /campaigns
Create a new campaign
Creates a new campaign and returns the value
Body parameter
{
"name": "string",
"description": "string",
"code": "string",
"logoURL": "string"
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | CreateCampaignRequest | false | A campaign information object |
Example responses
200 Response
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"description": "string",
"bankAccount": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"isInUSA": true,
"accountType": "checking",
"routingNumber": "string",
"accountNumber": "stringstri",
"swift": "stringst",
"iban": "string",
"notes": "string"
},
"walletAddress": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"address": "string",
"currency": "string"
},
"code": "string",
"logoURL": "string",
"payoutType": "bank_account",
"merchant": {
"name": "string",
"DBA": "string",
"taxId": "string",
"industrySector": "string",
"country": "string",
"address": "string",
"city": "string",
"state": "string",
"zip": "string",
"createdAt": "2019-08-24T14:15:22Z"
},
"createdAt": "2019-08-24T14:15:22Z"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Status 200 Response | SingleCampaignResponse |
| 400 | Bad Request | Status 400 Response | InvalidRequestResponse |
| 500 | Internal Server Error | Status 500 Response | InternalServerErrorResponse |
getCampaignById
Code samples
GET /campaigns/{campaignId}
Gets a single campaign by id
Returns a single campaign
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| campaignId | path | string | true | The id of the campaign you would like to fetch |
Example responses
200 Response
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"description": "string",
"bankAccount": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"isInUSA": true,
"accountType": "checking",
"routingNumber": "string",
"accountNumber": "stringstri",
"swift": "stringst",
"iban": "string",
"notes": "string"
},
"walletAddress": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"address": "string",
"currency": "string"
},
"code": "string",
"logoURL": "string",
"payoutType": "bank_account",
"merchant": {
"name": "string",
"DBA": "string",
"taxId": "string",
"industrySector": "string",
"country": "string",
"address": "string",
"city": "string",
"state": "string",
"zip": "string",
"createdAt": "2019-08-24T14:15:22Z"
},
"createdAt": "2019-08-24T14:15:22Z"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Status 200 Response | SingleCampaignResponse |
| 400 | Bad Request | Status 400 Response | InvalidRequestResponse |
| 500 | Internal Server Error | Status 500 Response | InternalServerErrorResponse |
updateCampaign
Code samples
PUT /campaigns/{campaignId}
Update a campaign by id
Updates an entire or partial campaign and returns the updated result.
Body parameter
{
"name": "string",
"description": "string",
"code": "string",
"logoURL": "string"
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| campaignId | path | string | true | The id of the campaign you would like to update |
| body | body | UpdateCampaignRequest | false | A campaign information object |
Example responses
200 Response
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"description": "string",
"bankAccount": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"isInUSA": true,
"accountType": "checking",
"routingNumber": "string",
"accountNumber": "stringstri",
"swift": "stringst",
"iban": "string",
"notes": "string"
},
"walletAddress": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"address": "string",
"currency": "string"
},
"code": "string",
"logoURL": "string",
"payoutType": "bank_account",
"merchant": {
"name": "string",
"DBA": "string",
"taxId": "string",
"industrySector": "string",
"country": "string",
"address": "string",
"city": "string",
"state": "string",
"zip": "string",
"createdAt": "2019-08-24T14:15:22Z"
},
"createdAt": "2019-08-24T14:15:22Z"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Status 200 Response | SingleCampaignResponse |
| 400 | Bad Request | Status 400 Response | InvalidRequestResponse |
| 500 | Internal Server Error | Status 500 Response | InternalServerErrorResponse |
deleteCampaign
Code samples
DELETE /campaigns/{campaignId}
Deletes a Campaign
Deletes a campaign and returns an empty object
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| campaignId | path | string | true | The id of the campaign you would like to delete |
Example responses
400 Response
{
"errors": [
{
"keyError": "string",
"message": "string"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | Status 204 Response | None |
| 400 | Bad Request | Status 400 Response | InvalidRequestResponse |
| 500 | Internal Server Error | Status 500 Response | InternalServerErrorResponse |
Response Schema
Loan Requests
getLoanQuote
Code samples
POST /loan-requests/quote
Get a loan quote
Returns loan calculation details based on input parameters
Body parameter
{
"amount": 11111,
"baseLTV": 0.5,
"repaymentType": "principal_and_interest",
"countryCode": "US",
"province": "CO",
"term": 12,
"accountType": "personal"
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | GetLoanQuoteRequest | false | An object containing loan quote information. |
Example responses
Status 200 Response
{
"principalAmount": 11223.24,
"amountToCustomer": 11111,
"monthlyPayment": 970.85,
"apr": 0.088402,
"interestRate": 0.0695,
"totalInterest": 426.97,
"originationFeeRate": 0.01,
"originationFeeAmount": 112.24,
"collateralNeeded": 22446.48
}
400 Response
{
"errors": [
{
"keyError": "string",
"message": "string"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Status 200 Response | GetLoanQuoteResponse |
| 400 | Bad Request | Status 400 Response | InvalidRequestResponse |
| 500 | Internal Server Error | Status 500 Response | InternalServerErrorResponse |
getLoanBounds
Code samples
POST /loan-requests/bounds
Get loan bounds
Get loan amount, IR, and term bounds
Body parameter
{
"repaymentType": "principal_and_interest",
"countryCode": "US",
"province": "CO",
"accountType": "personal"
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | GetLoanBoundsRequest | false | An object containing loan bounds information. |
Example responses
Status 200 Response
{
"amount": [
{
"constraint": "GTE",
"value": 5000
},
{
"constraint": "LTE",
"value": 1000000
}
],
"interestRate": [
{
"constraint": "GTE",
"value": 0
},
{
"constraint": "LTE",
"value": 0.45
}
],
"term": [
{
"constraint": "GTE",
"value": 3
},
{
"constraint": "LTE",
"value": 36
}
]
}
400 Response
{
"errors": [
{
"keyError": "string",
"message": "string"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Status 200 Response | GetLoanBoundsResponse |
| 400 | Bad Request | Status 400 Response | InvalidRequestResponse |
| 500 | Internal Server Error | Status 500 Response | InternalServerErrorResponse |
createLoanRequest
Code samples
POST /campaigns/{campaignId}/loan-requests
Create a loan request
Creates and returns a new loan request entity
Body parameter
{
"email": "jdoe@example.com",
"userData": {
"firstName": "John",
"lastName": "Doe",
"countryCode": "US",
"province": "CO"
},
"loanData": {
"term": 12,
"amount": 10101.02,
"amountToCustomer": 10000,
"baseLTV": 0.5,
"repaymentType": "principal_and_interest",
"countryCode": "US",
"province": "CO",
"apr": 0.088415,
"interestRate": 0.0695,
"payment": 873.78,
"originationFeeRate": 0.01,
"originationFeeAmount": 101.02,
"accountType": "personal"
}
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| campaignId | path | string | true | The id of the campaign you would like to create a Loan Request under |
| body | body | CreateLoanRequestRequest | false | An object containing loan request information. |
Example responses
Status 200 Response
{
"id": "8ff80537-ea77-4024-9422-3f0948cedeb2",
"createdAt": "2019-08-24T14:15:22Z",
"submittedAt": "null",
"expiresAt": "2019-08-24T14:15:22Z",
"status": "initialized",
"email": "jdoe@example.com",
"userData": {
"firstName": "John",
"lastName": "Doe",
"countryCode": "US",
"province": "CO"
},
"loanData": {
"term": 12,
"amount": 10101.02,
"amountToCustomer": 10000,
"baseLTV": 0.5,
"repaymentType": "principal_and_interest",
"countryCode": "US",
"province": "CO",
"apr": 0.088415,
"interestRate": 0.0695,
"payment": 873.78,
"originationFeeRate": 0.01,
"originationFeeAmount": 101.02,
"accountType": "personal",
"loanAsset": "USD"
}
}
400 Response
{
"errors": [
{
"keyError": "string",
"message": "string"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Status 200 Response | CreateLoanRequestResponse |
| 400 | Bad Request | Status 400 Response | InvalidRequestResponse |
| 500 | Internal Server Error | Status 500 Response | InternalServerErrorResponse |
getAllLoanRequests
Code samples
GET /loan-requests
Get All Loan Requests and filter by campaign
Returns a list of Loan Request entities
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| campaignId | query | string | false | Campaign ID |
Example responses
Status 200 Response
{
"page": 1,
"limit": 50,
"totalRecords": 1,
"hasMore": false,
"records": [
{
"id": "8ff80537-ea77-4024-9422-3f0948cedeb2",
"createdAt": "2019-08-24T14:15:22Z",
"submittedAt": "2019-08-24T14:15:22Z",
"expiresAt": "2019-08-24T14:15:22Z",
"status": "submitted",
"email": "jdoe@example.com",
"userData": {
"firstName": "John",
"lastName": "Doe",
"countryCode": "US",
"province": "CO"
},
"loanData": {
"term": 12,
"amount": 10101.02,
"amountToCustomer": 10000,
"baseLTV": 0.5,
"repaymentType": "principal_and_interest",
"countryCode": "US",
"province": "CO",
"apr": 0.088415,
"interestRate": 0.0695,
"payment": 873.78,
"originationFeeRate": 0.01,
"originationFeeAmount": 101.02,
"accountType": "personal"
}
}
]
}
400 Response
{
"errors": [
{
"keyError": "string",
"message": "string"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Status 200 Response | LoanRequestsResponse |
| 400 | Bad Request | Status 400 Response | InvalidRequestResponse |
| 500 | Internal Server Error | Status 500 Response | InternalServerErrorResponse |
getLoanRequestById
Code samples
GET /loan-requests/{loanRequestId}
Gets a Loan Request by id
Returns a single Loan Request entity
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| loanRequestId | path | string | true | The id of the Loan Request you would like to retrieve |
Example responses
Status 200 Response
{
"id": "8ff80537-ea77-4024-9422-3f0948cedeb2",
"createdAt": "2019-08-24T14:15:22Z",
"submittedAt": "2019-08-24T14:15:22Z",
"expiresAt": "2019-08-24T14:15:22Z",
"status": "submitted",
"email": "jdoe@example.com",
"userData": {
"firstName": "John",
"lastName": "Doe",
"countryCode": "US",
"province": "CO"
},
"loanData": {
"term": 12,
"amount": 10101.02,
"amountToCustomer": 10000,
"baseLTV": 0.5,
"repaymentType": "principal_and_interest",
"countryCode": "US",
"province": "CO",
"apr": 0.088415,
"interestRate": 0.0695,
"payment": 873.78,
"originationFeeRate": 0.01,
"originationFeeAmount": 101.02,
"accountType": "personal"
}
}
400 Response
{
"errors": [
{
"keyError": "string",
"message": "string"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Status 200 Response | LoanRequestResponse |
| 400 | Bad Request | Status 400 Response | InvalidRequestResponse |
| 500 | Internal Server Error | Status 500 Response | InternalServerErrorResponse |
updateLoanRequestById
Code samples
PATCH /loan-requests/{loanRequestId}
Updates a Loan Request by id
Returns the updated Loan Request entity
Body parameter
{
"email": "jdoe@example.com",
"userData": {
"firstName": "John",
"lastName": "Doe",
"countryCode": "US",
"province": "CO"
},
"loanData": {
"term": 12,
"amount": 10101.02,
"amountToCustomer": 10000,
"baseLTV": 0.5,
"repaymentType": "principal_and_interest",
"countryCode": "US",
"province": "CO",
"apr": 0.088415,
"interestRate": 0.0695,
"payment": 873.78,
"originationFeeRate": 0.01,
"originationFeeAmount": 101.02,
"accountType": "personal"
}
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| loanRequestId | path | string | true | The id of the Loan Request you would like to retrieve |
| body | body | UpdateLoanRequestRequest | false | An object containing loan request information. |
Example responses
Status 200 Response
{
"id": "8ff80537-ea77-4024-9422-3f0948cedeb2",
"createdAt": "2019-08-24T14:15:22Z",
"submittedAt": "2019-08-24T14:15:22Z",
"expiresAt": "2019-08-24T14:15:22Z",
"status": "submitted",
"email": "jdoe@example.com",
"userData": {
"firstName": "John",
"lastName": "Doe",
"countryCode": "US",
"province": "CO"
},
"loanData": {
"term": 12,
"amount": 10101.02,
"amountToCustomer": 10000,
"baseLTV": 0.5,
"repaymentType": "principal_and_interest",
"countryCode": "US",
"province": "CO",
"apr": 0.088415,
"interestRate": 0.0695,
"payment": 873.78,
"originationFeeRate": 0.01,
"originationFeeAmount": 101.02,
"accountType": "personal"
}
}
400 Response
{
"errors": [
{
"keyError": "string",
"message": "string"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Status 200 Response | LoanRequestResponse |
| 400 | Bad Request | Status 400 Response | InvalidRequestResponse |
| 409 | Conflict | Status 409 Response | ConflictServerErrorResponse |
| 500 | Internal Server Error | Status 500 Response | InternalServerErrorResponse |
deleteLoanRequest
Code samples
DELETE /loan-requests/{loanRequestId}
Deletes a Loan Request
Deletes a loan request and returns an empty object
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| loanRequestId | path | string | true | The id of the Loan Request you would like to retrieve |
Example responses
400 Response
{
"errors": [
{
"keyError": "string",
"message": "string"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | Status 204 Response | None |
| 400 | Bad Request | Status 400 Response | InvalidRequestResponse |
| 409 | Conflict | Status 409 Response | ConflictServerErrorResponse |
| 500 | Internal Server Error | Status 500 Response | InternalServerErrorResponse |
Response Schema
cancelLoanRequest
Code samples
POST /loan-requests/{loanRequestId}/cancel
Cancels a Loan Request
Cancels a Loan request and returns an empty object
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| loanRequestId | path | string | true | The id of the Loan Request you would like to cancel |
Example responses
400 Response
{
"errors": [
{
"keyError": "string",
"message": "string"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | Status 204 Response | None |
| 400 | Bad Request | Status 400 Response | InvalidRequestResponse |
| 409 | Conflict | Status 409 Response | ConflictServerErrorResponse |
| 500 | Internal Server Error | Status 500 Response | InternalServerErrorResponse |
Response Schema
submitLoanRequest
Code samples
POST /loan-requests/{loanRequestId}/submit
Submits Loan Request
Submits a loan request and returns an onboarding link
Body parameter
{
"token": "string"
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| loanRequestId | path | string | true | The id of the Loan Request you would like to retrieve |
| body | body | LoanSubmissionRequest | false | A request body containing an optional reCaptcha token (only required for non-publishable keys) |
Example responses
200 Response
{
"onboardingLink": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Status 200 Response | LoanSubmissionResponse |
| 400 | Bad Request | Status 400 Response | InvalidRequestResponse |
| 500 | Internal Server Error | Status 500 Response | InternalServerErrorResponse |
getTermLTVOptions
Code samples
GET /loan-requests/term-options
Gets a Term/LTV/APR options map
Returns an array of available Term/LTV/APR options
Example responses
200 Response
{
"records": [
{
"term": 0,
"ltv": 0,
"apr": 0
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Status 200 Response | GetTermLTVOptionsResponse |
| 400 | Bad Request | Status 400 Response | InvalidRequestResponse |
| 500 | Internal Server Error | Status 500 Response | InternalServerErrorResponse |
Payouts
addWalletAddress
Code samples
POST /campaigns/{campaignId}/wallet-addresses
Add a crypto wallet address to a campaign
Adds a payout crypto wallet address to a campaign and returns the campaign with the new address attached.
Body parameter
{
"address": "string"
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| campaignId | path | string | true | The id of the campaign you would like to add the wallet address to |
| body | body | AddWalletAddressRequest | false | A Wallet Address information object. |
Example responses
200 Response
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"description": "string",
"bankAccount": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"isInUSA": true,
"accountType": "checking",
"routingNumber": "string",
"accountNumber": "stringstri",
"swift": "stringst",
"iban": "string",
"notes": "string"
},
"walletAddress": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"address": "string",
"currency": "string"
},
"code": "string",
"logoURL": "string",
"payoutType": "bank_account",
"merchant": {
"name": "string",
"DBA": "string",
"taxId": "string",
"industrySector": "string",
"country": "string",
"address": "string",
"city": "string",
"state": "string",
"zip": "string",
"createdAt": "2019-08-24T14:15:22Z"
},
"createdAt": "2019-08-24T14:15:22Z"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Status 200 Response | SingleCampaignResponse |
| 400 | Bad Request | Status 400 Response | InvalidRequestResponse |
| 500 | Internal Server Error | Status 500 Response | InternalServerErrorResponse |
deleteWalletAddress
Code samples
DELETE /campaigns/{campaignId}/wallet-addresses
Removes a wallet address from a campaign
Removes a payout wallet address from a campaign and returns an empty object.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| campaignId | path | string | true | The id of the campaign you would like to remove the wallet address from |
Example responses
200 Response
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"description": "string",
"bankAccount": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"isInUSA": true,
"accountType": "checking",
"routingNumber": "string",
"accountNumber": "stringstri",
"swift": "stringst",
"iban": "string",
"notes": "string"
},
"walletAddress": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"address": "string",
"currency": "string"
},
"code": "string",
"logoURL": "string",
"payoutType": "bank_account",
"merchant": {
"name": "string",
"DBA": "string",
"taxId": "string",
"industrySector": "string",
"country": "string",
"address": "string",
"city": "string",
"state": "string",
"zip": "string",
"createdAt": "2019-08-24T14:15:22Z"
},
"createdAt": "2019-08-24T14:15:22Z"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Status 200 Response | SingleCampaignResponse |
| 400 | Bad Request | Status 400 Response | InvalidRequestResponse |
| 500 | Internal Server Error | Status 500 Response | InternalServerErrorResponse |
addBankAccount
Code samples
POST /campaigns/{campaignId}/bank-accounts
Add a bank account to a campaign
Adds a payout bank account to a campaign and returns the campaign with the new address attached.
Body parameter
{
"name": "string",
"isInUSA": true,
"accountType": "checking",
"routingNumber": "string",
"accountNumber": "stringstri",
"swift": "stringst",
"iban": "string",
"notes": "string"
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| campaignId | path | string | true | The id of the campaign you would like to add the bank account to |
| body | body | AddBankAccountRequest | false | A Bank Account information object. |
Example responses
200 Response
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"description": "string",
"bankAccount": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"isInUSA": true,
"accountType": "checking",
"routingNumber": "string",
"accountNumber": "stringstri",
"swift": "stringst",
"iban": "string",
"notes": "string"
},
"walletAddress": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"address": "string",
"currency": "string"
},
"code": "string",
"logoURL": "string",
"payoutType": "bank_account",
"merchant": {
"name": "string",
"DBA": "string",
"taxId": "string",
"industrySector": "string",
"country": "string",
"address": "string",
"city": "string",
"state": "string",
"zip": "string",
"createdAt": "2019-08-24T14:15:22Z"
},
"createdAt": "2019-08-24T14:15:22Z"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Status 200 Response | SingleCampaignResponse |
| 400 | Bad Request | Status 400 Response | InvalidRequestResponse |
| 500 | Internal Server Error | Status 500 Response | InternalServerErrorResponse |
deleteBankAccount
Code samples
DELETE /campaigns/{campaignId}/bank-accounts
Removes a bank account from a campaign
Removes a payout bank account from a campaign and returns an empty object.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| campaignId | path | string | true | The id of the campaign you would like to remove the bank account from |
Example responses
200 Response
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"description": "string",
"bankAccount": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"isInUSA": true,
"accountType": "checking",
"routingNumber": "string",
"accountNumber": "stringstri",
"swift": "stringst",
"iban": "string",
"notes": "string"
},
"walletAddress": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"address": "string",
"currency": "string"
},
"code": "string",
"logoURL": "string",
"payoutType": "bank_account",
"merchant": {
"name": "string",
"DBA": "string",
"taxId": "string",
"industrySector": "string",
"country": "string",
"address": "string",
"city": "string",
"state": "string",
"zip": "string",
"createdAt": "2019-08-24T14:15:22Z"
},
"createdAt": "2019-08-24T14:15:22Z"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Status 200 Response | SingleCampaignResponse |
| 400 | Bad Request | Status 400 Response | InvalidRequestResponse |
| 500 | Internal Server Error | Status 500 Response | InternalServerErrorResponse |
Webhooks
createWebhook
Code samples
POST /webhooks
Subscribe to a webhook
Subscribe to an available webhook found in the getWebhookSubscriptions endpoint
Body parameter
{
"subscription": "loan_request:registration_complete",
"callbackURL": "https://example.com/salt_webhooks"
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | CreateWebhookRequest | false | none |
Example responses
Status 200 Response
{
"id": "3f5f6fa0-a44f-47b5-a7ae-786f480a8d81",
"callbackURL": "https://example.com/salt_webhooks",
"subject": "loan_request",
"action": "registration_complete"
}
400 Response
{
"errors": [
{
"keyError": "string",
"message": "string"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Status 200 Response | WebhookResponse |
| 400 | Bad Request | Status 400 Response | InvalidRequestResponse |
| 500 | Internal Server Error | Status 500 Response | InternalServerErrorResponse |
getSubscribedWebhooks
Code samples
GET /webhooks
Get a list of webhooks you are subscribed to
Returns a list of webhook options in string format
Example responses
Status 200 Response
[
{
"id": "3f5f6fa0-a44f-47b5-a7ae-786f480a8d81",
"callbackURL": "https://example.com/salt_webhooks",
"subject": "loan_request",
"action": "registration_complete"
},
{
"id": "3d8ae85b-6eb9-450e-97fc-324cd2cbb3e5",
"callbackURL": "https://example.com/salt_webhooks",
"subject": "loan_request",
"action": "under_review"
},
{
"id": "5bb8ea1d-a3a5-4dfc-af7f-542775591d20",
"callbackURL": "https://example.com/salt_webhooks",
"subject": "loan_request",
"action": "awaiting_funding"
},
{
"id": "af6684b1-fbd9-46c2-a2fc-03ab89ff2a9b",
"callbackURL": "https://example.com/salt_webhooks",
"subject": "loan_request",
"action": "active"
}
]
400 Response
{
"errors": [
{
"keyError": "string",
"message": "string"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Status 200 Response | WebhooksArrayResponse |
| 400 | Bad Request | Status 400 Response | InvalidRequestResponse |
| 500 | Internal Server Error | Status 500 Response | InternalServerErrorResponse |
getWebhookOptions
Code samples
GET /webhooks/subscriptions
Get a list of webhook options
Returns a list of webhook options in string format
Example responses
Status 200 Response
[
"loan_request:*",
"loan_request:registration_complete",
"loan_request:under_review",
"loan_request:awaiting_collateral",
"loan_request:awaiting_funding",
"loan_request:active",
"loan_request:cancelled"
]
400 Response
{
"errors": [
{
"keyError": "string",
"message": "string"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Status 200 Response | WebhookOptionsResponse |
| 400 | Bad Request | Status 400 Response | InvalidRequestResponse |
| 500 | Internal Server Error | Status 500 Response | InternalServerErrorResponse |
getWebhookById
Code samples
GET /webhooks/{webhookId}
Get a subscribed webhook by id
Returns a single webhook response
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| webhookId | path | string | true | The id of the webhook you would like to retrieve |
Example responses
Status 200 Response
{
"id": "3f5f6fa0-a44f-47b5-a7ae-786f480a8d81",
"callbackURL": "https://example.com/salt_webhooks",
"subject": "loan_request",
"action": "registration_complete"
}
400 Response
{
"errors": [
{
"keyError": "string",
"message": "string"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Status 200 Response | WebhookResponse |
| 400 | Bad Request | Status 400 Response | InvalidRequestResponse |
| 500 | Internal Server Error | Status 500 Response | InternalServerErrorResponse |
deleteWebhook
Code samples
DELETE /webhooks/{webhookId}
Delete (unsubscribe) from a webhook
Deletes a webhook subscription so you will no longer be susbribed to the webhook
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| webhookId | path | string | true | The id of the webhook you would like to retrieve |
Example responses
204 Response
null
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | Status 204 Response | NoContentResponse |
| 400 | Bad Request | Status 400 Response | InvalidRequestResponse |
| 500 | Internal Server Error | Status 500 Response | InternalServerErrorResponse |
Merchants
addMerchant
Code samples
POST /campaigns/{campaignId}/merchants
Add merchant data to a campaign
Adds merchant data to a campaign and returns the updated campaign with the new merchant data attached
Body parameter
{
"name": "string",
"DBA": "string",
"taxId": "string",
"industrySector": "string",
"country": "string",
"address": "string",
"city": "string",
"state": "string",
"zip": "string"
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| campaignId | path | string | true | The id of the campaign you would like to add the merchant data to |
| body | body | FullMerchantRequest | false | A Merchant information object. |
Example responses
200 Response
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"description": "string",
"bankAccount": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"isInUSA": true,
"accountType": "checking",
"routingNumber": "string",
"accountNumber": "stringstri",
"swift": "stringst",
"iban": "string",
"notes": "string"
},
"walletAddress": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"address": "string",
"currency": "string"
},
"code": "string",
"logoURL": "string",
"payoutType": "bank_account",
"merchant": {
"name": "string",
"DBA": "string",
"taxId": "string",
"industrySector": "string",
"country": "string",
"address": "string",
"city": "string",
"state": "string",
"zip": "string",
"createdAt": "2019-08-24T14:15:22Z"
},
"createdAt": "2019-08-24T14:15:22Z"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Status 200 Response | SingleCampaignResponse |
| 400 | Bad Request | Status 400 Response | InvalidRequestResponse |
| 500 | Internal Server Error | Status 500 Response | InternalServerErrorResponse |
updateMerchant
Code samples
PUT /campaigns/{campaignId}/merchants
Update merchant data on a campaign
Updates merchant data on a campaign and returns the updated campaign with the new merchant data attached
Body parameter
{
"name": "string",
"DBA": "string",
"taxId": "string",
"industrySector": "string",
"country": "string",
"address": "string",
"city": "string",
"state": "string",
"zip": "string"
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| campaignId | path | string | true | The id of the campaign you would like to add the merchant data to |
| body | body | PartialMerchant | false | A Merchant information object. |
Example responses
200 Response
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"description": "string",
"bankAccount": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"isInUSA": true,
"accountType": "checking",
"routingNumber": "string",
"accountNumber": "stringstri",
"swift": "stringst",
"iban": "string",
"notes": "string"
},
"walletAddress": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"address": "string",
"currency": "string"
},
"code": "string",
"logoURL": "string",
"payoutType": "bank_account",
"merchant": {
"name": "string",
"DBA": "string",
"taxId": "string",
"industrySector": "string",
"country": "string",
"address": "string",
"city": "string",
"state": "string",
"zip": "string",
"createdAt": "2019-08-24T14:15:22Z"
},
"createdAt": "2019-08-24T14:15:22Z"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Status 200 Response | SingleCampaignResponse |
| 400 | Bad Request | Status 400 Response | InvalidRequestResponse |
| 500 | Internal Server Error | Status 500 Response | InternalServerErrorResponse |
deleteMerchant
Code samples
DELETE /campaigns/{campaignId}/merchants
Removes a merchant from a campaign
Removes a merchant from a campaign and returns an empty object.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| campaignId | path | string | true | The id of the campaign you would like to remove the merchant data from |
Example responses
400 Response
{
"errors": [
{
"keyError": "string",
"message": "string"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | Status 204 Response | None |
| 400 | Bad Request | Status 400 Response | InvalidRequestResponse |
| 500 | Internal Server Error | Status 500 Response | InternalServerErrorResponse |
Response Schema
Active Loans
getActiveLoan
Code samples
GET /loan-requests/{loanRequestId}/active-loan
Get active loan by loan request ID
Returns details about the active loan associated with the loan request ID provided
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| loanRequestId | path | string | true | The id of the loan request associated with the active loan |
Example responses
Status 200 Response
{
"id": "18b9b1f7-2fb0-41d1-bd82-1748b52a3da6",
"ltv": "0.64898307946090737234",
"loanValue": "11263.64",
"loanAsset": "USD",
"apr": "0.11894",
"interestRate": "0.0999",
"repaymentType": "principal_and_interest",
"payment": "990.2",
"status": "active",
"riskStatus": "Safe",
"amortizationInfo": {
"startDate": "2024-01-31T10:30:00.153Z",
"term": "12",
"beginningBalance": "11263.64",
"currentBalance": "11263.64",
"interestRate": "0.0999",
"principalPaid": "0",
"interestPaid": "0",
"feesPaid": "0",
"interestBalance": "15.61",
"remainingInterest": "670.12",
"principalBalance": "949.58",
"nextPaymentDate": "2024-10-15T10:00:00.000Z",
"nextPaymentAmount": "990.2",
"lastPaymentDate": null,
"lastPaymentAmount": null
}
}
400 Response
{
"errors": [
{
"keyError": "string",
"message": "string"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Status 200 Response | ActiveLoanResponse |
| 400 | Bad Request | Status 400 Response | InvalidRequestResponse |
| 500 | Internal Server Error | Status 500 Response | InternalServerErrorResponse |
Schemas
GetOwnPartnerSuccessResponse
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"email": "user@example.com"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | string(uuid) | false | none | none |
| name | string | false | none | none |
| string(email) | false | none | none |
GetAllCampaignsResponse
{
"page": 0,
"limit": 0,
"totalRecords": 0,
"hasMore": true,
"records": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"description": "string",
"bankAccount": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"isInUSA": true,
"accountType": "checking",
"routingNumber": "string",
"accountNumber": "stringstri",
"swift": "stringst",
"iban": "string",
"notes": "string"
},
"walletAddress": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"address": "string",
"currency": "string"
},
"code": "string",
"logoURL": "string",
"payoutType": "bank_account",
"merchant": {
"name": "string",
"DBA": "string",
"taxId": "string",
"industrySector": "string",
"country": "string",
"address": "string",
"city": "string",
"state": "string",
"zip": "string",
"createdAt": "2019-08-24T14:15:22Z"
},
"createdAt": "2019-08-24T14:15:22Z"
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| page | integer | false | none | none |
| limit | integer | false | none | none |
| totalRecords | integer | false | none | none |
| hasMore | boolean | false | none | none |
| records | [object] | false | none | none |
| » id | string(uuid) | false | none | none |
| » name | string | false | none | none |
| » description | string | false | none | none |
| » bankAccount | object | false | none | none |
| »» id | string(uuid) | false | none | none |
| »» name | string | false | none | none |
| »» isInUSA | boolean | false | none | none |
| »» accountType | string | false | none | none |
| »» routingNumber | string | false | none | none |
| »» accountNumber | string | false | none | none |
| »» swift | string | false | none | none |
| »» iban | string | false | none | none |
| »» notes | string | false | none | none |
| » walletAddress | object | false | none | none |
| »» id | string(uuid) | false | none | none |
| »» address | string | false | none | none |
| »» currency | string | false | none | none |
| » code | string | false | none | none |
| » logoURL | string | false | none | none |
| » payoutType | string | false | none | none |
| » merchant | object | false | none | none |
| »» name | string | true | none | none |
| »» DBA | string | true | none | none |
| »» taxId | string | true | none | none |
| »» industrySector | string | true | none | none |
| »» country | string | true | none | none |
| »» address | string | true | none | none |
| »» city | string | true | none | none |
| »» state | string | true | none | none |
| »» zip | string | true | none | none |
| »» createdAt | string(date-time) | true | none | none |
| » createdAt | string(date-time) | false | none | none |
Enumerated Values
| Property | Value |
|---|---|
| accountType | checking |
| accountType | savings |
| payoutType | bank_account |
| payoutType | wallet_address |
SingleCampaignResponse
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"description": "string",
"bankAccount": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"isInUSA": true,
"accountType": "checking",
"routingNumber": "string",
"accountNumber": "stringstri",
"swift": "stringst",
"iban": "string",
"notes": "string"
},
"walletAddress": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"address": "string",
"currency": "string"
},
"code": "string",
"logoURL": "string",
"payoutType": "bank_account",
"merchant": {
"name": "string",
"DBA": "string",
"taxId": "string",
"industrySector": "string",
"country": "string",
"address": "string",
"city": "string",
"state": "string",
"zip": "string",
"createdAt": "2019-08-24T14:15:22Z"
},
"createdAt": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | string(uuid) | false | none | none |
| name | string | false | none | none |
| description | string | false | none | none |
| bankAccount | object | false | none | none |
| » id | string(uuid) | false | none | none |
| » name | string | false | none | none |
| » isInUSA | boolean | false | none | none |
| » accountType | string | false | none | none |
| » routingNumber | string | false | none | none |
| » accountNumber | string | false | none | none |
| » swift | string | false | none | none |
| » iban | string | false | none | none |
| » notes | string | false | none | none |
| walletAddress | object | false | none | none |
| » id | string(uuid) | false | none | none |
| » address | string | false | none | none |
| » currency | string | false | none | none |
| code | string | false | none | none |
| logoURL | string | false | none | none |
| payoutType | string | false | none | none |
| merchant | object | false | none | none |
| » name | string | true | none | none |
| » DBA | string | true | none | none |
| » taxId | string | true | none | none |
| » industrySector | string | true | none | none |
| » country | string | true | none | none |
| » address | string | true | none | none |
| » city | string | true | none | none |
| » state | string | true | none | none |
| » zip | string | true | none | none |
| » createdAt | string(date-time) | true | none | none |
| createdAt | string(date-time) | false | none | none |
Enumerated Values
| Property | Value |
|---|---|
| accountType | checking |
| accountType | savings |
| payoutType | bank_account |
| payoutType | wallet_address |
CreateCampaignRequest
{
"name": "string",
"description": "string",
"code": "string",
"logoURL": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | true | none | none |
| description | string | false | none | none |
| code | string | true | none | none |
| logoURL | string | false | none | none |
UpdateCampaignRequest
{
"name": "string",
"description": "string",
"code": "string",
"logoURL": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | false | none | none |
| description | string | false | none | none |
| code | string | false | none | none |
| logoURL | string | false | none | none |
AddWalletAddressRequest
{
"address": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| address | string | true | none | none |
AddBankAccountRequest
{
"name": "string",
"isInUSA": true,
"accountType": "checking",
"routingNumber": "string",
"accountNumber": "stringstri",
"swift": "stringst",
"iban": "string",
"notes": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | true | none | none |
| isInUSA | boolean | true | none | none |
| accountType | string | true | none | none |
| routingNumber | string | true | none | none |
| accountNumber | string | true | none | none |
| swift | string | false | none | none |
| iban | string | false | none | none |
| notes | string | false | none | none |
Enumerated Values
| Property | Value |
|---|---|
| accountType | checking |
| accountType | savings |
GetLoanQuoteResponse
{
"principalAmount": 0,
"amountToCustomer": 0,
"monthlyPayment": 0,
"apr": 0,
"interestRate": 0,
"totalInterest": 0,
"originationFeeRate": 0,
"originationFeeAmount": 0,
"collateralNeeded": 0
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| principalAmount | number | true | none | none |
| amountToCustomer | number | true | none | none |
| monthlyPayment | number | true | none | none |
| apr | number | true | none | none |
| interestRate | number | true | none | none |
| totalInterest | number | true | none | none |
| originationFeeRate | number | true | none | none |
| originationFeeAmount | number | true | none | none |
| collateralNeeded | number | true | none | none |
GetLoanQuoteRequest
{
"amountToCustomer": 0,
"baseLTV": 0,
"repaymentType": "interest_only",
"countryCode": "string",
"province": "string",
"term": 0,
"accountType": "business"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| amountToCustomer | number | true | none | none |
| baseLTV | number | true | none | Decimal number for loan LTV |
| repaymentType | string | true | none | none |
| countryCode | string | true | none | 2 digit ISO code for country |
| province | string | true | none | 1-3 digit ISO code for state/province |
| term | integer | true | none | Number of months for loan term |
| accountType | string | true | none | none |
Enumerated Values
| Property | Value |
|---|---|
| repaymentType | interest_only |
| repaymentType | principal_and_interest |
| repaymentType | financed_interest |
| accountType | business |
| accountType | personal |
LoanSubmissionRequest
{
"token": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| token | string | false | none | none |
LoanSubmissionResponse
{
"onboardingLink": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| onboardingLink | string | true | none | none |
GetLoanBoundsResponse
{
"amount": [
{
"constraint": "GTE",
"value": 0
}
],
"apr": [
{
"constraint": "GTE",
"value": 0
}
],
"term": [
{
"constraint": "GTE",
"value": 0
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| amount | [object] | true | none | none |
| » constraint | string | false | none | none |
| » value | number | false | none | none |
| apr | [object] | true | none | none |
| » constraint | string | false | none | none |
| » value | number | false | none | none |
| term | [object] | true | none | none |
| » constraint | string | false | none | none |
| » value | number | false | none | none |
Enumerated Values
| Property | Value |
|---|---|
| constraint | GTE |
| constraint | GT |
| constraint | LTE |
| constraint | LT |
| constraint | GTE |
| constraint | GT |
| constraint | LTE |
| constraint | LT |
| constraint | GTE |
| constraint | GT |
| constraint | LTE |
| constraint | LT |
GetLoanBoundsRequest
{
"repaymentType": "interest_only",
"countryCode": "string",
"province": "string",
"accountType": "business"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| repaymentType | string | false | none | none |
| countryCode | string | true | none | 2 digit ISO code for country |
| province | string | true | none | 2 digit ISO code for state/province |
| accountType | string | true | none | none |
Enumerated Values
| Property | Value |
|---|---|
| repaymentType | interest_only |
| repaymentType | principal_and_interest |
| repaymentType | financed_interest |
| accountType | business |
| accountType | personal |
CreateLoanRequestResponse
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"createdAt": "2019-08-24T14:15:22Z",
"submittedAt": "2019-08-24T14:15:22Z",
"expiresAt": "2019-08-24T14:15:22Z",
"status": "string",
"email": "user@example.com",
"userData": {
"firstName": "string",
"lastName": "string",
"countryCode": "string",
"province": "string"
},
"loanData": {
"term": 0,
"amount": 0,
"amountToCustomer": 0,
"originationFeeRate": 0,
"originationFeeAmount": 0,
"baseLTV": 0,
"repaymentType": "interest_only",
"countryCode": "string",
"province": "string",
"payment": 0,
"apr": 0,
"interestRate": 0,
"accountType": "business",
"loanAsset": "string"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | string(uuid) | false | none | none |
| createdAt | string(date-time) | false | none | none |
| submittedAt | string(date-time) | false | none | none |
| expiresAt | string(date-time) | false | none | none |
| status | string | false | none | none |
| string(email) | false | none | none | |
| userData | object | false | none | none |
| » firstName | string | true | none | none |
| » lastName | string | true | none | none |
| » countryCode | string | true | none | none |
| » province | string | true | none | none |
| loanData | object | false | none | none |
| » term | integer | true | none | none |
| » amount | number | true | none | none |
| » amountToCustomer | number | true | none | none |
| » originationFeeRate | number | true | none | none |
| » originationFeeAmount | number | true | none | none |
| » baseLTV | number | true | none | none |
| » repaymentType | string | true | none | none |
| » countryCode | string | true | none | none |
| » province | string | true | none | none |
| » payment | number | true | none | none |
| » apr | number | true | none | none |
| » interestRate | number | true | none | none |
| » accountType | string | true | none | none |
| » loanAsset | string | true | none | none |
Enumerated Values
| Property | Value |
|---|---|
| repaymentType | interest_only |
| repaymentType | principal_and_interest |
| repaymentType | financed_interest |
| accountType | business |
| accountType | personal |
CreateLoanRequestRequest
{
"email": "user@example.com",
"userData": {
"firstName": "string",
"lastName": "string",
"countryCode": "string",
"province": "string"
},
"loanData": {
"term": 0,
"amount": 0,
"amountToCustomer": 0,
"originationFeeRate": 0,
"originationFeeAmount": 0,
"baseLTV": 0,
"repaymentType": "interest_only",
"countryCode": "string",
"province": "string",
"payment": 0,
"apr": 0,
"interestRate": 0,
"accountType": "business"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| string(email) | true | none | none | |
| userData | object | false | none | none |
| » firstName | string | true | none | none |
| » lastName | string | true | none | none |
| » countryCode | string | true | none | none |
| » province | string | true | none | none |
| loanData | object | false | none | none |
| » term | integer | true | none | none |
| » amount | number | true | none | none |
| » amountToCustomer | number | true | none | none |
| » originationFeeRate | number | true | none | none |
| » originationFeeAmount | number | true | none | none |
| » baseLTV | number | true | none | none |
| » repaymentType | string | true | none | none |
| » countryCode | string | true | none | none |
| » province | string | true | none | none |
| » payment | number | true | none | none |
| » apr | number | true | none | none |
| » interestRate | number | true | none | none |
| » accountType | string | true | none | none |
Enumerated Values
| Property | Value |
|---|---|
| repaymentType | interest_only |
| repaymentType | principal_and_interest |
| repaymentType | financed_interest |
| accountType | business |
| accountType | personal |
UpdateLoanRequestRequest
{
"email": "user@example.com",
"userData": {
"firstName": "string",
"lastName": "string",
"countryCode": "string",
"province": "string"
},
"loanData": {
"term": 0,
"amount": 0,
"amountToCustomer": 0,
"originationFeeRate": 0,
"originationFeeAmount": 0,
"baseLTV": 0,
"repaymentType": "interest_only",
"countryCode": "string",
"province": "string",
"payment": 0,
"apr": 0,
"interestRate": 0,
"accountType": "business",
"loanAsset": "string"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| string(email) | false | none | none | |
| userData | object | false | none | none |
| » firstName | string | true | none | none |
| » lastName | string | true | none | none |
| » countryCode | string | true | none | none |
| » province | string | true | none | none |
| loanData | object | false | none | none |
| » term | integer | true | none | none |
| » amount | number | true | none | none |
| » amountToCustomer | number | true | none | none |
| » originationFeeRate | number | true | none | none |
| » originationFeeAmount | number | true | none | none |
| » baseLTV | number | true | none | none |
| » repaymentType | string | true | none | none |
| » countryCode | string | true | none | none |
| » province | string | true | none | none |
| » payment | number | true | none | none |
| » apr | number | true | none | none |
| » interestRate | number | true | none | none |
| » accountType | string | true | none | none |
| » loanAsset | string | true | none | none |
Enumerated Values
| Property | Value |
|---|---|
| repaymentType | interest_only |
| repaymentType | principal_and_interest |
| repaymentType | financed_interest |
| accountType | business |
| accountType | personal |
LoanRequestResponse
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"createdAt": "2019-08-24T14:15:22Z",
"submittedAt": "2019-08-24T14:15:22Z",
"expiresAt": "2019-08-24T14:15:22Z",
"status": "string",
"email": "user@example.com",
"userData": {
"firstName": "string",
"lastName": "string",
"countryCode": "string",
"province": "string"
},
"loanData": {
"term": 0,
"amount": 0,
"amountToCustomer": 0,
"originationFeeRate": 0,
"originationFeeAmount": 0,
"baseLTV": 0,
"repaymentType": "interest_only",
"countryCode": "string",
"province": "string",
"payment": 0,
"apr": 0,
"interestRate": 0,
"accountType": "business",
"loanAsset": "string"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | string(uuid) | false | none | none |
| createdAt | string(date-time) | false | none | none |
| submittedAt | string(date-time) | false | none | none |
| expiresAt | string(date-time) | false | none | none |
| status | string | false | none | none |
| string(email) | false | none | none | |
| userData | object | false | none | none |
| » firstName | string | true | none | none |
| » lastName | string | true | none | none |
| » countryCode | string | true | none | none |
| » province | string | true | none | none |
| loanData | object | false | none | none |
| » term | integer | true | none | none |
| » amount | number | true | none | none |
| » amountToCustomer | number | true | none | none |
| » originationFeeRate | number | true | none | none |
| » originationFeeAmount | number | true | none | none |
| » baseLTV | number | true | none | none |
| » repaymentType | string | true | none | none |
| » countryCode | string | true | none | none |
| » province | string | true | none | none |
| » payment | number | true | none | none |
| » apr | number | true | none | none |
| » interestRate | number | true | none | none |
| » accountType | string | true | none | none |
| » loanAsset | string | true | none | none |
Enumerated Values
| Property | Value |
|---|---|
| repaymentType | interest_only |
| repaymentType | principal_and_interest |
| repaymentType | financed_interest |
| accountType | business |
| accountType | personal |
LoanRequestsResponse
{
"page": 0,
"limit": 0,
"totalRecords": 0,
"hasMore": true,
"records": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"createdAt": "2019-08-24T14:15:22Z",
"submittedAt": "2019-08-24T14:15:22Z",
"expiresAt": "2019-08-24T14:15:22Z",
"status": "string",
"email": "user@example.com",
"userData": {
"firstName": "string",
"lastName": "string",
"countryCode": "string",
"province": "string"
},
"loanData": {
"term": 0,
"amount": 0,
"amountToCustomer": 0,
"originationFeeRate": 0,
"originationFeeAmount": 0,
"baseLTV": 0,
"repaymentType": "interest_only",
"countryCode": "string",
"province": "string",
"payment": 0,
"apr": 0,
"interestRate": 0,
"accountType": "business",
"loanAsset": "string"
}
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| page | integer | false | none | none |
| limit | integer | false | none | none |
| totalRecords | integer | false | none | none |
| hasMore | boolean | false | none | none |
| records | [object] | false | none | none |
| » id | string(uuid) | false | none | none |
| » createdAt | string(date-time) | false | none | none |
| » submittedAt | string(date-time) | false | none | none |
| » expiresAt | string(date-time) | false | none | none |
| » status | string | false | none | none |
| string(email) | false | none | none | |
| » userData | object | false | none | none |
| »» firstName | string | true | none | none |
| »» lastName | string | true | none | none |
| »» countryCode | string | true | none | none |
| »» province | string | true | none | none |
| » loanData | object | false | none | none |
| »» term | integer | true | none | none |
| »» amount | number | true | none | none |
| »» amountToCustomer | number | true | none | none |
| »» originationFeeRate | number | true | none | none |
| »» originationFeeAmount | number | true | none | none |
| »» baseLTV | number | true | none | none |
| »» repaymentType | string | true | none | none |
| »» countryCode | string | true | none | none |
| »» province | string | true | none | none |
| »» payment | number | true | none | none |
| »» apr | number | true | none | none |
| »» interestRate | number | true | none | none |
| »» accountType | string | true | none | none |
| »» loanAsset | string | true | none | none |
Enumerated Values
| Property | Value |
|---|---|
| repaymentType | interest_only |
| repaymentType | principal_and_interest |
| repaymentType | financed_interest |
| accountType | business |
| accountType | personal |
GetTermLTVOptionsResponse
{
"records": [
{
"term": 0,
"ltv": 0,
"apr": 0
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| records | [object] | true | none | none |
| » term | number | true | none | none |
| » ltv | number | true | none | none |
| » apr | number | true | none | none |
InvalidRequestResponse
{
"errors": [
{
"keyError": "string",
"message": "string"
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| errors | [object] | false | none | none |
| » keyError | string | false | none | none |
| » message | string | false | none | none |
ConflictServerErrorResponse
{
"message": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| message | string | false | none | none |
InternalServerErrorResponse
{
"message": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| message | string | false | none | none |
NoContentResponse
null
Properties
None
CreateWebhookRequest
{
"subscription": "string",
"callbackURL": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| subscription | string | true | none | none |
| callbackURL | string | true | none | none |
WebhookResponse
{
"id": "string",
"subject": "string",
"action": "string",
"callbackURL": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | string | false | none | none |
| subject | string | false | none | none |
| action | string | false | none | none |
| callbackURL | string | false | none | none |
WebhookOptionsResponse
[
"string"
]
Properties
None
WebhooksArrayResponse
[
{
"id": "string",
"subject": "string",
"action": "string",
"callbackURL": "string"
}
]
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | string | false | none | none |
| subject | string | false | none | none |
| action | string | false | none | none |
| callbackURL | string | false | none | none |
FullMerchantRequest
{
"name": "string",
"DBA": "string",
"taxId": "string",
"industrySector": "string",
"country": "string",
"address": "string",
"city": "string",
"state": "string",
"zip": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | true | none | none |
| DBA | string | true | none | none |
| taxId | string | true | none | none |
| industrySector | string | true | none | none |
| country | string | true | none | none |
| address | string | true | none | none |
| city | string | true | none | none |
| state | string | true | none | none |
| zip | string | true | none | none |
FullMerchantResponse
{
"name": "string",
"DBA": "string",
"taxId": "string",
"industrySector": "string",
"country": "string",
"address": "string",
"city": "string",
"state": "string",
"zip": "string",
"createdAt": "2019-08-24T14:15:22Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | true | none | none |
| DBA | string | true | none | none |
| taxId | string | true | none | none |
| industrySector | string | true | none | none |
| country | string | true | none | none |
| address | string | true | none | none |
| city | string | true | none | none |
| state | string | true | none | none |
| zip | string | true | none | none |
| createdAt | string(date-time) | true | none | none |
PartialMerchant
{
"name": "string",
"DBA": "string",
"taxId": "string",
"industrySector": "string",
"country": "string",
"address": "string",
"city": "string",
"state": "string",
"zip": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | false | none | none |
| DBA | string | false | none | none |
| taxId | string | false | none | none |
| industrySector | string | false | none | none |
| country | string | false | none | none |
| address | string | false | none | none |
| city | string | false | none | none |
| state | string | false | none | none |
| zip | string | false | none | none |
ActiveLoanResponse
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"ltv": "string",
"loanValue": "d305addc-6c03-438d-a784-b42a42937545",
"loanAsset": "string",
"apr": "string",
"interestRate": "string",
"repaymentType": "interest_only",
"payment": "string",
"status": "string",
"riskStatus": "Safe",
"amortizationInfo": {
"startDate": "2019-08-24T14:15:22Z",
"term": "string",
"beginningBalance": "string",
"currentBalance": "string",
"interestRate": "string",
"principalPaid": "string",
"interestPaid": "string",
"feesPaid": "string",
"interestBalance": "string",
"remainingInterest": "string",
"principalBalance": "string",
"nextPaymentDate": "string",
"nextPaymentAmount": "string",
"lastPaymentDate": "string",
"lastPaymentAmount": "string"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | string(uuid) | true | none | none |
| ltv | string | true | none | none |
| loanValue | string(uuid) | true | none | none |
| loanAsset | string | true | none | none |
| apr | string | true | none | none |
| interestRate | string | true | none | none |
| repaymentType | string | true | none | none |
| payment | string | true | none | none |
| status | string | true | none | none |
| riskStatus | string | false | none | none |
| amortizationInfo | object | false | none | none |
| » startDate | string(date-time) | false | none | none |
| » term | string | false | none | none |
| » beginningBalance | string | false | none | none |
| » currentBalance | string | false | none | none |
| » interestRate | string | false | none | none |
| » principalPaid | string | false | none | none |
| » interestPaid | string | false | none | none |
| » feesPaid | string | false | none | none |
| » interestBalance | string | false | none | none |
| » remainingInterest | string | false | none | none |
| » principalBalance | string | false | none | none |
| » nextPaymentDate | string | false | none | none |
| » nextPaymentAmount | string | false | none | none |
| » lastPaymentDate | string | false | none | none |
| » lastPaymentAmount | string | false | none | none |
Enumerated Values
| Property | Value |
|---|---|
| repaymentType | interest_only |
| repaymentType | principal_and_interest |
| repaymentType | financed_interest |
| riskStatus | Safe |
| riskStatus | Warning |
| riskStatus | MarginCall |
| riskStatus | FinalNotice |
| riskStatus | Liquidation |