Table of Contents

Introduction

The Leasing API enables dealers and TSPs to manage leasing offers for their vehicle listings programmatically. Its first endpoint introduces automatic leasing rate calculation: instead of entering rates manually, dealers request automatic leasing rates for an ad and the configured bank calculates them based on the vehicle data and the provided pricing parameters.

Currently, dealers must have registered their banking credentials via the Dealer Area UI before using automatic leasing through the API. API-based onboarding will be addressed in a future version.
Response times for the automatic leasing endpoint are significantly higher than typical API endpoints. Rate calculation takes approximately 650 ms on average (up to ~1 second end-to-end). Plan your integration accordingly.

Leasing API offers the following endpoints:

Access and Testing

Authentication and Authorization

The API is available at this base URL:

The Leasing API uses the same credentials as the Seller API. Authenticate with your existing Seller-API username and password using HTTP Basic authentication.

If you do not yet have API credentials, please contact the Customer Support for further details about the activation process.

For detailed information on HTTP Basic authentication see

API Sandbox

For testing purposes, an API sandbox environment is available. Interactive Swagger documentation is also available for exploring and testing the API.

Getting a Test Account

The API test account can be requested by email to service@team.mobile.de. The email should state that you request an API User account for the API Sandbox environment, including your project and requirements.

Media Types

The API uses JSON for all request and response bodies.

Media type HTTP header

JSON request

Content-Type: application/vnd.de.mobile.api+json

JSON response

Accept: application/vnd.de.mobile.api+json

HTTP Header Fields

HTTP header field Possible values Description

Content-Type

  1. application/vnd.de.mobile.api+json

  1. Required for requests with a body

Accept

  1. application/vnd.de.mobile.api+json

  1. Selects JSON as the response format

Authorization

Basic (base64 encode username:password)

HTTP Basic credentials. Combine username and password with a colon (e.g., username:password) and Base64-encode the result.

Swagger documentation

Swagger Production documentation:

Swagger Sandbox documentation:

Automatic Leasing

Automatic leasing allows dealers to have leasing rates calculated for a vehicle listing without entering them manually. The configured bank calculates a matrix of rate variants across configured durations and mileages based on the vehicle data and the pricing parameters provided in the request.

Only vehicles from makes supported by the configured bank can use automatic leasing. Currently only BMW Financial Services is supported (BMW and MINI makes).
Dealers must have registered their banking credentials via the Dealer Area UI before using this endpoint. The endpoint returns 403 Forbidden if no valid banking credentials are on file.

Request Automatic Leasing Rates

Triggers automatic leasing rate calculation for a given ad. The resulting leasing offer is stored and accessible via the existing Seller API leasing retrieval endpoint (GET /seller-api/sellers/{mobileSellerId}/ads/{mobileAdId}/leasing).

Calling this endpoint multiple times for the same ad overwrites the existing rates.

Request

Resource Path Method Content-Type Response

https://services.mobile.de/leasing-api/automatic-leasing/sellers/{mobileSellerId}/ads/{mobileAdId}

POST

application/vnd.de.mobile.api+json

Response Body Fields

Path Parameters
Parameter Type Description

mobileSellerId

Integer

The mobile.de seller ID.

mobileAdId

Integer

The mobile.de ad ID.

Example request
POST /leasing-api/automatic-leasing/sellers/12345/ads/67890 HTTP/1.1
Host: services.mobile.de
Content-Type: application/vnd.de.mobile.api+json
Accept: application/vnd.de.mobile.api+json
Authorization: Basic dXNlcjpwYXNz
{
  "type": "PRIVATE",
  "automaticLeasingSettings": {
    "bank": "BMW",
    "grossListPrice": 45000,
    "destinationCharges": "895.00",
    "registrationFees": "150.00",
    "grossDiscount": "2000.00",
    "grossPriceExtras": "1500.00"
  },
  "specialConditions": {
    "EV_BONUS": {
      "customDealerText": "Funding possible if you meet the requirements and comply with the minimum duration/holding period according to the e-car funding guidelines. No legal entitlement.",
      "discount": "6000.00"
    }
  }
}
Request Body Fields
Field Type Required Description

type

String

No

Customer type: PRIVATE or COMMERCIAL. If omitted, rates are calculated for both types.

automaticLeasingSettings

Object

Yes

Pricing parameters for rate calculation. See automaticLeasingSettings Fields.

specialConditions

Object

No

Map of special condition identifiers to condition details. Uses the same schema as the existing manual leasing endpoint.

automaticLeasingSettings Fields
Field Type Required Description

bank

String

Yes

The bank to calculate rates with. Currently only BMW is supported (BMW Financial Services).

grossListPrice

Integer

Conditional

Gross list price in whole euros. Required when condition is NEW, or for used cars with usageType DEMONSTRATION, PRE_REGISTRATION, or EMPLOYEES_CAR.

grossSalesPrice

Integer

Conditional

Gross sales price in whole euros. Required for all other used cars.

destinationCharges

String

No

Transfer fees in euros. Maximum: 2000.00.

registrationFees

String

No

Registration fees in euros. Maximum: 400.00.

grossDiscount

String

No

Gross discount in euros.

grossPriceExtras

String

No

Gross price of extras in euros.

Decimal monetary values are represented as JSON strings (e.g. "895.00") to avoid floating-point rounding errors. grossListPrice and grossSalesPrice are whole-euro integers.

Response

On success, the endpoint returns 201 Created with the calculated leasing offer. The Location header points to the Seller API retrieval endpoint for the created offer.

{
  "grossListPrice": 45000,
  "vatRate": "19.00",
  "lender": "BMW Bank GmbH, Lilienthalallee 26, 80939 München",
  "rates": [
    {
      "type": "PRIVATE",
      "downPayment": 0,
      "termOfContract": 36,
      "annualMileage": 15000,
      "grossRate": "499.00",
      "totalAmount": "17964.00",
      "annualPercentageRate": "3.99",
      "nominalInterestRate": "3.91",
      "netLoanAmount": "43000.00",
      "extraMileageCosts": "0.09",
      "lowMileageCompensation": "0.06"
    }
  ],
  "automaticLeasingSettings": {
    "bank": "BMW",
    "grossListPrice": 45000,
    "destinationCharges": "895.00",
    "registrationFees": "150.00",
    "grossDiscount": "2000.00",
    "grossPriceExtras": "1500.00"
  }
}
Response Body Fields
Field Type Description

grossListPrice

Integer

Gross list price in whole euros.

vatRate

String

VAT rate applied (e.g. "19.00").

lender

String

Name of the lending bank (e.g. "BMW Bank GmbH").

rates

Array

List of calculated rate variants. Each entry covers a specific customer type, contract duration, and annual mileage combination. See Rate Object Fields.

specialConditions

Object

Special conditions echoed back from the request, if provided.

automaticLeasingSettings

Object

Pricing parameters echoed back from the request.

Rate Object Fields
Field Type Description

type

String

Customer type: PRIVATE or COMMERCIAL.

downPayment

Integer

Down payment in euros. Always 0 for automatically calculated rates.

termOfContract

Integer

Contract duration in months. Possible values: 6, 12, 18, 24, 27, 30, 33, 36, 42, 48, 54, 60, 72.

annualMileage

Integer

Annual mileage in km/year. Possible values: 3000, 5000, 6000, 10000, 12000, 15000, 20000, 25000, 30000, 40000.

grossRate

String

Monthly gross rate including VAT. Provided for PRIVATE rates.

netRate

String

Monthly net rate excluding VAT. Provided for COMMERCIAL rates.

totalAmount

String

Total amount payable over the contract term.

netLoanAmount

String

Net loan amount (Nettodarlehnbetrag).

annualPercentageRate

String

Effective annual interest rate (Effektiver Jahreszins).

nominalInterestRate

String

Nominal annual interest rate (Sollzins p.a.).

destinationCharges

String

Transfer fees included in the calculation.

registrationFees

String

Registration fees included in the calculation.

extraMileageCosts

String

Cost per km over the contracted mileage limit.

lowMileageCompensation

String

Compensation per km under the contracted mileage limit.

Response Status Codes
Status Description

201 Created

Automatic leasing rates calculated and stored successfully.

400 Bad Request (automatic_leasing_ad_has_no_vin)

The ad lacks a VIN, which is required for rate calculation.

400 Bad Request (automatic_leasing_unsupported_make_for_bank)

The ad’s make is not supported by BMW Financial Services. Only BMW and MINI are supported.

400 Bad Request (leasing_ad_has_no_vat)

The ad has no VAT, which is required for leasing.

400 Bad Request (invalid-value)

A request field contains an invalid value.

403 Forbidden

The API user is not authorized to manage this seller’s ads, or the dealer has no valid banking credentials (not onboarded via the Dealer Area UI).

409 Conflict (leasing_overwrite_protection)

A manually created leasing offer already exists for this ad. Delete it first before requesting automatic leasing rates.

422 Unprocessable Entity (automatic_leasing_no_rates_available)

BMW Financial Services has no rates available for this vehicle (e.g. unsupported model or configuration).

Error Response Format
{
  "errors": [
    {
      "key": "automatic_leasing_ad_has_no_vin",
      "args": []
    }
  ]
}

References

Resources Reference

This section contains a summary of all endpoints provided by the Leasing API.

All endpoints are available at the following base URL:

Please refer to the Introduction section for information on how to access the API.

Name Method Endpoint Body

Request Automatic Leasing Rates

POST

/leasing-api/automatic-leasing/sellers/{mobileSellerId}/ads/{mobileAdId}

Request body

Support

Customer Support Contact

Please contact the Customer Support team if you need further assistance.

Country Contact Details

Germany

Phone: +49 (0) 30 81097500 or Contact Form