API Documentation

Table of Contents

1. Applications Methods GET applications POST applicationsIndirect PATCH applicationsIndirect DELETE applications Properties JSON Representation 2. Applicants Methods GET applicantsIndirect POST applicantsIndirect PATCH applicantsIndirect DELETE applicantsIndirect Properties JSON Representation 3. Applicant Income Methods GET applicantIncomesIndirect POST applicantIncomesIndirect PATCH applicantIncomesIndirect DELETE applicantIncomesIndirect Properties JSON Representation 4. Applicant Expenditures Methods GET applicantExpenditures POST applicantExpendituresIndirect PATCH applicantExpendituresIndirect DELETE applicantExpenditures Properties JSON Representation 5. Applicant Employment Methods GET applicantEmployments POST applicantEmploymentsIndirect PATCH applicantEmploymentsIndirect DELETE applicantEmployments Properties JSON Representation 6. Applicant ID Documents Methods GET applicantIDDocuments POST applicantIDDocumentsIndirect PATCH applicantIDDocumentsIndirect DELETE applicantIDDocuments Properties JSON Representation 7. Assets Methods GET assets POST assetsIndirect PATCH assetsIndirect DELETE assets Properties JSON Representation 8. Contract Services Methods GET contractAssetServices POST contractAssetServicesIndirect PATCH contractAssetServicesIndirect DELETE contractAssetServices Properties JSON Representation 9. Contract Insurances Methods GET contractAssetInsurances POST contractAssetInsurancesIndirect PATCH contractAssetInsurancesIndirect DELETE contractAssetInsurances Properties JSON Representation 10. Asset Options Methods GET contractAssetOptions POST contractAssetOptionsIndirect PATCH contractAssetOptionsIndirect DELETE contractAssetOptions Properties JSON Representation 11. Schedule Methods GET schedules POST schedulesIndirect PATCH schedulesIndirect DELETE schedules Properties JSON Representation 12. Schedule Lines Methods GET scheduleLines POST scheduleLinesIndirect PATCH scheduleLinesIndirect DELETE scheduleLines Properties JSON Representation 13. Guarantees Methods GET contractGuarantees POST contractGuaranteesIndirect PATCH contractGuaranteesIndirect DELETE contractGuarantees Properties JSON Representation 14. Contract Balances Methods GET contractBalances Properties JSON Representation 15. Documents Methods GET documents POST documents PATCH documents DELETE documents Properties JSON Representation 16. Full Contract Example JSON Representation

SOFT4Leasing API Documentation

Comprehensive Guide to SOFT4Leasing API endpoints management.

This guide serves as a detailed resource for developers, integrators, and technical teams seeking to understand and interact with the range of API endpoints related to SOFT4Leasing applications.

Within these pages, you will find a structured overview of available operations for handling application data, including the retrieval and creation of records. Each endpoint is meticulously described to provide clarity on its intended use, required HTTP methods, expected return types, and operational context.

Soft4Leasing documentation is designed to facilitate seamless integration, offering practical usage guidelines and clear descriptions to ensure you can implement and leverage the APIs with confidence and efficiency. Whether you are building new solutions or maintaining existing systems, this resource aims to support your work at every step.

Should you require further clarification or encounter any challenges, contact our Soft4Leasing technical team. We invite you to explore the full capabilities of the Application Management API and harness its features to streamline your workflow.

1. Applications

This request is intended to provide documentation for API methods related to managing application records. It outlines available operations, such as retrieving and creating application data, by specifying the HTTP methods, return types, and brief descriptions of each endpoint.

Methods

Method Return Type Description

GET applications

 

applications

 

Retrieves an application record
POST applicationsIndirect applicationsIndirect Creates a new application record
PATCH applicationsIndirect applicationsIndirect Updates an existing application record

DELETE applications

 

applications

 

Deletes an application record

GET applications

Description

Retrieves an existing lease application record from Business Central.

HTTP Request

GET https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/applications({applicationId})

Request Headers

Header Value
Authorization NTLM, OAuth2. Required.
Accept application/json

Request Body

None.

Response

Returns a 200 OK status code and a JSON object representing the application record.

Example Response

JSON

{
"systemId": "a1b2c3d4-e5f6-7890-abcd-1234567890ef",
"contractNo": "APP-2025-001",
"status": "Application",
"customerNo": "CUST-1001",
"email": "john.doe@example.com"
}

POST applicationsIndirect

Description

Creates a new lease application record in Business Central.

HTTP Request

POST https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/applicationsIndirect

Request Headers

Header Value
Authorization NTLM, OAuth2. Required.
Content-Type application/json

Request Body

Provide a JSON object with application data.

JSON

{
"contractNo": "APP-2025-001",
"contractDate": "2025-09-18",
"status": "Application",
"financialProduct": "LEASE-STD",
"customerNo": "CUST-1001",
"email": "john.doe@example.com"
}

Response

Returns a 201 Created status code and the created applicationsIndirect object.

PATCH applicationsIndirect

Description

Updates an existing lease application record.

HTTP Request

PATCH https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/applicationsIndirect({applicationId})

Request Headers

Header Value
Authorization NTLM, OAuth2. Required.
Content-Type application/json

Request Body

Provide only the fields to be updated.

JSON

{
"status": "Contract",
"contractDate": "2025-09-20"
}

Response

Returns a 200 OK status code.

DELETE applications

Description

Deletes an existing lease application record.

HTTP Request

DELETE https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/applications({applicationId})

Request Headers

Header Value
Authorization NTLM, OAuth2. Required.

Request Body

None.

Response

Returns a 204 No Content status code if deletion is successful.

Properties

Name Type Description
systemId GUID Unique system identifier
status Quote, Application, Contract, Closed Contract, Withdrawn Application Contract status (Quote, Application, Contract, Closed)
statusCode Code[20] Configurable sub-status
contractNo Code[20] Contract number
contractDate Date Date of the contract
newUsedAsset Option Indicates if asset is new or used
dateofDeliveryCertificate Date Delivery certificate date
dateofPurchaseContract Date Purchase contract date
dateofContractInception Date Contract inception date
financialProduct Code[20] Financial product code
individualBusiness Individual, Business Indicates individual or business
customerNo Code[20] Customer number
CCY Code[10] Currency code
currencyFactorCCY Decimal Currency conversion factor
creditLineNo Code[20] Credit line number
creditLinePhaseNo Code[20] Credit line phase number
masterContractNo Code[20] Master contract reference
refinanceofContrNo Code[20] Refinance contract reference
legalForm Option Legal form of the entity
title Code[10] Title code
firstName Text[30] First name
middleName Text[30] Middle name
surname Text[30] Surname
gender Option Gender
birthDate Date Birth date
maritalStatus Option Marital status
driverLicenseNo Code[20] Driver license number
nationality Option Nationality
pep Boolean Politically exposed person flag
businessName Text[100] Business name
tradingName Text[100] Trading name
industryGroup Code[10] Industry group
natureOfBusiness Text[50] Nature of business
noofEmployees Integer Number of employees
registrationNo Code[20] Registration number
contactPerson Text[50] Contact person
address Text[100] Address line 1
countryRegionCode Code[10] Country/Region code
county Text[30] County
city Text[30] City
postCode Code[10] Postal code
email Text[100] Email address
phoneNo Text[30] Phone number
privacyConsent Boolean Privacy consent flag
marketingConsent Boolean Marketing consent flag
paymentMethodCode Code[10] Payment method code
ddNameofAccount Text[100] Direct debit account name
ddBankAccountNo Code[20] Direct debit bank account number
ddBankName Text[100] Direct debit bank name
ddBankBranchNo Code[20] Direct debit bank branch number
originatorNo Code[20] Originator number
supplierNo Code[20] Supplier number
supplierSalespersonNo Code[20] Supplier salesperson number
origSalespersonNo Code[20] Original salesperson number
salesOfficerCode Code[20] Sales officer code

JSON Representation

{
"systemId": "GUID",
"status": "Enum",
"statusCode": "Code[20]",
"contractNo": "Code[20]",
"contractDate": "Date",
"newUsedAsset": "Option",
"dateofDeliveryCertificate": "Date",
"dateofPurchaseContract": "Date",
"dateofContractInception": "Date",
"financialProduct": "Code",
"individualBusiness": "Option",
"customerNo": "Code",
"CCY": "Code",
"currencyFactorCCY": "Decimal",
"creditLineNo": "Code",
"creditLinePhaseNo": "Code",
"masterContractNo": "Code",
"refinanceofContrNo": "Code[20]",
"legalForm": "Option",
"title": "Code",
"firstName": "Text[30]",
"middleName": "Text[30]",
"surname": "Text[30]",
"gender": "Option",
"birthDate": "Date",
"maritalStatus": "Option",
"driverLicenseNo": "Code",
"nationality": "Option",
"pep": "Boolean",
"businessName": "Text[100]",
"tradingName": "Text[100]",
"industryGroup": "Code[10]",
"natureOfBusiness": "Text[50]",
"noofEmployees": "Integer",
"registrationNo": "Code",
"contactPerson": "Text",
"address": "Text",
"countryRegionCode": "Code",
"county": "Text",
"city": "Text",
"postCode": "Code",
"email": "Text",
"phoneNo": "Text",
"privacyConsent": "Boolean",
"marketingConsent": "Boolean",
"paymentMethodCode": "Code",
"ddNameofAccount": "Text",
"ddBankAccountNo": "Code",
"ddBankName": "Text",
"ddBankBranchNo": "Code",
"originatorNo": "Code",
"supplierNo": "Code",
"supplierSalespersonNo": "Code",
"origSalespersonNo": "Code",
"salesOfficerCode": "Code"
}

 

2. Applicants


Methods

Method Return Type Description
GET applicants applicants Retrieves an applicant record
POST applicantsIndirect applicantsIndirect Creates a new applicant record
PATCH applicantsIndirect applicantsIndirect Updates an existing applicant record
DELETE applicants applicants Deletes an applicant record

 

GET applicantsIndirect

Description: Retrieves an applicant record from Business Central.

HTTP Request:

GET https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/applicantsIndirect({systemId})

Headers:

Header Value
Authorization NTLM, OAuth2. Required.
Accept application/json

Request Body: None

Response:
Returns 200 OK and a JSON object of the applicantsIndirect record.

Example Response:

JSON

{
"systemId": "a1b2c3d4-e5f6-7890-abcd-1234567890ef",
"contractNo": "APP-2025-001",
"firstName": "John",
"surname": "Doe",
"email": "john.doe@example.com"
}

POST applicantsIndirect

Description: Creates a new applicant record.

HTTP Request:

POST https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/applicantsIndirect

Headers:

Header Value
Authorization NTLM, OAuth2. Required.
Content-Type application/json

Request Body:

JSON

{
"contractNo": "APP-2025-001",
"firstName": "John",
"surname": "Doe",
"email": "john.doe@example.com",
"individualBusiness": "Individual",
"nationality": "LT"
}

Response:
Returns 201 Created and the created applicantsIndirect object.

PATCH applicantsIndirect

Description: Updates an existing applicant record.

HTTP Request:

PATCH https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/applicantsIndirect({systemId})

Headers:

Header Value
Authorization NTLM, OAuth2. Required.
Content-Type application/json

Request Body:

JSON

{
"surname": "Smith",
"email": "john.smith@example.com"
}

Response:
Returns 200 OK and the updated applicantsIndirect object.

DELETE applicantsIndirect

Description: Deletes an applicant record.

HTTP Request:

DELETE https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/applicantsIndirect({systemId})

Headers:

Header Value
Authorization NTLM, OAuth2. Required.

Request Body: None

Response:
Returns 204 No Content if deletion is successful.


Properties

Name Type Description
systemId GUID Unique system identifier
contractNo Code[20] Contract number
lineNo Integer Line number in contract
contactNo Code[20] Contact number
roleInContract Code[20] Role in the contract
vatRegistrationNo Text[20] VAT registration number
firstName Text[100] First name
middleName Text[30] Middle name
surname Text[30] Surname
name Text[100] Full name
name2 Text[50] Secondary name
individualBusiness Individual,Business Indicates individual or business
registrationNo Text[20] Registration number
contactCategory Code[20] Contact category
ratingCode Code[10] Current rating code
languageCode Code[10] Language code
address Text[100] Address line 1
address2 Text[50] Address line 2
city Text[50] Suburb/Town
countryRegionCode Code[10] Country/Region code
postCode Code[20] Postal code
county Text[30] County
phoneNo Text[30] Phone number
eMail Text[80] Email address
website Text[80] Website URL
title Text[30] Title code
eSignSigner Boolean E-signature signer flag
eSignSigningOrder Integer E-signature signing order
driverLicenseNo Code[20] Driver license number
birthDate Date Birth date
gender Option Gender
education Option Education level
maritalStatus Option Marital status
noOfDependents Integer Number of dependents
permanentResident Boolean Permanent resident flag
residentialStatus Option Residential status
applicantAgeYears Integer Applicant age in years
legalForm Code[20] Legal form
legalStatus Code[20] Legal status
industryGroup Code[10] Industry group
trustName Text[50] Trust name
companyRegNo Code[20] Company registration number
companyRegDate Date Company registration date
dateEstablished Date Date established
yearsTrading Integer Years trading
totalSaleOrGrossRevenueAm Decimal Total sales or gross revenue amount
totalSaleOrGrossRevenueYr Integer Year of total sales or gross revenue
netProfitLastYear Decimal Net profit last year
noOfEmployees Integer Number of employees
contactPerson Text[50] Contact person
proprietorFirstName Text[30] Proprietor first name
proprietorLastName Text[30] Proprietor last name
proprietorContactNo Text[15] Proprietor contact number
proprietorMainFaxNo Code[15] Proprietor fax number
proprietorMobileNo Code[20] Proprietor mobile number
nationality Code[10] Nationality
capacity Decimal Financial capacity
marketingConsent Boolean Marketing consent flag
privacyConsent Boolean Privacy consent flag
pep Boolean Politically exposed person flag
depersonalized Boolean GDPR depersonalization flag
natureOfBusiness Text[50] Nature of business

 

JSON Representation

{
"systemId": "GUID",
"contractNo": "Code[20]",
"lineNo": "Integer",
"contactNo": "Code[20]",
"roleInContract": "Code[20]",
"vatRegistrationNo": "Text[20]",
"firstName": "Text[100]",
"middleName": "Text[30]",
"surname": "Text[30]",
"name": "Text[100]",
"name2": "Text[50]",
"individualBusiness": "Enum",
"registrationNo": "Text[20]",
"contactCategory": "Code[20]",
"ratingCode": "Code[10]",
"languageCode": "Code[10]",
"address": "Text[100]",
"address2": "Text[50]",
"city": "Text[50]",
"countryRegionCode": "Code[10]",
"postCode": "Code[20]",
"county": "Text[30]",
"phoneNo": "Text[30]",
"eMail": "Text[80]",
"website": "Text[80]",
"title": "Text[30]",
"eSignSigner": "Boolean",
"eSignSigningOrder": "Integer",
"driverLicenseNo": "Code[20]",
"birthDate": "Date",
"gender": "Option",
"education": "Option",
"maritalStatus": "Option",
"noOfDependents": "Integer",
"permanentResident": "Boolean",
"residentialStatus": "Option",
"applicantAgeYears": "Integer",
"legalForm": "Code[20]",
"legalStatus": "Code[20]",
"industryGroup": "Code[10]",
"trustName": "Text[50]",
"companyRegNo": "Code[20]",
"companyRegDate": "Date",
"dateEstablished": "Date",
"yearsTrading": "Integer",
"totalSaleOrGrossRevenueAm": "Decimal",
"totalSaleOrGrossRevenueYr": "Integer",
"netProfitLastYear": "Decimal",
"noOfEmployees": "Integer",
"contactPerson": "Text[50]",
"proprietorFirstName": "Text[30]",
"proprietorLastName": "Text[30]",
"proprietorContactNo": "Text[15]",
"proprietorMainFaxNo": "Code[15]",
"proprietorMobileNo": "Code[20]",
"nationality": "Code[10]",
"capacity": "Decimal",
"marketingConsent": "Boolean",
"privacyConsent": "Boolean",
"pep": "Boolean",
"depersonalized": "Boolean",
"natureOfBusiness": "Text[50]"
}

3. Applicant Income

This section describes the available API methods for managing applicant income records in Business Central. Each method is detailed below, including request structure, headers, and example payloads.

Methods

Method Return Type Description
GET applicantIncomesIndirect applicantIncomes Retrieves an applicant income record.
POST applicantIncomesIndirect applicantIncomesIndirect Creates a new applicant income record.
PATCH applicantIncomesIndirect applicantIncomesIndirect Updates an existing applicant income record.
DELETE applicantIncomesIndirect applicantIncomes Deletes an applicant income record.

 

GET applicantIncomesIndirect

Description: Retrieves an applicant income record from Business Central.

HTTP Request:

GET https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/ applicantIncomes({SystemId})

Headers:

Header Value
Authorization NTLM, OAuth2. Required.
Accept application/json

Request Body: None

Response: Returns 200 OK and a JSON object of the applicantIncomesIndirect record.

Example Response:

{
"systemId": "a1b2c3d4-e5f6-7890-abcd-1234567890ef",
"contractNo": "APP-2025-001",
"amountLCY": 1200.00,
"amountType": "Net",
"frequency": "Monthly",
"sourceOfIncome": "Employment"
}

POST applicantIncomesIndirect

Description: Creates a new applicant income record.

HTTP Request:

POST https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/ applicantIncomesIndirect

Headers:

Header Value
Authorization NTLM, OAuth2. Required.
Content-Type application/json

Request Body:

{
"contractNo": "APP-2025-001",
"applicantLineNo": 1,
"lineNo": 10000,
"contactNo": "CUST-1001",
"amountLCY": 1200.00,
"amountType": "Net",
"frequency": "Monthly",
"primary": true,
"sourceOfIncome": "Employment"
}

Response: Returns 201 Created and the created applicantIncomesIndirect object.

PATCH applicantIncomesIndirect

Description: Updates an existing applicant income record.

HTTP Request:

PATCH https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/ applicantIncomesIndirect({systemId})

Headers:

Header Value
Authorization NTLM, OAuth2. Required.
Content-Type application/json

Request Body:

{
"amountLCY": 1500.00,
"sourceOfIncome": "Freelance"
}

Response: Returns 200 OK and the updated applicantIncomesIndirect object.

DELETE applicantIncomesIndirect

Description: Deletes an applicant income record.

HTTP Request:

DELETE https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/ applicantIncomes({systemId})

Headers:

Header Value
Authorization NTLM, OAuth2. Required.

Request Body: None

Response: Returns 204 No Content if deletion is successful.

Properties

Name Type Description
systemId GUID Unique system identifier
contractNo Code[20] Contract number
applicantLineNo Integer Line number of the applicant
lineNo Integer Line number of the income record
contactNo Code[20] Contact number
amountLCY Decimal Income amount in local currency
amountType Option (Net, Gross) Indicates whether the amount is net or gross
frequency Option (Weekly, Fortnightly, Monthly, Yearly) Frequency of income
primary Boolean Indicates if this is the primary income
sourceOfIncome Text[100] Description of the income source
monthlyNetAmount Decimal Calculated monthly net amount

JSON Representation

{
"systemId": "GUID",
"contractNo": "Code[20]",
"applicantLineNo": "Integer",
"lineNo": "Integer",
"contactNo": "Code[20]",
"amountLCY": "Decimal",
"amountType": "Option",
"frequency": "Option",
"primary": "Boolean",
"sourceOfIncome": "Text[100]",
"monthlyNetAmount": "Decimal"
}

 

4. Applicant Expenditures

Methods

Method Return Type Description
GET applicantExpenditures applicantExpenditures Retrieves an applicant expenditure record.
POST applicantExpendituresIndirect applicantExpendituresIndirect Creates a new applicant expenditure record.
PATCH applicantExpendituresIndirect applicantExpendituresIndirect Updates an existing applicant expenditure record.
DELETE applicantExpenditures applicantExpenditures Deletes an applicant expenditure record.

GET applicantExpenditures

Description: Retrieves an applicant expenditure record from Business Central.

HTTP Request:

GET https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/ applicantExpenditures({systemId})

Headers:

Header Value
Authorization NTLM, OAuth2. Required.
Accept application/json

Request Body: None

Response: Returns 200 OK and a JSON object of the applicantExpenditure record.

Example Response:

{
"systemId": "a1b2c3d4-e5f6-7890-abcd-1234567890ef",
"contractNo": "APP-2025-001",
"type": "Rent",
"amountLCY": 800.00,
"paymentTo": "Landlord"
}

POST applicantExpendituresIndirect

Description: Creates a new applicant expenditure record.

HTTP Request:

POST https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/ applicantExpendituresIndirect

Headers:

Header Value
Authorization NTLM, OAuth2. Required.
Content-Type application/json

Request Body:

{
"contractNo": "APP-2025-001",
"applicantLineNo": 1,
"lineNo": 10000,
"contactNo": "CUST-1001",
"type": "Rent",
"description": "Monthly rent",
"amountLCY": 800.00,
"expenditureQuantity": 1,
"paymentTo": "Landlord",
"paymentPurposeCode": "RENT",
"creditCardType": "Visa"
}

Response: Returns 201 Created and the created applicantExpendituresIndirect object.

PATCH applicantExpendituresIndirect

Description: Updates an existing applicant expenditure record.

HTTP Request:

PATCH https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/ applicantExpendituresIndirect({SystemId})

Headers:

Header Value
Authorization NTLM, OAuth2. Required.
Content-Type application/json

Request Body:

{
"amountLCY": 850.00,
"paymentTo": "New Landlord"
}

Response: Returns 200 OK and the updated applicantExpendituresIndirect object.

DELETE applicantExpenditures

Description: Deletes an applicant expenditure record.

HTTP Request:

DELETE https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/ applicantExpenditures({systemId})

Headers:

Header Value
Authorization NTLM, OAuth2. Required.

Request Body: None

Response: Returns 204 No Content if deletion is successful.

Properties

Name Type Description
systemId GUID Unique system identifier
contractNo Code[20] Contract number
applicantLineNo Integer Line number of the applicant
lineNo Integer Line number of the expenditure record
contactNo Code[20] Contact number
type

" ", Rent, Mortgage, Credit Card, No. Of Dependants, Monthly Finance Commitment, Board, Other

 

Type of expenditure
description Text[50] Description of the expenditure
amountLCY Decimal Monthly amount in local currency
expenditureQuantity Decimal Quantity of expenditure
paymentTo Text[250] Recipient of the payment
paymentPurposeCode Code[20] Purpose code of the payment
otherCreditCardType Text[30] Custom credit card type
creditCardType Option (Visa, MasterCard, Other) Credit card type
creditCardLimit Decimal Credit card limit

JSON Representation

{
"systemId": "GUID",
"contractNo": "Code[20]",
"applicantLineNo": "Integer",
"lineNo": "Integer",
"contactNo": "Code[20]",
"type": "Enum",
"description": "Text[50]",
"amountLCY": "Decimal",
"expenditureQuantity": "Decimal",
"paymentTo": "Text[250]",
"paymentPurposeCode": "Code[20]",
"otherCreditCardType": "Text[30]",
"creditCardType": "Option",
"creditCardLimit": "Decimal"
}

5. Applicant Employment

Methods

Method Return Type Description
GET applicantEmployments applicantEmployments Retrieves an applicant employment record
POST applicantEmploymentsIndirect applicantEmploymentsIndirect Creates a new applicant employment record
PATCH applicantEmploymentsIndirect applicantEmploymentsIndirect Updates an existing applicant employment record
DELETE applicantEmployments applicantEmployments Deletes an applicant employment record

GET applicantEmployments

Description: Retrieves an applicant employment record from Business Central.

HTTP Request:

GET https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/ applicantEmployments({systemId})

Headers:

Header Value
Authorization NTLM, OAuth2. Required.
Accept application/json

Request Body: None

Response:Returns 200 OK and a JSON object of the applicantEmployment record.

Example Response:

{
"systemId": "a1b2c3d4-e5f6-7890-abcd-1234567890ef",
"contractNo": "APP-2025-001",
"employer": "ABC Corp",
"employmentStatus": "FullTime",
"numberOfYears": 3
}

POST applicantEmploymentsIndirect

Description: Creates a new applicant employment record.

HTTP Request:

POST https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/ applicantEmploymentsIndirect

Headers:

Header Value
Authorization NTLM, OAuth2. Required.
Content-Type application/json

Request Body:

{
"contractNo": "APP-2025-001",
"applicantLineNo": 1,
"lineNo": 10000,
"contactNo": "CUST-1001",
"occupationCode": "DEV",
"employmentStatus": "FullTime",
"employer": "ABC Corp",
"numberOfYears": 3,
"numberOfMonths": 6,
"contactName": "Jane Smith",
"contactPosition": "HR Manager",
"contactPhone": "+37060000000",
"contactMobile": "+37060000001",
"employmentType": "Current"
}

Response:Returns 201 Created and the created applicantEmploymentsIndirect object.

PATCH applicantEmploymentsIndirect

Description: Updates an existing applicant employment record.

HTTP Request:

PATCH https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/ applicantEmploymentsIndirect({SystemId})

Headers:

Header Value
Authorization NTLM, OAuth2. Required.
Content-Type application/json

Request Body:

{
"employer": "XYZ Ltd",
"numberOfYears": 4
}

Response:Returns 200 OK and the updated applicantEmploymentsIndirect object.

DELETE applicantEmployments

Description: Deletes an applicant employment record.

HTTP Request:

DELETE https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/ applicantEmployments({systemId})

Headers:

Header Value
Authorization NTLM, OAuth2. Required.

Request Body: None

Response:Returns 204 No Content if deletion is successful.

Properties

Name Type Description
systemId GUID Unique system identifier
contractNo Code[20] Contract number
applicantLineNo Integer Line number of the applicant
lineNo Integer Line number of the employment record
contactNo Code[20] Contact number
occupationCode Code[20] Occupation code
employmentStatus

Casually Employed, Contractor, Full Time Employed, Other, Part Time Employed, Retired, Seasonal, Self-Employed

 

Employment status
employer Text[100] Employer name
numberOfYears Integer Number of years at employment
numberOfMonths Integer Number of months at employment
contactName Text[100] Contact person's name
contactPosition Text[100] Contact person's position
contactPhone Text[30] Contact phone number
contactMobile Text[15] Contact mobile number
employmentType Option (Current, Previous) Type of employment

JSON Representation

{
"systemId": "GUID",
"contractNo": "Code[20]",
"applicantLineNo": "Integer",
"lineNo": "Integer",
"contactNo": "Code[20]",
"occupationCode": "Code[20]",
"employmentStatus": "Enum",
"employer": "Text[100]",
"numberOfYears": "Integer",
"numberOfMonths": "Integer",
"contactName": "Text[100]",
"contactPosition": "Text[100]",
"contactPhone": "Text[30]",
"contactMobile": "Text[15]",
"employmentType": "Option"
}

6. Applicant ID Documents

Methods

Method Return Type Description
GET applicantIDDocuments applicantIDDocuments Retrieves an applicant ID document record
POST applicantIDDocumentsIndirect applicantIDDocumentsIndirect Creates a new applicant ID document record
PATCH applicantIDDocumentsIndirect applicantIDDocumentsIndirect Updates an existing applicant ID document record
DELETE applicantIDDocuments applicantIDDocuments Deletes an applicant ID document record

GET applicantIDDocuments

Description: Retrieves an applicant ID document record from Business Central.

HTTP Request:

GET https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/applicantIDDocuments({systemId})

Headers:

Header Value
Authorization NTLM, OAuth2. Required.
Accept application/json

Request Body: None

Response: Returns 200 OK and a JSON object of the applicantIDDocuments record.

Example Response:

{
"systemId": "a1b2c3d4-e5f6-7890-abcd-1234567890ef",
"contractNo": "APP-2025-001",
"idDocType": "Passport",
"idDocNo": "AB1234567",
"nameOnIdDoc": "John Doe"
}

POST applicantIDDocumentsIndirect

Description: Creates a new applicant ID document record.

HTTP Request:

POST https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/applicantIDDocumentsIndirect

Headers:

Header Value
Authorization NTLM, OAuth2. Required.
Content-Type application/json

Request Body:

{
"contractNo": "APP-2025-001",
"applicantLineNo": 1,
"lineNo": 10000,
"contactNo": "CUST-1001",
"idDocType": "Passport",
"idDocNo": "AB1234567",
"nameOnIdDoc": "John Doe",
"idDocIssueDate": "2020-01-01",
"idDocIssuedBy": "Migration Department",
"idDocValidUntil": "2030-01-01",
"comments": "Primary ID",
"depersonalized": false
}

Response: Returns 201 Created and the created applicantIDDocumentsIndirect object.

PATCH applicantIDDocumentsIndirect

Description: Updates an existing applicant ID document record.

HTTP Request:

PATCH https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/applicantIDDocumentsIndirect({systemId})

Headers:

Header Value
Authorization NTLM, OAuth2. Required.
Content-Type application/json

Request Body:

{
"idDocIssuedBy": "New Authority",
"comments": "Updated issuer"
}

Response: Returns 200 OK and the updated applicantIDDocumentsIndirect object.

DELETE applicantIDDocuments

Description: Deletes an applicant ID document record.

HTTP Request:

DELETE https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/applicantIDDocuments({systemId})

Headers:

Header Value
Authorization NTLM, OAuth2. Required.

Request Body: None

Response: Returns 204 No Content if deletion is successful.

Properties

Name Type Description
systemId GUID Unique system identifier
contactNo Code[20] Contact number
contractNo Code[20] Contract number
applicantLineNo Integer Line number of the applicant
lineNo Integer Line number of the ID document record
idDocType

Passport, ID Card, Drivers Licence, Social Security Card

 

Type of ID document
idDocNo Code[25] ID document number
nameOnIdDoc Text[50] Name as shown on the ID document
idDocIssueDate Date Date the ID document was issued
idDocIssuedBy Text[60] Issuing authority
idDocValidUntil Date Expiry date of the ID document
comments Text[50] Additional comments
depersonalized Boolean GDPR depersonalization flag

JSON Representation

{
"systemId": "GUID",
"contactNo": "Code[20]",
"contractNo": "Code[20]",
"applicantLineNo": "Integer",
"lineNo": "Integer",
"idDocType": "Enum",
"idDocNo": "Code[25]",
"nameOnIdDoc": "Text[50]",
"idDocIssueDate": "Date",
"idDocIssuedBy": "Text[60]",
"idDocValidUntil": "Date",
"comments": "Text[50]",
"depersonalized": "Boolean"
}

7. Assets

Methods

Method Return Type Description
GET assets assets Retrieves an asset record
POST assetsIndirect assetsIndirect Creates a new asset record
PATCH assetsIndirect assetsIndirect Updates an existing asset record
DELETE assets assets Deletes an asset record

GET assets

Description: Retrieves an asset record from Business Central.

HTTP Request:

GET https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/assets({systemId})

Headers:

Header Value
Authorization NTLM, OAuth2. Required.
Accept application/json

Request Body: None

Response:
Returns 200 OK and a JSON object of the asset record.

 

POST assetsIndirect

Description: Creates a new asset record.

HTTP Request:

POST https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/assetsIndirect

Headers:

Header Value
Authorization NTLM, OAuth2. Required.
Content-Type application/json

Request Body:

JSON

{
"contractNo": "APP-2025-001",
"lineNo": 10000,
"amountsIncludingVAT": true,
"assetBrand": "TOYOTA",
"assetGroup": "SUV",
"assetCategory": "VEHICLE",
"model": "RAV4",
"modelYear": 2023,
"assetNewUsed": "New",
"assetType": "CAR",
"vin": "ABC123456789XYZ",
"licencePlateNo": "XYZ123",
"engineNo": "ENG987654321",
"serialNo": "SERIAL123456",
"quantity": 1,
"assetNo": "FA-001",
"assetDescription": "Toyota RAV4 Hybrid",
"acquisitionSource": "Dealer",
"supplierNo": "SUP-001",
"supplierName": "Toyota Dealer",
"msrpStickerPrice": 35000.00,
"purchasePrice": 34000.00,
"vatGroup": "STANDARD",
"purchasePriceExclVAT": 28000.00,
"residualPerc": 15.0,
"residualValue": 5100.00,
"residualValueExclVAT": 4250.00,
"annualMaintenanceCostAmount": 500.00,
"annualMCAmntExclVAT": 400.00,
"startingMileageKm": 0,
"mileageLimitKmYear": 20000,
"pricePerKmOverLimit": 0.10,
"closingMileageKm": 0,
"assetLocation": "Vilnius",
"creditLineNo": "CL-001",
"creditLinePhaseNo": "CLP-001",
"firstRegistrationDate": "2023-01-15",
"rvOverride": false,
"rvTolerance": 5.0,
"yearOfManufactureMBT": 2023,
"olAssetReturnedDate": null,
"olAssetReturned": false,
"totalResourceUsage": 0,
"pricePerUsage": 0.05,
"maintenancePerUsage": 0.02,
"servicingInterval": 10000,
"pricePerUsageExclVAT": 0.04,
"maintPerUsageExclVAT": 0.015,
"poNo": "PO-2025-001",
"createPO": true,
"poLineNo": 1,
"qtyOutstanding": 1,
"qtyDelivered": 0,
"qtyInvoiced": 0,
"invoicePaid": null,
"salesHeaderNo": "SH-001",
"loanAmount": 20000.00,
"rentalPrice": 300.00,
"rentalPriceExclVAT": 250.00,
"rentalPriceOverride": false,
"rentalPriceTolerance": 10.0
}


Response:
Returns 201 Created and the created assetsIndirect object.

PATCH assetsIndirect

Description: Updates an existing asset record.

HTTP Request:

PATCH https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/assetsIndirect({systemId})

Headers:

Header Value
Authorization NTLM, OAuth2. Required.
Content-Type application/json

Request Body:

JSON

{
"purchasePrice": 34500.00,
"rentalPrice": 320.00,
"rentalPriceOverride": true
}

Response:
Returns 200 OK and the updated assetsIndirect object.

DELETE assets

Description: Deletes an asset record.

HTTP Request:

DELETE https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/assets({systemId})

Headers:

Header Value
Authorization NTLM, OAuth2. Required.

Request Body: None

Response:
Returns 204 No Content if deletion is successful.

Properties

Name Type Description
contractNo Code[20] Contract number
lineNo Integer Line number
assetBrand Code[20] Asset brand
assetGroup Code[20] Asset group
assetCategory Code[20] Asset category
model Code[60] Model name
modelYear Integer Year of the model
assetNewUsed Option Indicates if asset is new or used
assetType Code[20] Asset type
vin Code[20] Vehicle Identification Number
licencePlateNo Code[20] License plate number
engineNo Code[20] Engine number
serialNo Code[50] Serial number of asset
quantity Integer Quantity of assets
assetNo Code[20] Asset number
assetDescription Text[100] Description of asset
acquisitionSource Asset Supplier, Lease Originator, Lessor, 3rd party Source of acquisition
supplierNo Code[20] Supplier number
supplierName Text[100] Supplier name
msrpStickerPrice Decimal MSRP sticker price
purchasePrice Decimal Purchase price including VAT
vatGroup Code[20] VAT group
purchasePriceExclVAT Decimal Purchase price excluding VAT
residualPerc Decimal Residual percentage
residualValue Decimal Residual value
residualValueExclVAT Decimal Residual value excluding VAT
annualMaintenanceCostAmount Decimal Annual maintenance cost
annualMCAmntExclVAT Decimal Annual maintenance cost excluding VAT
startingMileageKm Decimal Starting mileage in km
mileageLimitKmYear Decimal Mileage limit per year
pricePerKmOverLimit Decimal Price per km over limit
closingMileageKm Decimal Closing mileage in km
assetLocation Text[250] Location of asset
creditLineNo Code[20] Credit line number
creditLinePhaseNo Code[20] Credit line phase number
firstRegistrationDate Date First registration date
rvOverride Boolean Residual value override flag
rvTolerance Decimal Residual value tolerance percentage
yearOfManufactureMBT Integer Year of manufacture
olAssetReturnedDate Date Asset returned date
olAssetReturned Boolean Asset returned flag
totalResourceUsage Decimal Total resource usage
pricePerUsage Decimal Price per usage
maintenancePerUsage Decimal Maintenance per usage
servicingInterval Decimal Servicing interval
pricePerUsageExclVAT Decimal Price per usage excluding VAT
maintPerUsageExclVAT Decimal Maintenance per usage excluding VAT
poNo Code[20] Purchase order number
createPO Boolean Create purchase order flag
poLineNo Integer Purchase order line number
qtyOutstanding Decimal Quantity outstanding
qtyDelivered Decimal Quantity delivered
qtyInvoiced Decimal Quantity invoiced
invoicePaid Date Invoice paid date
salesHeaderNo Code[20] Sales header number
loanAmount Decimal Loan amount
rentalPrice Decimal Rental price
rentalPriceExclVAT Decimal Rental price excluding VAT
rentalPriceOverride Boolean Rental price override flag
rentalPriceTolerance Decimal Rental price tolerance percentage

JSON Representation

JSON

{
"contractNo": "Code[20]",
"lineNo": "Integer",
"assetBrand": "Code[20]",
"assetGroup": "Code[20]",
"assetCategory": "Code[20]",
"model": "Code[60]",
"modelYear": "Integer",
"assetNewUsed": "Option",
"assetType": "Code[20]",
"vin": "Code[20]",
"licencePlateNo": "Code[20]",
"engineNo": "Code[20]",
"serialNo": "Code[50]",
"quantity": "Integer",
"assetNo": "Code[20]",
"assetDescription": "Text[100]",
"acquisitionSource": "Enum",
"supplierNo": "Code[20]",
"supplierName": "Text[100]",
"msrpStickerPrice": "Decimal",
"purchasePrice": "Decimal",
"vatGroup": "Code[20]",
"purchasePriceExclVAT": "Decimal",
"residualPerc": "Decimal",
"residualValue": "Decimal",
"residualValueExclVAT": "Decimal",
"annualMaintenanceCostAmount": "Decimal",
"annualMCAmntExclVAT": "Decimal",
"startingMileageKm": "Decimal",
"mileageLimitKmYear": "Decimal",
"pricePerKmOverLimit": "Decimal",
"closingMileageKm": "Decimal",
"assetLocation": "Text[250]",
"creditLineNo": "Code[20]",
"creditLinePhaseNo": "Code[20]",
"firstRegistrationDate": "Date",
"rvOverride": "Boolean",
"rvTolerance": "Decimal",
"yearOfManufactureMBT": "Integer",
"olAssetReturnedDate": "Date",
"olAssetReturned": "Boolean",
"totalResourceUsage": "Decimal",
"pricePerUsage": "Decimal",
"maintenancePerUsage": "Decimal",
"servicingInterval": "Decimal",
"pricePerUsageExclVAT": "Decimal",
"maintPerUsageExclVAT": "Decimal",
"poNo": "Code[20]",
"createPO": "Boolean",
"poLineNo": "Integer",
"qtyOutstanding": "Decimal",
"qtyDelivered": "Decimal",
"qtyInvoiced": "Decimal",
"invoicePaid": "Date",
"salesHeaderNo": "Code[20]",
"loanAmount": "Decimal",
"rentalPrice": "Decimal",
"rentalPriceExclVAT": "Decimal",
"rentalPriceOverride": "Boolean",
"rentalPriceTolerance": "Decimal"
}

8. Contract Services

Methods

Method Return Type Description
GET contractAssetServices contractAssetServices Retrieves a contract service record
POST contractAssetServicesIndirect contractAssetServicesIndirect Creates a new contract service record
PATCH contractAssetServicesIndirect contractAssetServicesIndirect Updates an existing contract service record
DELETE contractAssetServices contractAssetServices Deletes a contract service record

GET contractAssetServices

Description: Retrieves a contract service record from Business Central.

HTTP Request:

GET https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/contractAssetServices({systemId})

Headers:

Header Value
Authorization NTLM, OAuth2. Required.
Accept application/json

Request Body: None

Response:
Returns 200 OK and a JSON object of the contractAssetServices record.

POST contractAssetServicesIndirect

Description: Creates a new contract service record.

HTTP Request:

POST https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/contractAssetServicesIndirect

Headers:

Header Value
Authorization NTLM, OAuth2. Required.
Content-Type application/json

Request Body Example:

JSON

{
"contractNo": "APP-2025-001",
"code": "SERV-001",
"description": "Maintenance Service",
"serviceCostAnnual": 1200.00,
"currencyCode": "EUR",
"included": true
}

Response:
Returns 201 Created and the created contractAssetServicesIndirect object.

PATCH contractAssetServicesIndirect

Description: Updates an existing contract service record.

HTTP Request:

PATCH https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/contractAssetServicesIndirect({systemId})

Headers:

Header Value
Authorization NTLM, OAuth2. Required.
Content-Type application/json

Request Body Example:

JSON

{
"serviceCostAnnual": 1300.00,
"adminFeeAnnual": 60.00,
"description": "Updated Maintenance Service"
}

Response:
Returns 200 OK and the updated contractAssetServicesIndirect object.

DELETE contractAssetServices

Description: Deletes a contract service record.

HTTP Request:

DELETE https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/contractAssetServices({systemId})

Headers:

Header Value
Authorization NTLM, OAuth2. Required.

Request Body: None

Response:
Returns 204 No Content if deletion is successful.

Properties

Name Type Description
contractNo Code[20] Contract number
code Code[20] Service code linked to service master
lineNo Integer Line number of the service record
description Text[250] Description of the service
assetLineNo Integer Line number of the related asset
assetID Code[20] Fixed asset ID
serviceCostAnnual Decimal Annual cost of the service
currencyCode Code[20] Currency used for pricing
serviceCostMonthly Decimal Monthly cost of the service
scheduleNo Code[20] Schedule number
versionNo Integer Schedule version number
paymentDue With Upfront Fees, Included in Financed Amount, Included in Installment, Re-charge Actual Cost When payment is due (e.g., included in installment)
overBudget Not applicable, Charge to Customer with next invoice, Charge to Customer as cost incurred, Expense, Block Budget control status
totalAmount Decimal Total amount for the service
noOfMonths Integer Duration of the service in months
acquisitionSource Asset Supplier, Lease Originator, Lessor, 3rd party Source of service acquisition
servicerNo Code[20] Contact number of the service provider
postingDescription Text[80] Description used for posting
serviceCostPerLease Decimal Cost of service per lease
asPercentOfServiceBase Decimal Cost as percentage of base
asAnnualPercentOfServiceBase Decimal Annual cost as percentage of base
serviceBase Asset Price, Asset + Bolt-ons, Asset + Bolt-ons + Accessories, Capital Amount excl. Financed Services, Financed Amount excl. Financed Services, MSRP Sticker Price, Base used for service pricing
serviceBaseAmount Decimal Amount of the service base
adminFeeAnnual Decimal Annual administrative fee
adminFeePerLease Decimal Admin fee per lease
adminFeePerEvent Decimal Admin fee per event
adminFeeAsPercentOfCost Decimal Admin fee as percentage of cost
included Boolean Whether the service is included in the lease
overrideStandardPrice Boolean Whether standard price is overridden
mandatory Boolean Whether the service is mandatory
servicePackageNo Integer Service package number

 

JSON Representation

JSON

{
"contractNo": "Code[20]",
"code": "Code[20]",
"lineNo": "Integer",
"description": "Text[250]",
"assetLineNo": "Integer",
"assetID": "Code[20]",
"serviceCostAnnual": "Decimal",
"currencyCode": "Code[20]",
"serviceCostMonthly": "Decimal",
"scheduleNo": "Code[20]",
"versionNo": "Integer",
"paymentDue": "Enum",
"overBudget": "Enum",
"totalAmount": "Decimal",
"noOfMonths": "Integer",
"acquisitionSource": "Enum",
"servicerNo": "Code[20]",
"postingDescription": "Text[80]",
"serviceCostPerLease": "Decimal",
"asPercentOfServiceBase": "Decimal",
"asAnnualPercentOfServiceBase": "Decimal",
"serviceBase": "Enum",
"serviceBaseAmount": "Decimal",
"adminFeeAnnual": "Decimal",
"adminFeePerLease": "Decimal",
"adminFeePerEvent": "Decimal",
"adminFeeAsPercentOfCost": "Decimal",
"included": "Boolean",
"overrideStandardPrice": "Boolean",
"mandatory": "Boolean",
"servicePackageNo": "Integer"
}

9. Contract Insurances

Methods

Method Return Type Description
GET contractAssetInsurances contractAssetInsurances Retrieves a contract insurance record
POST contractAssetInsurancesIndirect contractAssetInsurancesIndirect Creates a new contract insurance record
PATCH contractAssetInsurancesIndirect contractAssetInsurancesIndirect Updates an existing contract insurance record
DELETE contractAssetInsurances contractAssetInsurances Deletes a contract insurance record

GET contractAssetInsurances

Description: Retrieves a contract insurance record from Business Central.

Request:

GET https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/contractAssetInsurances({systemId})

POST contractAssetInsurancesIndirect

Description: Creates a new contract insurance record.

Request:

POST https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/contractAssetInsurancesIndirect

Example:

JSON

{
"contractNo": "APP-2025-001",
"insuranceProductCode": "INS-001",
"assetLineNo": 1,
"included": true
}

PATCH contractAssetInsurancesIndirect

Description: Updates an existing contract insurance record.

Request:

PATCH https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/contractAssetInsurancesIndirect({systemId})

Example:

JSON

{
"annualPayment": 950.00,
"overrideStandardPrice": true
}

DELETE contractAssetInsurances

Description: Deletes a contract insurance record.

Request:

DELETE https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/contractAssetInsurances({systemId})

Properties

Name Type Description
contractNo Code[20] Contract number
lineNo Integer Line number of the insurance record
insuranceProductCode Code[20] Insurance product code
assetLineNo Integer Line number of the related asset
assetID Code[20] Fixed asset ID
treatAs

With Upfront Fees, Included in Financed Amount, Included in Installment, Re-charge Actual Cost

 

How the insurance is treated in payment schedule
overBudget

Not applicable, Charge to Customer with next invoice, Charge to Customer as cost incurred, Expense, Block

 

Budget control status
insuranceBase Decimal Base amount used for insurance calculation
coefficientPct Decimal Coefficient percentage used for pricing
annualPayment Decimal Annual insurance payment
annualPaymentLCY Decimal Annual payment in local currency
monthlyPayment Decimal Monthly insurance payment
monthlyPaymentLCY Decimal Monthly payment in local currency
totalAmount Decimal Total insurance amount
totalAmountLCY Decimal Total amount in local currency
noOfMonths Integer Duration of the insurance in months
currencyCode Code[20] Currency used for pricing
postingDescription Text[80] Description used for posting
commissionPayableAmount Decimal Commission payable to insurer
commissionReceivableAmount Decimal Commission receivable from insurer
customerNo Code[20] Customer number
insurerNo Code[20] Insurer contact number
scheduleNo Code[20] Schedule number
versionNo Integer Schedule version number
included Boolean Whether the insurance is included in the lease
overrideStandardPrice Boolean Whether standard price is overridden
mandatory Boolean Whether the insurance is mandatory
insurancePackageNo Integer Insurance package number

JSON Representation

{
"contractNo": "Code[20]",
"lineNo": "Integer",
"insuranceProductCode": "Code[20]",
"assetLineNo": "Integer",
"assetID": "Code[20]",
"treatAs": "Enum",
"overBudget": "Enum",
"insuranceBase": "Decimal",
"coefficientPct": "Decimal",
"annualPayment": "Decimal",
"annualPaymentLCY": "Decimal",
"monthlyPayment": "Decimal",
"monthlyPaymentLCY": "Decimal",
"totalAmount": "Decimal",
"totalAmountLCY": "Decimal",
"noOfMonths": "Integer",
"currencyCode": "Code[20]",
"postingDescription": "Text[80]",
"commissionPayableAmount": "Decimal",
"commissionReceivableAmount": "Decimal",
"customerNo": "Code[20]",
"insurerNo": "Code[20]",
"scheduleNo": "Code[20]",
"versionNo": "Integer",
"included": "Boolean",
"overrideStandardPrice": "Boolean",
"mandatory": "Boolean",
"insurancePackageNo": "Integer"
}

10. Asset Options

Methods

Method Return Type Description
GET contractAssetOptions contractAssetOptions Retrieves a contract asset option record
POST contractAssetOptionsIndirect contractAssetOptionsIndirect Creates a new contract asset option record
PATCH contractAssetOptionsIndirect contractAssetOptionsIndirect Updates an existing contract asset option record
DELETE contractAssetOptions contractAssetOptions Deletes a contract asset option record

GET contractAssetOptions

Description: Retrieves a contract asset option record from Business Central.

Request:

GET

https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/contractAssetOptions({systemId})

POST contractAssetOptionsIndirect

Description: Creates a new contract asset option record.

Request:

POST

https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/contractAssetOptionsIndirect

Example:

{
"contractNo": "APP-2025-001",
"assetLineNo": 1,
"equipmentCode": "OPT-001",
"equipmentType": "Accessories",
"purchasePrice": 150.00
}

PATCH contractAssetOptionsIndirect

Description: Updates an existing contract asset option record.

Request:

PATCH

https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/contractAssetOptionsIndirect({systemId})

Example:

{
"purchasePrice": 175.00,
"vatGroup": "STANDARD"
}

DELETE contractAssetOptions

Description: Deletes a contract asset option record.

Request:

DELETE

https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/contractAssetOptions({systemId})

Properties

Name Type Description
contractNo Code[20] Contract number
assetLineNo Integer Line number of the related asset
lineNo Integer Line number of the option record
systemId GUID Unique system identifier
equipmentCode Code[20] Code of the additional equipment
description Text[250] Description of the equipment
equipmentType " ",Accessories,Bolt-On Type of equipment (Accessories or Bolt-On)
vatGroup Code[20] VAT group for the equipment
purchasePrice Decimal Purchase price including VAT
purchasePriceExclVAT Decimal Purchase price excluding VAT
acquisitionSource

Supplier,3rd Party

 

Source of acquisition (Supplier or 3rd Party)
supplierNo Code[20] Supplier contact number
brand Code[20] Brand of the equipment
model Code[60] Model of the equipment

JSON Representation

{
"contractNo": "Code[20]",
"assetLineNo": "Integer",
"lineNo": "Integer",
"systemId": "GUID",
"equipmentCode": "Code[20]",
"description": "Text[250]",
"equipmentType": "Option",
"vatGroup": "Code[20]",
"purchasePrice": "Decimal",
"purchasePriceExclVAT": "Decimal",
"acquisitionSource": "Enum",
"supplierNo": "Code[20]",
"brand": "Code[20]",
"model": "Code[60]"
}

11. Schedule

Methods

Method Return Type Description
GET schedules schedules Retrieves a schedule record
POST schedulesIndirect schedulesIndirect Creates a new schedule record
PATCH schedulesIndirect schedulesIndirect Updates an existing schedule record
DELETE schedules schedules Deletes a schedule record

Method Detalisation

GET schedules

Description: Retrieves a schedule record from Business Central.

Request:

GET https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/schedules({systemId})

POST schedulesIndirect

Description: Creates a new schedule record.

Request:

POST https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/schedulesIndirect

Example:

JSON

{
"contractNo": "APP-2025-001",
"scheduleNo": "APP-2025-001",
"programCode": "PRG-001",
"term": "36M",
"frequency": "Monthly"
}

PATCH schedulesIndirect

Description: Updates an existing schedule record.

Request:

PATCH https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/schedulesIndirect({systemId})

Example:

JSON

{
"interestRate": 4.5,
"downpaymentAmount": 2000.00
}

DELETE schedules

Description: Deletes a schedule record.

Request:

DELETE https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/schedules({systemId})

Properties

Name Type Description
contractNo Code[20] Contract number
scheduleNo Code[20] Schedule number
versionNo Integer Version number of the schedule
programCode Code[20] Program code used for pricing
financialProduct Code[20] Financial product code
term Code[20] Term code (e.g., 36M)
termMonths Integer Term duration in months
frequency Code[20] Installment frequency (e.g., Monthly)
installmentsDue Enum Installments due type (Advance/Arrears)
startingDate Date Start date of the schedule
endingDate Date End date of the schedule
downpaymentPercentage Decimal Downpayment percentage
downpaymentAmount Decimal Downpayment amount
interestManual Boolean Indicates if interest is manually set
interestRate Decimal Total interest rate
interestPct Decimal Fixed interest percentage
variableInterestPct Decimal Variable interest percentage
variableInterestNextChangeDate Date Next change date for variable interest
residualValuePerc Decimal Residual value percentage
residualValue Decimal Residual value amount
residualValueType Enum Type of residual value (e.g., Balloon)
establishmentFeeFinanced Decimal Financed establishment fee
supplierDepositAmount Decimal Supplier deposit amount
tradeInAssetValue Decimal Trade-in asset value
refinPayOutFigure Decimal Refinancing pay-out figure
originatorFeeFinanced Decimal Financed originator fee
brokerageAmountFinanced Decimal Financed brokerage amount
establishmentFeeUpfront Decimal Upfront establishment fee
originatorFeeUpfront Decimal Upfront originator fee
brokerageAmountUpfront Decimal Upfront brokerage amount
installmentFee Decimal Installment fee
annuityLinear Enum Installment schedule type (Annuity/Linear)
upfrontFeesPaymentCRule Enum Control rule for upfront fees
commissionSchema Code[20] Commission schema code
commissionAmountLCY Decimal Commission amount in local currency
payCommissionTo Code[20] Contact to whom commission is paid
subventionAmountLCY Decimal Subvention amount in local currency
subventedBy Code[20] Contact who pays the subvention
versionStatus Option Status of the schedule version (New/Valid/Old)
totalInsuranceFinanced Decimal Total financed insurance amount
totalInsuranceUpfront Decimal Total upfront insurance amount
feesApplyOnDisbursement Boolean Whether fees apply on disbursement
totalAccessories Decimal Total accessories amount
totalBoltOns Decimal Total bolt-ons amount
totalMaintenanceFinanced Decimal Total financed maintenance cost
totalMaintCostUpfront Decimal Total upfront maintenance cost
netCapitalAmount Decimal Net capital amount
numberOfPaymentPeriods Integer Number of payment periods
quoteApplicPaymAmount Decimal Quote/application payment amount
totalAssetPrice Decimal Total asset price
stampTaxFeesFinanced Decimal Financed stamp tax on fees
stampTaxFeesUpfront Decimal Upfront stamp tax on fees
brokerage Decimal Brokerage percentage
baseBrokerage Decimal Base brokerage percentage

JSON Representation

JSON

{
"contractNo": "Code[20]",
"scheduleNo": "Code[20]",
"versionNo": "Integer",
"programCode": "Code[20]",
"financialProduct": "Code[20]",
"term": "Code[20]",
"termMonths": "Integer",
"frequency": "Code[20]",
"installmentsDue": "Enum",
"startingDate": "Date",
"endingDate": "Date",
"downpaymentPercentage": "Decimal",
"downpaymentAmount": "Decimal",
"interestManual": "Boolean",
"interestRate": "Decimal",
"interestPct": "Decimal",
"variableInterestPct": "Decimal",
"variableInterestNextChangeDate": "Date",
"residualValuePerc": "Decimal",
"residualValue": "Decimal",
"residualValueType": "Enum",
"establishmentFeeFinanced": "Decimal",
"supplierDepositAmount": "Decimal",
"tradeInAssetValue": "Decimal",
"refinPayOutFigure": "Decimal",
"originatorFeeFinanced": "Decimal",
"brokerageAmountFinanced": "Decimal",
"establishmentFeeUpfront": "Decimal",
"originatorFeeUpfront": "Decimal",
"brokerageAmountUpfront": "Decimal",
"installmentFee": "Decimal",
"annuityLinear": "Enum",
"upfrontFeesPaymentCRule": "Enum",
"commissionSchema": "Code[20]",
"commissionAmountLCY": "Decimal",
"payCommissionTo": "Code[20]",
"subventionAmountLCY": "Decimal",
"subventedBy": "Code[20]",
"versionStatus": "Option",
"totalInsuranceFinanced": "Decimal",
"totalInsuranceUpfront": "Decimal",
"feesApplyOnDisbursement": "Boolean",
"totalAccessories": "Decimal",
"totalBoltOns": "Decimal",
"totalMaintenanceFinanced": "Decimal",
"totalMaintCostUpfront": "Decimal",
"netCapitalAmount": "Decimal",
"numberOfPaymentPeriods": "Integer",
"quoteApplicPaymAmount": "Decimal",
"totalAssetPrice": "Decimal",
"stampTaxFeesFinanced": "Decimal",
"stampTaxFeesUpfront": "Decimal",
"brokerage": "Decimal",
"baseBrokerage": "Decimal"
}

12. Schedule Lines

Methods

Method Return Type Description
GET scheduleLines scheduleLines Retrieves a schedule line record
POST scheduleLinesIndirect scheduleLinesIndirect Creates a new schedule line record
PATCH scheduleLinesIndirect scheduleLinesIndirect Updates an existing schedule line record
DELETE scheduleLines scheduleLines Deletes a schedule line record

GET scheduleLines

Description: Retrieves a schedule line record from Business Central.

Request:

GET https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/scheduleLines({systemId})

POST scheduleLinesIndirect

Description: Creates a new schedule line record.

Request:

POST https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/scheduleLinesIndirect

Example:

JSON

{
"contractNo": "APP-2025-001",
"scheduleNo": "SCH-001",
"versionNo": 1,
"lineNo": 10000,
"entryType": "Installment",
"date": "2025-10-01"
}

PATCH scheduleLinesIndirect

Description: Updates an existing schedule line record.

Request:

PATCH https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/scheduleLinesIndirect({systemId})

Example:

JSON

{
"interestAmount": 120.00,
"principalAmount": 500.00
}

DELETE scheduleLines

Description: Deletes a schedule line record.

Request:

DELETE https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/scheduleLines({systemId})

Properties

Name Type Description
contractNo Code[20] Contract number
scheduleNo Code[20] Schedule number
versionNo Integer Version number
lineNo Integer Line number
entryType “ ”, 1, 2, Installment, 4, Early buy-out, 6, Shortfall, Special Payment, Residual Value, Balloon, Inertia Entry type (e.g., Installment, Early buy-out, etc.)
period Integer Period
date Date Date of the schedule line
dateNotRecalc Boolean Date not recalculated
invoiced Boolean Invoiced
interestRate Decimal Interest rate
effectiveDateOfInterestCh Date Effective date of interest rate change
currencyCode Code[10] Currency code
finProductCode Code[20] Financial product code
assetValueVariation Decimal Asset value variation
assetValueChanged Boolean Asset value changed
effectiveDateOfAssetVar Date Effective date of asset variation
outstandingAmount Decimal Outstanding amount
outstandingInclVAT Decimal Outstanding amount including VAT
principalAmount Decimal Principal amount excluding VAT
principalInclVAT Decimal Principal amount including VAT
principalNotRecalc Boolean Principal not recalculated
principalChange Decimal Principal change
effectiveDateOfPrincipalCh Date Effective date of principal change
interestAmount Decimal Interest amount excluding VAT
interestInclStampTax Decimal Interest including stamp tax
interestInclVAT Decimal Interest amount including VAT
interestNotRecalc Boolean Interest not recalculated
additionalLine Boolean Additional line
totalInstallment Decimal Installment excluding VAT
installmentInclVAT Decimal Installment including VAT
installmentNotRecalculated Boolean Installment not recalculated
installmentInclVATManual Decimal Installment including VAT (manual)
remainingDepositAmount Decimal Remaining deposit excluding VAT
remainingDepositInclVAT Decimal Remaining deposit including VAT
depositInclusionAmount Decimal Deposit inclusion excluding VAT
depositInclusionInclVAT Decimal Deposit inclusion including VAT
stampTaxAmountInterest Decimal Stamp tax amount (interest)
stampTaxAmountIntslFee Decimal Stamp tax amount (installment fee)
insurance Decimal Insurance excluding VAT
insuranceInclVAT Decimal Insurance including VAT
services Decimal Services excluding VAT
servicesInclVAT Decimal Services including VAT
adminFees Decimal Service admin fees excluding VAT
adminFeesInclVAT Decimal Service admin fees including VAT
installmentFees Decimal Installment fees excluding VAT
installmentFeesInclVAT Decimal Installment fees including VAT
balloonInterestCalculated Decimal Balloon interest calculated
balloonInterestApplied Decimal Balloon interest applied
balloonInclVATIntCalc Decimal Balloon including VAT interest calculated
balloonInclVATIntApplied Decimal Balloon including VAT interest applied
balloonInterestNotRecalc Boolean Balloon interest not recalculated
vatOnIPMTCalculated Decimal VAT on IPMT calculated
vatOnIPMTEqualPartsCal Decimal VAT on IPMT (equal parts) calculated
vatOnIPMTEqPApplied Decimal VAT on IPMT - equal parts applied
interestVatNotRecalc Boolean Interest VAT not recalculated
vatOnBalloonIntCalc Decimal VAT on balloon interest calculated
vatOnBallonIntApplied Decimal VAT on balloon interest applied
calculationGUID GUID Calculation GUID
invoiceNo Code[20] Invoice number
invoicePostingDate Date Invoice posting date
emailNotificationCreated Boolean Email notification created
skipInsurance Boolean Skip insurance
skipServices Boolean Skip services
skipInstallmentFee Boolean Skip installment fee
ipmt Decimal IPMT (interest portion of payment)
closingOutstanding Decimal Closing outstanding
closingOutstandingInclVAT Decimal Closing outstanding including VAT
migrationFlag Code[20] Migration flag
assetVariationFactor Decimal Asset variation factor
amountAddedToInstallment Decimal Amount added to installment
hpVatAmountAdded Boolean HP VAT amount added

 

JSON Representation

{
"contractNo": "Code[20]",
"scheduleNo": "Code[20]",
"versionNo": "Integer",
"lineNo": "Integer",
"entryType": "Enum",
"period": "Integer",
"date": "Date",
"dateNotRecalc": "Boolean",
"invoiced": "Boolean",
"interestRate": "Decimal",
"effectiveDateOfInterestCh": "Date",
"currencyCode": "Code[10]",
"finProductCode": "Code[20]",
"assetValueVariation": "Decimal",
"assetValueChanged": "Boolean",
"effectiveDateOfAssetVar": "Date",
"outstandingAmount": "Decimal",
"outstandingInclVAT": "Decimal",
"principalAmount": "Decimal",
"principalInclVAT": "Decimal",
"principalNotRecalc": "Boolean",
"principalChange": "Decimal",
"effectiveDateOfPrincipalCh": "Date",
"interestAmount": "Decimal",
"interestInclStampTax": "Decimal",
"interestInclVAT": "Decimal",
"interestNotRecalc": "Boolean",
"additionalLine": "Boolean",
"totalInstallment": "Decimal",
"installmentInclVAT": "Decimal",
"installmentNotRecalculated": "Boolean",
"installmentInclVATManual": "Decimal",
"remainingDepositAmount": "Decimal",
"remainingDepositInclVAT": "Decimal",
"depositInclusionAmount": "Decimal",
"depositInclusionInclVAT": "Decimal",
"stampTaxAmountInterest": "Decimal",
"stampTaxAmountIntslFee": "Decimal",
"insurance": "Decimal",
"insuranceInclVAT": "Decimal",
"services": "Decimal",
"servicesInclVAT": "Decimal",
"adminFees": "Decimal",
"adminFeesInclVAT": "Decimal",
"installmentFees": "Decimal",
"installmentFeesInclVAT": "Decimal",
"balloonInterestCalculated": "Decimal",
"balloonInterestApplied": "Decimal",
"balloonInclVATIntCalc": "Decimal",
"balloonInclVATIntApplied": "Decimal",
"balloonInterestNotRecalc": "Boolean",
"vatOnIPMTCalculated": "Decimal",
"vatOnIPMTEqualPartsCal": "Decimal",
"vatOnIPMTEqPApplied": "Decimal",
"interestVatNotRecalc": "Boolean",
"vatOnBalloonIntCalc": "Decimal",
"vatOnBallonIntApplied": "Decimal",
"calculationGUID": "GUID",
"invoiceNo": "Code[20]",
"invoicePostingDate": "Date",
"emailNotificationCreated": "Boolean",
"skipInsurance": "Boolean",
"skipServices": "Boolean",
"skipInstallmentFee": "Boolean",
"ipmt": "Decimal",
"closingOutstanding": "Decimal",
"closingOutstandingInclVAT": "Decimal",
"migrationFlag": "Code[20]",
"assetVariationFactor": "Decimal",
"amountAddedToInstallment": "Decimal",
"hpVatAmountAdded": "Boolean"
}

13. Guarantees

Methods

Method Return Type Description
GET contractGuarantees contractGuarantees Retrieves a contract guarantee record
POST contractGuaranteesIndirect contractGuaranteesIndirect Creates a new contract guarantee record
PATCH contractGuaranteesIndirect contractGuaranteesIndirect Updates an existing contract guarantee record
DELETE contractGuarantees contractGuarantees Deletes a contract guarantee record

GET contractGuarantees

Description: Retrieves a contract guarantee record from Business Central.

Request:

GET https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/contractGuarantees({systemId})

POST contractGuaranteesIndirect

Description: Creates a new contract guarantee record.

Request:

POST https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/contractGuaranteesIndirect

Example:

JSON

{
"contractNo": "APP-2025-001",
"guaranteeCode": "GUAR-001",
"amount": 10000.00,
"startingDate": "2025-10-01"
}

PATCH contractGuaranteesIndirect

Description: Updates an existing contract guarantee record.

Request:

PATCH https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/contractGuaranteesIndirect({systemId})

Example:

JSON

{
"amount": 12000.00,
"endingDate": "2026-10-01"
}

DELETE contractGuarantees

Description: Deletes a contract guarantee record.

Request:

DELETE https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/contractGuarantees({systemId})

Properties

Name Type Description
contractNo Code[20] Contract number
lineNo Integer Line number of the guarantee record
guaranteeCode Code[20] Guarantee code
usedFor Option Indicates if used for contract or standard condition
startingDate Date Start date of the guarantee
endingDate Date End date of the guarantee
amount Decimal Guarantee amount
thirdParty Code[20] Third party contact number
thirdPartyName Text[100] Name of the third party
mortgageObjectType Code[20] Mortgage object type
objectName Text[30] Name of the object
reRegistrationStreetNo Text[30] Real estate registration street and number
reRegistrationCity Text[50] Real estate registration city
reRegistrationPostCode Code[20] Real estate registration post code
reRegistrationCountryCode Code[10] Real estate registration country code
buyOutDueDateMonths Integer Buy-out due date in months
percentage Decimal Percentage value for guarantee
buyOutMileageKm Decimal Buy-out mileage in kilometers
priceOfExtraKmLCY Decimal Price of extra kilometer in local currency
note Text[250] Additional notes
buyOutAdminFeePercentage Decimal Buy-out admin fee percentage
buyOutAdminFeeAmount Decimal Buy-out admin fee amount
faClassCode Code[10] Fixed asset class code
faSubclassCode Code[10] Fixed asset subclass code
mortgageSequence Option Mortgage sequence (Primary/Secondary)
scheduleNo Code[20] Schedule number
versionNo Integer Schedule version number

 

JSON Representation

JSON

{
"contractNo": "Code[20]",
"lineNo": "Integer",
"guaranteeCode": "Code[20]",
"usedFor": "Option",
"startingDate": "Date",
"endingDate": "Date",
"amount": "Decimal",
"thirdParty": "Code[20]",
"thirdPartyName": "Text[100]",
"mortgageObjectType": "Code[20]",
"objectName": "Text[30]",
"reRegistrationStreetNo": "Text[30]",
"reRegistrationCity": "Text[50]",
"reRegistrationPostCode": "Code[20]",
"reRegistrationCountryCode": "Code[10]",
"buyOutDueDateMonths": "Integer",
"percentage": "Decimal",
"buyOutMileageKm": "Decimal",
"priceOfExtraKmLCY": "Decimal",
"note": "Text[250]",
"buyOutAdminFeePercentage": "Decimal",
"buyOutAdminFeeAmount": "Decimal",
"faClassCode": "Code[10]",
"faSubclassCode": "Code[10]",
"mortgageSequence": "Option",
"scheduleNo": "Code[20]",
"versionNo": "Integer"
}

 

14. Contract Balances

Methods

Method Return Type Description
GET contractBalances contractBalances Retrieves a contract balance record

GET contractBalances

Description: Retrieves a contract balance record from Business Central.

Request:

GET https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/contractBalances({systemId})

Properties

Name Type Description
contractNo Code[20] Contract number
customerNo Code[20] Customer number
balanceType Option Contract balance type (e.g., Current)
toDate Date Date as of which the balance is calculated
amtFinanced Decimal Amount financed
grossReceivable Decimal Gross receivable
unearnedInterest Decimal Unearned interest
netReceivable Decimal Net receivable
currentReceivable Decimal Current customer receivable (as of date)
totalCustomerBalance Decimal Total customer balance
writeOffAmt Decimal Write off amount
writeOffDate Date Write off date of contract
loanBookValue Decimal Loan book value
customerCredit Decimal Customer credit
customerArrears Decimal Customer arrears
overdueDays Integer Overdue days
lastPaymentAmt Decimal Last payment amount
lastPaymentDate Date Last payment date
lastInvoicedInstallmentAmt Decimal Last invoiced installment amount
lastInvoicedInstallmentDate Date Last invoiced installment date
nextInstallmentAmt Decimal Next installment amount
nextInstallmentDate Date Next installment date
lastDirectDebitAmt Decimal Last direct debit amount
lastDirectDebitDate Date Last direct debit date
nextDirectDebitAmt Decimal Next direct debit amount
nextDirectDebitDate Date Next direct debit date
paidInFull Boolean Paid in full flag
paidInFullDate Date Paid in full date
termMonths Integer Term in months
monthsPast Integer Months past
monthsFuture Integer Months future
installmentsTotal Integer Total installments
installmentsPast Integer Past installments
installmentsFuture Integer Future installments
aging130Amt Decimal Aging 1-30 days amount
aging3160Amt Decimal Aging 31-60 days amount
aging6190Amt Decimal Aging 61-90 days amount
aging91120Amt Decimal Aging 91-120 days amount
aging121150Amt Decimal Aging 121-150 days amount
aging151180Amt Decimal Aging 151-180 days amount
agingOver180Amt Decimal Aging over 180 days amount
accruedFinancingInterest Decimal Accrued financing interest excluding VAT
accruedFinancIntInclVAT Decimal Accrued financing interest including VAT
accruedPenaltyInterest Decimal Accrued penalty interest excluding VAT
accruedPenaltyIntInclVAT Decimal Accrued penalty interest including VAT
accruedTotalInterest Decimal Accrued total interest excluding VAT
accruedTotalIntInclVAT Decimal Accrued total interest including VAT
amountToRefund Decimal Amount to be refunded
assetCollateralValueLCY Decimal Asset collateral value in local currency
systemId GUID Unique system identifier

JSON Representation

JSON

{
"contractNo": "Code[20]",
"customerNo": "Code[20]",
"balanceType": "Enum",
"toDate": "Date",
"amtFinanced": "Decimal",
"grossReceivable": "Decimal",
"unearnedInterest": "Decimal",
"netReceivable": "Decimal",
"currentReceivable": "Decimal",
"totalCustomerBalance": "Decimal",
"writeOffAmt": "Decimal",
"writeOffDate": "Date",
"loanBookValue": "Decimal",
"customerCredit": "Decimal",
"customerArrears": "Decimal",
"overdueDays": "Integer",
"lastPaymentAmt": "Decimal",
"lastPaymentDate": "Date",
"lastInvoicedInstallmentAmt": "Decimal",
"lastInvoicedInstallmentDate": "Date",
"nextInstallmentAmt": "Decimal",
"nextInstallmentDate": "Date",
"lastDirectDebitAmt": "Decimal",
"lastDirectDebitDate": "Date",
"nextDirectDebitAmt": "Decimal",
"nextDirectDebitDate": "Date",
"paidInFull": "Boolean",
"paidInFullDate": "Date",
"termMonths": "Integer",
"monthsPast": "Integer",
"monthsFuture": "Integer",
"installmentsTotal": "Integer",
"installmentsPast": "Integer",
"installmentsFuture": "Integer",
"aging130Amt": "Decimal",
"aging3160Amt": "Decimal",
"aging6190Amt": "Decimal",
"aging91120Amt": "Decimal",
"aging121150Amt": "Decimal",
"aging151180Amt": "Decimal",
"agingOver180Amt": "Decimal",
"accruedFinancingInterest": "Decimal",
"accruedFinancIntInclVAT": "Decimal",
"accruedPenaltyInterest": "Decimal",
"accruedPenaltyIntInclVAT": "Decimal",
"accruedTotalInterest": "Decimal",
"accruedTotalIntInclVAT": "Decimal",
"amountToRefund": "Decimal",
"assetCollateralValueLCY": "Decimal",
"systemId": "GUID"
}

15. Documents

Methods

Method Return Type Description
GET documents documents Retrieves a document record
POST documents documents Creates a new document record
PATCH documents documents Updates an existing document record
DELETE documents documents Deletes a document record

 

GET documents

Description: Retrieves a document record from Business Central.

Request:

GET https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/documents({systemId})

POST documents

Description: Creates a new document record.

Request:

POST https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/documents

Example:

JSON

{
"tableID": 123,
"relatedRecSystemId": "00000000-0000-0000-0000-000000000000",
"relatedRecordId": "REL-001",
"documentDate": "2025-10-01",
"description": "Contract document",
"comment": "Signed by both parties",
"documentType": "Incoming",
"templateCode": "TMP-001",
"fileExtension": "pdf",
"fileName": "contract.pdf",
"supportingDocType": "SUP-001",
"blobText": "base64encodedstring"
}

PATCH documents

Description: Updates an existing document record.

Request:

PATCH https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/documents({systemId})

Example:

JSON

{
"description": "Updated contract document",
"comment": "Updated after review"
}

DELETE documents

Description: Deletes a document record.

Request:

DELETE https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/documents({systemId})

Properties

Name Type Description
systemId GUID Unique system identifier
entryNo Integer Entry number
tableID Integer Table ID
relatedRecSystemId GUID Related record system ID
relatedRecordId Text Related record ID
documentDate Date Document date
description Text Description of the document
comment Text Comment
documentType Enum Document type (Outgoing, Incoming)
templateCode Text Template code
fileExtension Text File extension
fileName Text File name
supportingDocType Text Supporting document type
blobText Text Blob (base64-encoded file content)

 

JSON Representation

JSON

{
"systemId": "GUID",
"entryNo": "Integer",
"tableID": "Integer",
"relatedRecSystemId": "GUID",
"relatedRecordId": "Text",
"documentDate": "Date",
"description": "Text",
"comment": "Text",
"documentType": "Enum",
"templateCode": "Text",
"fileExtension": "Text",
"fileName": "Text",
"supportingDocType": "Text",
"blobText": "Text"
}

 

16. Full Contract Example

This section serves as an example of how to utilize all the previously described API endpoints to create a complete contract record. By following the outlined steps, users can integrate data from each endpoint to assemble a comprehensive contract, as demonstrated below using POST request.

HTTP Request

POST https://{businesscentralPrefix}/api/Soft4/Leasing/v2.0/companies({companyId})/applicationsIndirect

JSON Representation

{
"contractNo": "OL222222",
"contractDate": "2024-02-05",
"status": "Application",
"statusCode": "20",
"financialProduct": "FL",
"newUsedAsset": "New",
"dateofDeliveryCertificate": "2023-01-01",
"dateofPurchaseContract": "2020-01-01",
"dateofContractInception": "2022-01-01",
"individualBusiness": "Individual",
"customerNo": "",
"legalForm": "",
"title": "Mr.",
"firstName": "Gregor",
"middleName": "",
"surname": "Larkin",
"gender": "",
"birthDate": "1990-01-01",
"maritalStatus": "",
"driverLicenseNo": "LIC01",
"nationality": "AFG",
"pep": false,
"businessName": "",
"tradingName": "",
"industryGroup": "",
"natureOfBusiness": "",
"noofEmployees": 0,
"registrationNo": "",
"contactPerson": "John",
"address": "",
"countryRegionCode": "AU",
"county": "TAS",
"city": "Kaunas",
"postCode": "1111",
"email": "testingandco.com",
"phoneNo": "419819819",
"privacyConsent": true,
"marketingConsent": false,
"paymentMethodCode": "DD",
"ddNameofAccount": "Account 1",
"ddBankAccountNo": "",
"ddBankName": "VSB Bank",
"ddBankBranchNo": "48494",
"originatorNo": "1000",
"supplierNo": "1001",
"supplierSalespersonNo": "KS",
"origSalespersonNo": "",
"salesOfficerCode": "JONAS",
"applicantsIndirect": [
{
"roleInContract": "DIRECTOR",
"individualBusiness": "Individual",
"contactNo": "",
"firstName": "Jane",
"middleName": "",
"surname": "Solomon",
"name": "",
"name2": "",
"title": "Mrs.",
"registrationNo": "",
"noOfEmployees": 0,
"contactPerson": "",
"address": "162 Aldington Road",
"address2": "Detroit",
"city": "KEMPS CREEK",
"countryRegionCode": "AU",
"postCode": "2179",
"county": "WA",
"phoneNo": "04777888999",
"eMail": "Xjohn@repossessions.com",
"website": "website.com",
"birthDate": "1992-01-01",
"gender": "Male",
"maritalStatus": "Married",
"noOfDependents": 3,
"nationality": "ABW",
"marketingConsent": true,
"privacyConsent": true,
"pep": true,
"applicantIncomesIndirect": [
{
"amountLCY": 500,
"frequency": "MONTHLY",
"sourceOfIncome": "Salary"
},
{
"amountLCY": 200,
"frequency": "WEEKLY",
"sourceOfIncome": "Interest"
}
],
"applicantExpendituresIndirect": [
{
"type": "Mortgage",
"description": "For ferrari",
"amountLCY": 300,
"expenditureQuantity": 0,
"paymentTo": "Car Dealer",
"paymentPurposeCode": "Residential",
"otherCreditCardType": "",
"creditCardType": "",
"creditCardLimit": 0
}
],
"applicantEmploymentsIndirect": [
{
"occupationCode": "Driver",
"employmentStatus": "Contractor",
"employer": "Tesla",
"numberOfYears": 1,
"numberOfMonths": 5,
"contactName": "John",
"contactPosition": "CEO",
"contactPhone": "+37015449",
"contactMobile": "+37146",
"employmentType": "Current"
}
],
"applicantIDDocumentsIndirect": [
{
"idDocType": "Passport",
"idDocNo": "12465",
"nameOnIdDoc": "John",
"idDocIssueDate": "2020-01-01",
"idDocIssuedBy": "Government",
"idDocValidUntil": "2025-01-01",
"comments": "This is a comment",
"depersonalized": false
},
{
"idDocType": "ID Card",
"idDocNo": "777",
"nameOnIdDoc": "John",
"idDocIssueDate": "2020-01-01",
"idDocIssuedBy": "Government",
"idDocValidUntil": "2025-01-01",
"comments": "This is a comment",
"depersonalized": false
}
]
},
{
"roleInContract": "GUARANTOR",
"individualBusiness": "Business",
"contactNo": "20158"
}
],
"schedulesIndirect": [
{
"programCode": "STANDARD",
"term": "12M",
"frequency": "MONTHLY",
"installmentsDue": "In Arrears",
"startingDate": "2023-03-14",
"downpaymentPercentage": 0,
"interestManual": false,
"interestRate": 12,
"residualValueType": "Stays Unpaid",
"establishmentFeeFinanced": 300,
"supplierDepositAmount": 0,
"tradeInAssetValue": 999,
"refinPayOutFigure": 0,
"originatorFeeFinanced": 300,
"brokerageAmountFinanced": 0,
"establishmentFeeUpfront": 500,
"originatorFeeUpfront": 500,
"brokerageAmountUpfront": 0,
"installmentFee": 50,
"annuityLinear": "Annuity",
"commissionSchema": "STD",
"commissionAmountLCY": 666,
"payCommissionTo": "C00021",
"subventionAmountLCY": 555,
"subventedBy": "C00019",
"scheduleLinesIndirect": [
{
"entryType": "Installment",
"period": 1,
"date": "2023-04-14",
"dateNotRecalc": false,
"invoiced": false,
"interestRate": 0.00,
"currencyCode": "",
"principalAmount": 0.00,
"principalInclVAT": 0.00,
"principalNotRecalc": false,
"principalChange": 0.00,
"interestAmount": 0.00,
"interestInclStampTax": 0.00,
"interestInclVAT": 0.00,
"interestNotRecalc": false,
"additionalLine": false,
"totalInstallment": 0.00,
"installmentInclVAT": 150.00,
"installmentNotRecalculated": false,
"installmentInclVATManual": 0.00,
"remainingDepositAmount": 0.00,
"remainingDepositInclVAT": 0.00,
"depositInclusionAmount": 0.00,
"depositInclusionInclVAT": 0.00,
"stampTaxAmountInterest": 0.00,
"stampTaxAmountIntslFee": 0.00,
"insurance": 0.00,
"insuranceInclVAT": 0.00,
"services": 0.00,
"servicesInclVAT": 0.00,
"adminFees": 0.00,
"adminFeesInclVAT": 0.00,
"installmentFees": 0.00,
"installmentFeesInclVAT": 0.00,
"balloonInterestCalculated": 0.00,
"balloonInterestApplied": 0.00,
"balloonInclVATIntCalc": 0.00,
"balloonInclVATIntApplied": 0.00,
"balloonInterestNotRecalc": false,
"vatOnIPMTCalculated": 0.00,
"vatOnIPMTEqualPartsCal": 0.00,
"vatOnIPMTEqPApplied": 0.00,
"interestVATNotRecalc": false,
"vatOnBalloonIntCalc": 0.00,
"vatOnBallonIntApplied": 0.00,
"emailNotificationCreated": false,
"skipInsurance": false,
"skipServices": false,
"skipInstallmentFee": false,
"ipmt": 0.00,
"closingOutstanding": 0.00,
"closingOutstandingInclVAT": 0.00,
"assetVariationFactor": 0.00,
"amountAddedToInstallment": 0.00,
"hpVatAmountAdded": false
},
{
"entryType": "Installment",
"period": 2,
"date": "2023-04-14",
"dateNotRecalc": false,
"invoiced": false,
"interestRate": 0.00,
"currencyCode": "",
"principalAmount": 0.00,
"principalInclVAT": 0.00,
"principalNotRecalc": false,
"principalChange": 0.00,
"interestAmount": 0.00,
"interestInclStampTax": 0.00,
"interestInclVAT": 0.00,
"interestNotRecalc": false,
"additionalLine": false,
"totalInstallment": 0.00,
"installmentInclVAT": 150.00,
"installmentNotRecalculated": false,
"installmentInclVATManual": 0.00,
"remainingDepositAmount": 0.00,
"remainingDepositInclVAT": 0.00,
"depositInclusionAmount": 0.00,
"depositInclusionInclVAT": 0.00,
"stampTaxAmountInterest": 0.00,
"stampTaxAmountIntslFee": 0.00,
"insurance": 0.00,
"insuranceInclVAT": 0.00,
"services": 0.00,
"servicesInclVAT": 0.00,
"adminFees": 0.00,
"adminFeesInclVAT": 0.00,
"installmentFees": 0.00,
"installmentFeesInclVAT": 0.00,
"balloonInterestCalculated": 0.00,
"balloonInterestApplied": 0.00,
"balloonInclVATIntCalc": 0.00,
"balloonInclVATIntApplied": 0.00,
"balloonInterestNotRecalc": false,
"vatOnIPMTCalculated": 0.00,
"vatOnIPMTEqualPartsCal": 0.00,
"vatOnIPMTEqPApplied": 0.00,
"interestVATNotRecalc": false,
"vatOnBalloonIntCalc": 0.00,
"vatOnBallonIntApplied": 0.00,
"emailNotificationCreated": false,
"skipInsurance": false,
"skipServices": false,
"skipInstallmentFee": false,
"ipmt": 0.00,
"closingOutstanding": 0.00,
"closingOutstandingInclVAT": 0.00,
"assetVariationFactor": 0.00,
"amountAddedToInstallment": 0.00,
"hpVatAmountAdded": false
}
],
"contractGuaranteesIndirect": [
{
"guaranteeCode": "BB",
"usedFor": "Contract",
"startingDate": "2024-03-14",
"endingDate": "2025-04-14",
"amount": 50,
"note": ""
},
{
"guaranteeCode": "A",
"usedFor": "Contract",
"startingDate": "2026-03-14",
"endingDate": "2027-04-14",
"amount": 99,
"note": ""
},
{
"guaranteeCode": "BB",
"usedFor": "Contract",
"startingDate": "2026-03-14",
"endingDate": "2027-04-14",
"amount": 67,
"note": ""
}
]
}
],
"assetsIndirect": [
{
"residualValue": 2000,
"model": "803534920200101",
"assetBrand": "",
"assetGroup": "",
"assetCategory": "LEXUS CT",
"assetDescription": "",
"modelYear": 2023,
"assetNewUsed": "New",
"vin": "454191",
"licencePlateNo": "123456",
"engineNo": "5491",
"purchasePrice": 20000,
"residualPerc": 0,
"vatGroup": "VAT FL",
"startingMileageKm": 0,
"mileageLimitKmYear": 50000,
"pricePerKmOverLimit": 0.1,
"firstRegistrationDate": "2020-01-01",
"contractAssetServicesIndirect": [
{
"code": "01 REG",
"assetID": "",
"serviceCostAnnual": 300,
"serviceCostMonthly": 0,
"currencyCode": "",
"paymentDue": "With Upfront Fees",
"overBudget": "Not applicable",
"totalAmount": 0,
"noOfMonths": 0,
"acquisitionSource": "Asset Supplier",
"servicerNo": "",
"serviceCostPerLease": 0,
"asPercentOfServiceBase": 0,
"serviceBase": "Asset Price",
"serviceBaseAmount": 0,
"adminFeeAnnual": 0,
"adminFeePerLease": 0,
"adminFeePerEvent": 0,
"adminFeeAsPercentOfCost": 0,
"included": true,
"overrideStandardPrice": false,
"mandatory": false
},
{
"code": "03 GPS",
"assetID": "",
"serviceCostAnnual": 500,
"serviceCostMonthly": 0,
"currencyCode": "",
"paymentDue": "With Upfront Fees",
"overBudget": "Not applicable",
"totalAmount": 0,
"noOfMonths": 0,
"acquisitionSource": "Asset Supplier",
"servicerNo": "",
"serviceCostPerLease": 0,
"asPercentOfServiceBase": 0,
"serviceBase": "Asset Price",
"serviceBaseAmount": 0,
"adminFeeAnnual": 0,
"adminFeePerLease": 0,
"adminFeePerEvent": 0,
"adminFeeAsPercentOfCost": 0,
"included": true,
"overrideStandardPrice": false,
"mandatory": false
}
],
"contractAssetInsurancesIndirect": [
{
"insuranceProductCode": "CI-ALPHA",
"assetId": "",
"treatAs": "With Upfront Fees",
"overBudget": "Not applicable",
"insuranceBase": 0,
"coefficientPct": 0,
"annualPayment": 0,
"annualPaymentLCY": 0,
"monthlyPayment": 50,
"monthlyPaymentLCY": 0,
"totalAmount": 0,
"totalAmountLCY": 0,
"noOfMonths": 0,
"currencyCode": "",
"postingDescription": "",
"commissionPayableAmount": 0,
"commissionReceivableAmount": 0,
"customerNo": "",
"insurerNo": "",
"included": true,
"overrideStandardPrice": false,
"mandatory": false
},
{
"insuranceProductCode": "CI-OMEGA",
"assetId": "",
"treatAs": "With Upfront Fees",
"overBudget": "Not applicable",
"insuranceBase": 0,
"coefficientPct": 0,
"annualPayment": 0,
"annualPaymentLCY": 0,
"monthlyPayment": 100,
"monthlyPaymentLCY": 0,
"totalAmount": 0,
"totalAmountLCY": 0,
"noOfMonths": 0,
"currencyCode": "",
"postingDescription": "",
"commissionPayableAmount": 0,
"commissionReceivableAmount": 0,
"customerNo": "",
"insurerNo": "",
"included": true,
"overrideStandardPrice": false,
"mandatory": false
}
],
"contractAssetOptionsIndirect": [
{
"equipmentCode": "ANTENA",
"description": "Antena",
"equipmentType": "Accessories",
"vatGroup": "VAT",
"purchasePrice": 600,
"purchasePriceExclVAT": 0,
"acquisitionSource": "Supplier",
"supplierNo": "1001"
},
{
"equipmentCode": "MPACK",
"description": "Mpack",
"equipmentType": "Bolt-On",
"vatGroup": "VAT",
"purchasePrice": 400,
"purchasePriceExclVAT": 0,
"acquisitionSource": "Supplier",
"supplierNo": "1001"
}
]
},
{
"model": "Chevrolet Testing",
"assetBrand": "Nokia",
"assetGroup": "A2",
"assetCategory": "A201",
"assetDescription": "Camarro",
"modelYear": 2023,
"assetNewUsed": "New",
"vin": "4541945491",
"licencePlateNo": "123456",
"engineNo": "5491",
"purchasePrice": 20000,
"residualPerc": 0,
"residualValue": 2000,
"vatGroup": "VAT FL",
"startingMileageKm": 10000,
"mileageLimitKmYear": 6000,
"pricePerKmOverLimit": 0.1,
"firstRegistrationDate": "2020-01-01",
"contractAssetServicesIndirect": [
{
"code": "03 GPS",
"assetID": "",
"serviceCostAnnual": 500,
"serviceCostMonthly": 0,
"currencyCode": "",
"paymentDue": "With Upfront Fees",
"overBudget": "Not applicable",
"totalAmount": 0,
"noOfMonths": 0,
"acquisitionSource": "Asset Supplier",
"servicerNo": "",
"serviceCostPerLease": 0,
"asPercentOfServiceBase": 0,
"serviceBase": "Asset Price",
"serviceBaseAmount": 0,
"adminFeeAnnual": 0,
"adminFeePerLease": 0,
"adminFeePerEvent": 0,
"adminFeeAsPercentOfCost": 0,
"included": true,
"overrideStandardPrice": false,
"mandatory": false
},
{
"code": "03 GPS",
"assetID": "",
"serviceCostAnnual": 1000,
"serviceCostMonthly": 0,
"currencyCode": "",
"paymentDue": "Included in Installment",
"overBudget": "Not applicable",
"totalAmount": 0,
"noOfMonths": 0,
"acquisitionSource": "Asset Supplier",
"servicerNo": "",
"serviceCostPerLease": 0,
"asPercentOfServiceBase": 0,
"serviceBase": "Asset Price",
"serviceBaseAmount": 0,
"adminFeeAnnual": 0,
"adminFeePerLease": 0,
"adminFeePerEvent": 0,
"adminFeeAsPercentOfCost": 0,
"included": true,
"overrideStandardPrice": false,
"mandatory": false
}
],
"contractAssetInsurancesIndirect": [
{
"insuranceProductCode": "CI-OMEGA",
"assetId": "",
"treatAs": "With Upfront Fees",
"overBudget": "Not applicable",
"insuranceBase": 0,
"coefficientPct": 0,
"annualPayment": 0,
"annualPaymentLCY": 0,
"monthlyPayment": 50,
"monthlyPaymentLCY": 0,
"totalAmount": 0,
"totalAmountLCY": 0,
"noOfMonths": 0,
"currencyCode": "",
"postingDescription": "",
"commissionPayableAmount": 0,
"commissionReceivableAmount": 0,
"customerNo": "",
"insurerNo": "",
"included": true,
"overrideStandardPrice": false,
"mandatory": false
}
]
}
]
}