Loans (1.0)

Download OpenAPI specification:Download

Loan servicing

Retrieve a loan schedule

Returns the schedule of the loan specified in the request URL. The loan schedule includes the full details of a loan, such as loan balance, fees, penalities, interests, and all past, present, and future installments of the loan.

Request
Security:
path Parameters
loan_id
required
string

The ID of the loan for which the schedule should be retrieved.

Responses
200

Repayment Schedule

404

Not Found

409

Conflict

get/v1/loans/{loan_id}/repayment_schedule
Request samples
curl -i -X GET \
  'https://api.solaris-sandbox.de/v1/loans/{loan_id}/repayment_schedule'
Response samples
application/json
{
  • "loan_balances": {
    },
  • "installments": [
    ]
}

Retrieve the history of repayments of a loan

Returns the history of all past repayments the customer made in relation to the loan specified in the request URL. This includes all executed SEPA Direct Debits (SDD) and/or SEPA Credit Transfers (SCT).

Request
Security:
path Parameters
loan_id
required
string

The ID of the loan for which the repayment history should be retrieved.

Responses
200

Repayment history

404

Not Found

get/v1/loans/{loan_id}/repayment_history
Request samples
curl -i -X GET \
  'https://api.solaris-sandbox.de/v1/loans/{loan_id}/repayment_history'
Response samples
application/json
{
  • "repayment_history": [
    ]
}

Retrieve a loan

Returns the details of the loan specified in the request URL.

Request
Security:
path Parameters
loan_id
required
string

The ID of the loan to be retrieved.

Responses
200

Loan

404

Not Found

get/v1/loans/{loan_id}
Request samples
curl -i -X GET \
  'https://api.solaris-sandbox.de/v1/loans/{loan_id}'
Response samples
application/json
{
  • "total_loan_expenses": {
    },
  • "term": 24,
  • "status_reason": "upfront_subsidy_pull_failed_collateral_account_not_set",
  • "status": "payout_issued",
  • "repayment_plan_updated_at": "2021-04-16T13:52:05Z",
  • "repayment_plan_created_at": "2020-04-16T13:52:05Z",
  • "repayment_begin_date": "2020-05-16",
  • "reference": "string",
  • "recipient_iban": "DE88888881010987654321",
  • "purpose": "Buying a car.",
  • "person_id": "547a870b2c8461a3104559369d09265dcper",
  • "payout_date": "2020-05-16",
  • "overdue_amount": {
    },
  • "monthly_payment": {
    },
  • "maturity_date": "2022-05-16",
  • "loan_account_id": "adc123a45d6d7cf8fbfeed537ba919d5cacc",
  • "loan_account_iban": "DE72110101014351836685",
  • "interest_start_date": "2021-06-16",
  • "interest_rate": 0.0499,
  • "id": "c13447d659db4cdcb450b977f8f25c57cloa",
  • "effective_interest_rate": 0.0511,
  • "created_at": "2021-06-16T10:22:38",
  • "billing_account_id": "1d0e52af0a62b4b44d8c54a87a7fc6a7cacc",
  • "billing_account_iban": "DE72110101014351836685",
  • "annual_percentage_rate": 0,
  • "amount": {
    }
}

Index loans

Returns an array containing all loans for all of your customers.

Request
Security:
query Parameters
page[number]
integer

Specifies the number of pages of results to return.

page[size]
integer

Specifies the size of each page of results.

filter[credit_reference_id]
string

Filters the returned loans by a specific credit_reference_id.

Responses
200

LoanEngine.ListLoansResponse

403

Forbidden

get/v1/loans
Request samples
curl -i -X GET \
  'https://api.solaris-sandbox.de/v1/loans?page%5Bnumber%5D=0&page%5Bsize%5D=0&filter%5Bcredit_reference_id%5D=string'
Response samples
application/json
[
  • {
    }
]

Retrieve a credit line mandate

Returns a signed mandate for a credit line.

Request
Security:
path Parameters
credit_line_id
required
string

The ID of the credit line associated with the signed mandate.

Responses
200

Mandate

404

Not Found

get/v1/credit_lines/{credit_line_id}/active_mandate
Request samples
curl -i -X GET \
  'https://api.solaris-sandbox.de/v1/credit_lines/{credit_line_id}/active_mandate'
Response samples
application/json
{
  • "signature_date": "2020-08-24",
  • "name": "Max Mustermann",
  • "mandate_id": "LOY327JAFM3V3M",
  • "iban": "DE92370601930002130041",
  • "bic_code": "SOBKDEBBXXX"
}

(DEPRECATED) Retrieve the repayment plan of a loanDeprecated

Returns the repayment plan of the loan specified in the request URL. This endpoint is deprecated. Please use the repayment schedule endpoint instead.

Request
Security:
path Parameters
loan_id
required
string

The ID of the loan for which the repayments to be returned.

Responses
200

Repayments

404

Not Found

get/v1/loans/{loan_id}/repayment_plan
Request samples
curl -i -X GET \
  'https://api.solaris-sandbox.de/v1/loans/{loan_id}/repayment_plan'
Response samples
application/json
{
  • "updated_at": "2021-04-16T13:52:05Z",
  • "repayments": [
    ],
  • "created_at": "2020-04-16T13:52:05Z"
}

Loan dunning cases

Index the notifications of a dunning case

Returns the notifications related to a dunning case.

Request
Security:
path Parameters
dunning_case_id
required
string

The ID of the dunning case for which the notifications should be retrieved.

Responses
200

LoanEngine.V1.ListDunningCaseNotificationsResponse

400

Bad Request

403

Forbidden

get/v1/dunning_cases/{dunning_case_id}/notifications
Request samples
curl -i -X GET \
  'https://api.solaris-sandbox.de/v1/dunning_cases/{dunning_case_id}/notifications'
Response samples
application/json
[
  • {
    }
]

Retrieve a dunning case

Returns the dunning case with the ID specified in the request URL.

Request
Security:
path Parameters
dunning_case_id
required
string

The ID of the dunning case to be retrieved.

Responses
200

Dunning Case

403

Forbidden

404

Not Found

get/v1/dunning_cases/{dunning_case_id}
Request samples
curl -i -X GET \
  'https://api.solaris-sandbox.de/v1/dunning_cases/{dunning_case_id}'
Response samples
application/json
{
  • "total_overdue_amount": {
    },
  • "strategy": "consumer",
  • "status": "new",
  • "person_id": "547a870b2c8461a3104559369d09265dcper",
  • "overdue_installment_amount": {
    },
  • "loan_id": "c13447d659db4cdcb450b977f8f25c57cloa",
  • "loan_account_id": "adc123a45d6d7cf8fbfeed537ba919d5cacc",
  • "last_sddr_date": "2021-09-01",
  • "id": "41c8d48c-4b73-4f5b-a7d0-5778e041b7c2",
  • "fees": {
    },
  • "deadline": "2021-09-01",
  • "credit_reference_id": "string",
  • "billing_account_id": "1d0e52af0a62b4b44d8c54a87a7fc6a7cacc"
}

Index dunning cases

Returns an array containing all the dunning cases for all of your customers.

Request
Security:
query Parameters
page[number]
integer

Specifies the number of pages of results to return.

page[size]
integer

Specifies the size of each page of results.

filter[loan_account_id]
string

Filters the returned dunning cases by a specific loan_account_id.

filter[person_id]
string

Filters the returned dunning cases by a specific person ID.

filter[status]
string

Filters the returned dunning cases by a specific status.

Enum: "new" "dunning" "pre_termination" "terminated" "closed"
Responses
200

LoanEngine.V1.ListDunningCasesResponse

400

Bad Request

403

Forbidden

get/v1/dunning_cases
Request samples
curl -i -X GET \
  'https://api.solaris-sandbox.de/v1/dunning_cases?page%5Bnumber%5D=0&page%5Bsize%5D=0&filter%5Bloan_account_id%5D=string&filter%5Bperson_id%5D=string&filter%5Bstatus%5D=new'
Response samples
application/json
[
  • {
    }
]

Consumer Loan

Create anonymous loan offer

Generates a non-binding anonymous loan offer for a customer based on their self-declared and unverified financial information.

Request
Security:
Request Body schema: application/json

The anonymous offer attributes

requested_loan_term
required
integer

The number of months over which the loan will be repaid as requested by the customer.

required
object

The loan amount requested by the customer.

requested_interest_rate
number or null <float>

The requested monthly interest rate to apply to the loan.

object or null

The requested equated monthly installment (EMI) the customer wants to pay each month to repay the loan principal and interest (in EUR).

required
object

The amount of the private insurance the customer pays monthly.

partner_reference_number
string or null

Your internal reference number for the customer.

number_of_kids
integer or null

The number of kids the customer has.

number_of_dependents
required
integer

The number of dependents the customer has.

required
object

The customer's net income amount in EUR after tax deduction.

required
object

The customer's living monthly expenses, e.g., rent or mortgage, utilities, health insurance, etc.

living_situation
required
string

The customer's living situation.

Enum: "LIVING_WITH_PARENTS" "LIVING_IN_RENTED_HOUSE" "LIVING_IN_OWN_HOUSE"
is_joint_application
boolean or null

A field to indicate whether the application is a joint application or not.

object or null

The customer's existing debt repayments (in EUR) (excluding mortgage payments).

object or null

Any additional costs the customer incurs on a regular basis.

Responses
201

Anonymous Offer

400

Bad Request

post/v1/anonymous_consumer_loan_offers
Request samples
application/json
{
  • "requested_loan_term": 24,
  • "requested_loan_amount": {
    },
  • "requested_interest_rate": 0.02,
  • "requested_emi": {
    },
  • "private_insurance_amount": {
    },
  • "partner_reference_number": "string",
  • "number_of_kids": 0,
  • "number_of_dependents": 0,
  • "net_income_amount": {
    },
  • "living_situation_amount": {
    },
  • "living_situation": "LIVING_IN_RENTED_HOUSE",
  • "is_joint_application": true,
  • "existing_credit_repayment_excluding_mortgage": {
    },
  • "additional_costs": {
    }
}
Response samples
application/json
{
  • "offer": {
    },
  • "loan_decision": "OFFERED"
}

Retrieve two thirds rates

Returns the 2/3 interest rate for different loan terms for an anonymous loan offer.

Request
Security:
Responses
200

Two Thirds Rates

403

Forbidden

404

Not Found

get/v1/consumer_loans/two_thirds_rates
Request samples
curl -i -X GET \
  https://api.solaris-sandbox.de/v1/consumer_loans/two_thirds_rates
Response samples
application/json
{
  • "two_thirds_rate": {
    }
}

Create consumer loan application

Creates a consumer loan application and assigns it to the person with the person_id specified in the request URL. The payload of the request includes all the required financial information and account data about the customer, which the credit scorer uses to initiate a series of credit checks to determine the customer's credit risk and eligibility.

Request
Security:
path Parameters
person_id
required
string

The person_id of the customer applying for the loan.

Request Body schema: application/json

The application attributes

seller
string or null

The name of the seller of the financed good.

payout_description
string or null

Additional details around the loan payout.

solarisbank_scoring
string or null

Solaris' score for the customer.

required
object

The amount of the private insurance the customer pays monthly.

recipient_iban
string or null

The IBAN of the recipient's account. This account will be debited with a SEPA Direct Debit (SDD) in the amount of the loan's monthly installment. Unless stated otherwise in your configurations, the loan will also be paid out to this account.

payout_account_name
string or null

The name of the payout account holder (i.e., the account to which the loan will be paid out). You may only use this field if your configurations allow it via allow_loan_specific_payout_account_ibans.

object or null

The customer's existing debt repayments (in EUR) (excluding mortgage payments).

object or null
Deprecated

The customer's mortgage payments (in EUR).

requested_interest_rate
number or null <float>

The requested monthly interest rate to apply to the loan.

requested_loan_term
required
integer

The number of months over which the loan will be repaid.

payout_account_iban
string or null

The IBAN (different from recipient_iban) to which the loan will be paid out. You may only use this field if your configurations allow it via allow_loan_specific_payout_account_ibans.

moved_in_last_two_years
required
boolean

Field to indicate whether the customer has moved and changed addresses in the last two years.

credit_record_id
required
string

The unique ID of a customer's credit record.

loan_purpose
required
string

The purpose of the loan.

delayed_payout_strategy
string
Default: "none"

Field to indicate the payout strategy to be applied to the loan. If set to none, then the loan payout will happen automatically.

Enum: "none" "after_revocation"
living_situation
required
string

The customer's living situation.

Enum: "LIVING_WITH_PARENTS" "LIVING_IN_RENTED_HOUSE" "LIVING_IN_OWN_HOUSE"
partner_score
string or null

The score assigned to the customer by your internal scoring flow.

financed_good
string or null

The financed good that was purchased using the loan.

repayment_day_of_month
required
integer

The day of the month when the customer pays the loan installment.

Enum: 1 15
number_of_dependents
required
integer

The number of dependents the customer has.

employment_since
string or null <date>

The date when the customer started their current employment.

partner_reference_number
required
string

Your internal reference number for the customer.

object or null

The cash price of the financed good (i.e., net price without financing fees, interest).

number_of_kids
integer or null

The number of kids the customer has.

required
object

The loan amount requested by the customer.

is_joint_application
boolean or null

A field to indicate whether the application is a joint application or not.

employment_until
string or null <date>

The date when the customer ended an employment.

required
object

The customer's net income amount in EUR after tax deduction.

solarisbank_risk_class
integer or null

The risk class assigned to the customer by Solaris.

object or null

Any additional costs the customer incurs on a regular basis.

object or null
Deprecated

The customer's monthly rent (in EUR).

required
object

The customer's living monthly expenses, i.e., rent or mortgage, utilities, health insurance, etc.

object or null

The requested equated monthly installment (EMI) in EUR the customer wants to pay each month to repay the loan principal and interest.

Responses
200

Application

400

Bad Request

422

Unprocessable Entity

post/v1/persons/{person_id}/consumer_loan_applications
Request samples
application/json
{
  • "seller": "string",
  • "payout_description": "string",
  • "solarisbank_scoring": "string",
  • "private_insurance_amount": {
    },
  • "recipient_iban": "DE92370601930002130041",
  • "payout_account_name": "string",
  • "existing_credit_repayment_excluding_mortgage": {
    },
  • "mortgage": {
    },
  • "requested_interest_rate": 0.02,
  • "requested_loan_term": 0,
  • "payout_account_iban": "string",
  • "moved_in_last_two_years": true,
  • "credit_record_id": "fbb7d15fa4c54ba0b077592665ef04a4ccrd",
  • "loan_purpose": "Buying a car.",
  • "delayed_payout_strategy": "none",
  • "living_situation": "LIVING_IN_RENTED_HOUSE",
  • "partner_score": "string",
  • "financed_good": "string",
  • "repayment_day_of_month": 1,
  • "number_of_dependents": 0,
  • "employment_since": "2019-08-24",
  • "partner_reference_number": "string",
  • "cash_price": {
    },
  • "number_of_kids": 0,
  • "requested_loan_amount": {
    },
  • "is_joint_application": true,
  • "employment_until": "2019-08-24",
  • "net_income_amount": {
    },
  • "solarisbank_risk_class": 0,
  • "additional_costs": {
    },
  • "rent": {
    },
  • "living_situation_amount": {
    },
  • "requested_emi": {
    }
}
Response samples
application/json
{
  • "offer": {
    },
  • "loan_decision": "OFFERED",
  • "id": "9b3147c5498b405d9402630bc308ad0ecofr",
  • "customer_category": "GREEN"
}

Retrieve consumer loan application

Returns the current status and details of an existing consumer loan application. Additionally, you can subscribe to the webhook event CONSUMER_LOAN_APPLICATION to receive status updates on the application.

Request
Security:
path Parameters
person_id
required
string

The person_id of the customer applying for the loan.

application_id
required
string

The unique ID of the customer's loan application.

Responses
200

Application

404

Not Found

get/v1/persons/{person_id}/consumer_loan_applications/{application_id}
Request samples
curl -i -X GET \
  'https://api.solaris-sandbox.de/v1/persons/{person_id}/consumer_loan_applications/{application_id}'
Response samples
application/json
{
  • "status_description": "string",
  • "status": "esign_pending",
  • "skip_account_snapshot": true,
  • "signing_id": "7c63600ddddec4f2668893af39c1b814csig",
  • "seller": "string",
  • "payout_description": "string",
  • "loan_id": "string",
  • "id": "108787ede6b743dcbe0c3398bc4a6ce8clap",
  • "financed_good": "string",
  • "delayed_payout_strategy": "none",
  • "cash_price": {
    },
  • "approximate_total_loan_expenses": {
    }
}

Skip the account snapshot process for a consumer loan application

Skips the processing of an account snapshot in relation to the consumer loan application specified in the request URL.

Request
Security:
path Parameters
person_id
required
string

The person_id of the customer applying for the loan.

application_id
required
string

The unique ID of the customer's loan application.

Request Body schema: application/json

Account Snapshot skip

object (ConsumerLoan.SkipAccountSnapshotRequest)
Responses
204

No Content

404

Not Found

409

Application state cannot be changed to approved

put/v1/persons/{person_id}/consumer_loan_applications/{application_id}/skip_account_snapshot
Request samples
application/json
{ }
Response samples
application/json
{
  • "title": "Model Not Found",
  • "status": "404",
  • "id": "a95f2aaf-4e0c-4d49-8021-8a16a884ed86",
  • "detail": "Couldn't find 'Account' for id 'DE24112233445566'.",
  • "code": "model_not_found"
}

Link an account snapshot to a consumer loan application

Links a customer's account snapshot to their consumer loan application. You must include the account_snapshot_id in the request body. This call triggers the credit scorer to complete the final verification step.

Request
Security:
path Parameters
person_id
required
string

The person_id of the customer applying for the loan.

application_id
required
string

The unique ID of the customer's loan application.

Request Body schema: application/json

Account Snapshot link

account_snapshot_id
required
string

The unique ID of a customer's account snapshot.

Responses
204

No Content

404

Not Found

409

Application state cannot be changed to account_snapshot_verification

put/v1/persons/{person_id}/consumer_loan_applications/{application_id}/account_snapshot
Request samples
application/json
{
  • "account_snapshot_id": "2a9fbb2fc5be45f7b8ca782c45715576snap"
}
Response samples
application/json
{
  • "title": "Model Not Found",
  • "status": "404",
  • "id": "a95f2aaf-4e0c-4d49-8021-8a16a884ed86",
  • "detail": "Couldn't find 'Account' for id 'DE24112233445566'.",
  • "code": "model_not_found"
}

Upload the purchase contract related to the financed good

Uploads the purchase contract of the financed good purchased with the loan. You must include the details of the signature position in the payload.

Request
Security:
path Parameters
person_id
required
string

The person_id of the customer applying for the loan.

application_id
required
string

The unique ID of the customer's loan application.

Request Body schema: application/json

Purchase contract attributes

required
object
file
required
string

The contract file (Base64 encoded).

Responses
204

No Content

404

Not Found

put/v1/persons/{person_id}/consumer_loan_applications/{application_id}/upload_purchase_contract
Request samples
application/json
{
  • "signature_position": {
    },
  • "file": "string"
}
Response samples
application/json
{
  • "errors": [
    ]
}

Generate a subsidized offer for a consumer loan

Creates a subsidized loan offer with a reduced interest rate from the original offer. You must add the required interest rate in the request body to receive the new offer.

Request
Security:
path Parameters
person_id
required
string

The person_id of the customer applying for the loan.

application_id
required
string

The unique ID of the customer's loan application.

offer_id
required
string

The unique ID of a loan offer.

Request Body schema: application/json

Subsidized offer attributes

interest_rate
required
number <float>

The requested reduced interest rate to be applied to the loan offer.

Responses
201

Subsidized loan offer

400

Bad Request

404

Not Found

post/v1/persons/{person_id}/consumer_loan_applications/{application_id}/offers/{offer_id}/subsidize
Request samples
application/json
{
  • "interest_rate": 0.02
}
Response samples
application/json
{
  • "type": "original",
  • "subsidized": false,
  • "monthly_installment": {
    },
  • "loan_term": 36,
  • "loan_amount": {
    },
  • "interest_rate": 0.12,
  • "id": "105a0fa505f44afea4b433d170b83d87cofr",
  • "effective_interest_rate": 0.13,
  • "approximate_total_loan_expenses": {
    },
  • "annual_percentage_rate": 0.13
}

Download the pre-contractual information for consumer loan

Downloads a SECCI form as a PDF, which is the overview of the final offer and the contract. You must share it with the customer to review it prior to the identification and e-signing process.

Request
Security:
path Parameters
person_id
required
string

The person_id of the customer applying for the loan.

application_id
required
string

The unique ID of the customer's loan application.

offer_id
required
string

The unique ID of a loan offer.

Responses
200

The binary of the pre-contractual information (SECCI)

get/v1/persons/{person_id}/consumer_loan_applications/{application_id}/offers/{offer_id}/pre_contract
Request samples
curl -i -X GET \
  'https://api.solaris-sandbox.de/v1/persons/{person_id}/consumer_loan_applications/{application_id}/offers/{offer_id}/pre_contract'

Download the final contract for a consumer loan

Generates the final contract for a consumer loan, which the customer must e-sign during the identification and e-signing process.

Request
Security:
path Parameters
person_id
required
string

The person_id of the customer applying for the loan.

application_id
required
string

The unique ID of the customer's loan application.

offer_id
required
string

The unique ID of a loan offer.

Responses
200

The binary of the offer contract

get/v1/persons/{person_id}/consumer_loan_applications/{application_id}/offers/{offer_id}/contract
Request samples
curl -i -X GET \
  'https://api.solaris-sandbox.de/v1/persons/{person_id}/consumer_loan_applications/{application_id}/offers/{offer_id}/contract'

Create a consumer loan

Creates a loan and issues the loan payout to the customer's specified IBAN. The status of the consumer loan application will change to loan_created after calling this endpoint.

Request
Security:
path Parameters
person_id
required
string

The person_id of the customer to whom the loan should be paid out.

application_id
required
string

The unique ID of the customer's loan application.

Request Body schema: application/json

The application attributes

object (ConsumerLoan.CreateLoanRequest)
Responses
202

Loan

put/v1/persons/{person_id}/consumer_loan_applications/{application_id}/consumer_loan
Request samples
application/json
{ }
Response samples
application/json
{
  • "id": "6c8b5faf3c2d4a5682c5c80ef7382387cloa"
}