Cart
Shopping cart and checkout.
POST/api/carts
Creates a Cart resource.
Request body
| Name | Type | Required | Description |
|---|---|---|---|
| items | array<CartItemCreateDto-cart.create> | yes |
Example request
Example body
{
"items": [
{
"productNumber": "P-100200",
"productName": "Industrial Drill Press",
"productSku": "SKU-DRILL-5000",
"quantity": 2,
"price": 4540.11,
"productOptions": {
"color": "blue",
"size": "M"
},
"categoryId": 3,
"categorySlug": "hardware",
"devices": [
{
"bwBaselineCount": 1000,
"bwBaselinePrice": 0.01,
"bwOveragePrice": 0.02,
"colorBaselineCount": 200,
"colorBaselinePrice": 0.05,
"colorOveragePrice": 0.07,
"scanBaselineCount": 300,
"scanBaselinePrice": 0.03,
"scanOveragePrice": 0.04,
"locked": false
},
{
"bwBaselineCount": 1500,
"bwBaselinePrice": 0.01,
"bwOveragePrice": 0.02,
"locked": false
}
]
}
]
}
Code samples
curl -X POST 'https://sandbox.partner.miete24.com/api/carts' \
-H 'X-Api-Key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"items":[{"productNumber":"P-100200","productName":"Industrial Drill Press","productSku":"SKU-DRILL-5000","quantity":2,"price":4540.11,"productOptions":{"color":"blue","size":"M"},"categoryId":3,"categorySlug":"hardware","devices":[{"bwBaselineCount":1000,"bwBaselinePrice":0.01,"bwOveragePrice":0.02,"colorBaselineCount":200,"colorBaselinePrice":0.05,"colorOveragePrice":0.07,"scanBaselineCount":300,"scanBaselinePrice":0.03,"scanOveragePrice":0.04,"locked":false},{"bwBaselineCount":1500,"bwBaselinePrice":0.01,"bwOveragePrice":0.02,"locked":false}]}]}'
const response = await fetch('https://sandbox.partner.miete24.com/api/carts', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({"items":[{"productNumber":"P-100200","productName":"Industrial Drill Press","productSku":"SKU-DRILL-5000","quantity":2,"price":4540.11,"productOptions":{"color":"blue","size":"M"},"categoryId":3,"categorySlug":"hardware","devices":[{"bwBaselineCount":1000,"bwBaselinePrice":0.01,"bwOveragePrice":0.02,"colorBaselineCount":200,"colorBaselinePrice":0.05,"colorOveragePrice":0.07,"scanBaselineCount":300,"scanBaselinePrice":0.03,"scanOveragePrice":0.04,"locked":false},{"bwBaselineCount":1500,"bwBaselinePrice":0.01,"bwOveragePrice":0.02,"locked":false}]}]}),
});
const data = await response.json();
Responses
| Status | Description | Schema |
|---|---|---|
| 201 | Cart resource created | Cart.CartFinancingResponse-cart.financing |
| 400 | Invalid input | — |
| 422 | Unprocessable entity | — |
GET/api/carts/{id}
Retrieves a Cart resource.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | yes | Cart identifier |
Code samples
curl -X GET 'https://sandbox.partner.miete24.com/api/carts/{id}' \
-H 'X-Api-Key: YOUR_API_KEY'
const response = await fetch('https://sandbox.partner.miete24.com/api/carts/{id}', {
method: 'GET',
headers: {
'X-Api-Key': 'YOUR_API_KEY',
},
});
const data = await response.json();
Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Cart resource | Cart.CartFinancingResponse-cart.financing_cart.status |
| 404 | Resource not found | — |
PUT/api/carts/{id}
Replaces the Cart resource.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | yes | Cart identifier |
Request body
| Name | Type | Required | Description |
|---|---|---|---|
| items | array<CartItemCreateDto-cart.create> | yes |
Example request
Example body
{
"items": [
{
"productNumber": "P-100200",
"productName": "Industrial Drill Press",
"productSku": "SKU-DRILL-5000",
"quantity": 2,
"price": 4540.11,
"productOptions": {
"color": "blue",
"size": "M"
},
"categoryId": 3,
"categorySlug": "hardware",
"devices": [
{
"bwBaselineCount": 1000,
"bwBaselinePrice": 0.01,
"bwOveragePrice": 0.02,
"colorBaselineCount": 200,
"colorBaselinePrice": 0.05,
"colorOveragePrice": 0.07,
"scanBaselineCount": 300,
"scanBaselinePrice": 0.03,
"scanOveragePrice": 0.04,
"locked": false
},
{
"bwBaselineCount": 1500,
"bwBaselinePrice": 0.01,
"bwOveragePrice": 0.02,
"locked": false
}
]
}
]
}
Code samples
curl -X PUT 'https://sandbox.partner.miete24.com/api/carts/{id}' \
-H 'X-Api-Key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"items":[{"productNumber":"P-100200","productName":"Industrial Drill Press","productSku":"SKU-DRILL-5000","quantity":2,"price":4540.11,"productOptions":{"color":"blue","size":"M"},"categoryId":3,"categorySlug":"hardware","devices":[{"bwBaselineCount":1000,"bwBaselinePrice":0.01,"bwOveragePrice":0.02,"colorBaselineCount":200,"colorBaselinePrice":0.05,"colorOveragePrice":0.07,"scanBaselineCount":300,"scanBaselinePrice":0.03,"scanOveragePrice":0.04,"locked":false},{"bwBaselineCount":1500,"bwBaselinePrice":0.01,"bwOveragePrice":0.02,"locked":false}]}]}'
const response = await fetch('https://sandbox.partner.miete24.com/api/carts/{id}', {
method: 'PUT',
headers: {
'X-Api-Key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({"items":[{"productNumber":"P-100200","productName":"Industrial Drill Press","productSku":"SKU-DRILL-5000","quantity":2,"price":4540.11,"productOptions":{"color":"blue","size":"M"},"categoryId":3,"categorySlug":"hardware","devices":[{"bwBaselineCount":1000,"bwBaselinePrice":0.01,"bwOveragePrice":0.02,"colorBaselineCount":200,"colorBaselinePrice":0.05,"colorOveragePrice":0.07,"scanBaselineCount":300,"scanBaselinePrice":0.03,"scanOveragePrice":0.04,"locked":false},{"bwBaselineCount":1500,"bwBaselinePrice":0.01,"bwOveragePrice":0.02,"locked":false}]}]}),
});
const data = await response.json();
Responses
| Status | Description | Schema |
|---|---|---|
| 200 | Cart resource updated | Cart.CartFinancingResponse-cart.financing |
| 400 | Invalid input | — |
| 404 | Resource not found | — |
| 422 | Unprocessable entity | — |
POST/api/carts/{id}/checkout
Creates a Cart resource.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | yes | Cart identifier |
Request body
| Name | Type | Required | Description |
|---|---|---|---|
| duration | integer | yes | Ausgewählte Laufzeit in Monaten |
| financingType | string | yes | Financing type. Use "print_plan" (PH-590) to check the cart out as a Print-Plan contract: the cart items per-device click-billing data (CartItemCreateDto.devices) plus the printPlanContractTerms block are turned into a Print-Plan quote. serviceCost and customSlaFileName are not allowed for print_plan. PH-755: "print_plan_3kdg_12verl" and "print_plan_6kdg_12verl" are Print-Plan contract variants that behave identically but send their own producttype to GRENKE. |
| paymentInterval | string | no | Zahlungsweise; Default monthly. |
| commission | integer | no | Provisionsstufe in Prozent; Default 0. Es sind nur Stufen zulässig, für die dem Partner eine Mietfaktorenliste zugeordnet ist. |
| quoteNumber | string|null | no | Optional custom quote number. |
| printPlanContractTerms | mixed | no | Print-Plan contract terms (PH-590); only applied when financingType=print_plan. Optional — defaults: 5% page coverage, 15% color ratio, full maintenance. |
| customer | CustomerData-cart.checkout | yes | Kundendaten |
| serviceCost | number|null | no | Monatliche Servicegebühr für die Miete. |
| customSlaFileName | string|null | no | Kairos "file" identifier of the custom SLA selected for this quote. |
Example request
Example body
{
"duration": 36,
"financingType": "leasing",
"paymentInterval": "monthly",
"commission": 0,
"quoteNumber": "PARTNER-2026-001",
"printPlanContractTerms": {
"pageCoverage": 5,
"colorRatio": 15,
"maintenanceTonerColor": true,
"maintenanceDrums": true,
"maintenanceStaples": true,
"maintenancePaper": true
},
"customer": {
"firstName": "Anna",
"lastName": "Schmidt",
"email": "anna.schmidt@example.com",
"street": "Hauptstrasse",
"houseNumber": "12a",
"zipCode": "10115",
"city": "Berlin",
"country": "Deutschland",
"phone": "+49 30 1234567",
"company": "Schmidt GmbH",
"vatId": "DE123456789"
},
"serviceCost": 4.5,
"customSlaFileName": "gold-sla.pdf"
}
Code samples
curl -X POST 'https://sandbox.partner.miete24.com/api/carts/{id}/checkout' \
-H 'X-Api-Key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"duration":36,"financingType":"leasing","paymentInterval":"monthly","commission":0,"quoteNumber":"PARTNER-2026-001","printPlanContractTerms":{"pageCoverage":5,"colorRatio":15,"maintenanceTonerColor":true,"maintenanceDrums":true,"maintenanceStaples":true,"maintenancePaper":true},"customer":{"firstName":"Anna","lastName":"Schmidt","email":"anna.schmidt@example.com","street":"Hauptstrasse","houseNumber":"12a","zipCode":"10115","city":"Berlin","country":"Deutschland","phone":"+49 30 1234567","company":"Schmidt GmbH","vatId":"DE123456789"},"serviceCost":4.5,"customSlaFileName":"gold-sla.pdf"}'
const response = await fetch('https://sandbox.partner.miete24.com/api/carts/{id}/checkout', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({"duration":36,"financingType":"leasing","paymentInterval":"monthly","commission":0,"quoteNumber":"PARTNER-2026-001","printPlanContractTerms":{"pageCoverage":5,"colorRatio":15,"maintenanceTonerColor":true,"maintenanceDrums":true,"maintenanceStaples":true,"maintenancePaper":true},"customer":{"firstName":"Anna","lastName":"Schmidt","email":"anna.schmidt@example.com","street":"Hauptstrasse","houseNumber":"12a","zipCode":"10115","city":"Berlin","country":"Deutschland","phone":"+49 30 1234567","company":"Schmidt GmbH","vatId":"DE123456789"},"serviceCost":4.5,"customSlaFileName":"gold-sla.pdf"}),
});
const data = await response.json();
Responses
| Status | Description | Schema |
|---|---|---|
| 201 | Cart resource created | Cart.CheckoutResponseDto-checkout.response |
| 400 | Invalid input | — |
| 422 | Unprocessable entity | — |