Provides various services for communication between OneQrew partners and traders.
Request prices and/or availabilities
Prices and/or availabilities for one or more items can be requested by providing a list of items.
POST
JSON
/qpunchout/api/v1/items/prices-and-availabilities
Requests
| Description | Example |
|---|---|
|
Content-Type:
application/json
|
{
"onlyAvailabilitiesPreferred": false,
"onlyPricesPreferred": false,
"zipCode": "12345",
"country": "DE",
"items": [
{
"position": "5980936a-8fe5-477f-93e1-6f81e2afcb99",
"itemNumber": "1235678"
},
{
"position": "3455a9d7-f5b5-4770-8aae-fa166b1ae8c3",
"itemNumber": "87654321"
},
{
"position": "4912ce4e-38a6-41a2-8cf5-13467e264476",
"itemNumber": "234567"
}
]
}
|
Responses
| Description | Example |
|---|---|
|
200
Content-Type:
application/json
|
{
"success": true,
"error": false,
"items": [
{
"position": "5980936a-8fe5-477f-93e1-6f81e2afcb99",
"itemNumber": "1235678",
"pricePerUnit": 40.0,
"priceScales": [
{
"quantity": 100,
"pricePerUnit": 38.0
},
{
"quantity": 1000,
"pricePerUnit": 34.0
}
],
"minOrderQuantity": 1,
"orderStep": 1,
"priceQuantity": 1,
"stockInfo": "IN_STOCK",
"stockQuantity": 1000,
"unit": "PCE"
},
{
"position": "3455a9d7-f5b5-4770-8aae-fa166b1ae8c3",
"itemNumber": "87654321",
"pricePerUnit": 20.0,
"minOrderQuantity": 25,
"orderStep": 25,
"priceQuantity": 100,
"stockInfo": "LOW_STOCK",
"stockQuantity": 50,
"unit": "MTR"
},
{
"position": "4912ce4e-38a6-41a2-8cf5-13467e264476",
"itemNumber": "234567",
"error": true,
"message": "The item number '234567' is unknown"
}
]
}
|
|
400
Missing parameter or malformed request
Content-Type:
application/json
|
{
"success": false,
"error": true,
"message": "The parameter {missingParameter} must be filled."
}
|
|
401
Authentication required but none provided
Content-Type:
application/json
|
|
|
403
Invalid authentication or missing permission
Content-Type:
application/json
|
|
|
404
Resource not found
Content-Type:
application/json
|
|
|
405
Incorrect request method, e.g. GET instead of POST
Content-Type:
application/json
|
|
|
500
Unexpected server-side error
Content-Type:
application/json
|
Request prices and availabilities for use in baskets
Prices and availabilities for one or more items can be requested by providing a list of items.
POST
JSON
/qpunchout/api/v1/basket/prices-and-availabilities
Requests
| Description | Example |
|---|---|
|
Content-Type:
application/json
|
{
"zipCode": "12345",
"country": "DE",
"orderMethod": "order",
"shippingMethod": "pickup",
"pickupSite": "2270",
"items": [
{
"position": "67723df2-d72b-479a-8c9b-992f6482c42a",
"itemNumber": "1235678",
"quantity": 90
},
{
"position": "6b6e1d75-b726-46d5-98a6-9257986ca2c8",
"itemNumber": "1235678",
"quantity": 10
},
{
"position": "fd056114-86fb-4404-af43-7f824c050090",
"itemNumber": "87654321",
"quantity": 100
},
{
"position": "d64ab0b8-f67f-4d0a-904a-2c831419a51a",
"itemNumber": "234567",
"quantity": 0.5
}
]
}
|
Responses
| Description | Example |
|---|---|
|
200
Content-Type:
application/json
|
{
"success": true,
"error": false,
"items": [
{
"position": "67723df2-d72b-479a-8c9b-992f6482c42a",
"itemNumber": "1235678",
"price": 3420.0,
"pricePerUnit": 38.0,
"priceScales": [
{
"quantity": 100,
"pricePerUnit": 38.0
},
{
"quantity": 1000,
"pricePerUnit": 34.0
}
],
"quantity": 90,
"minOrderQuantity": 1,
"orderStep": 1,
"priceQuantity": 1,
"stockInfo": "IN_STOCK",
"stockQuantity": 1000,
"unit": "PCE"
},
{
"position": "6b6e1d75-b726-46d5-98a6-9257986ca2c8",
"itemNumber": "1235678",
"price": 380.0,
"pricePerUnit": 38.0,
"priceScales": [
{
"quantity": 100,
"pricePerUnit": 38.0
},
{
"quantity": 1000,
"pricePerUnit": 34.0
}
],
"quantity": 10,
"minOrderQuantity": 1,
"orderStep": 1,
"priceQuantity": 1,
"stockInfo": "IN_STOCK",
"stockQuantity": 1000,
"unit": "PCE"
},
{
"position": "fd056114-86fb-4404-af43-7f824c050090",
"itemNumber": "87654321",
"price": 20.0,
"pricePerUnit": 20.0,
"quantity": 100,
"minOrderQuantity": 25,
"orderStep": 25,
"priceQuantity": 100,
"stockInfo": "LOW_STOCK",
"stockQuantity": 50,
"unit": "MTR"
},
{
"position": "d64ab0b8-f67f-4d0a-904a-2c831419a51a",
"itemNumber": "234567",
"error": true,
"message": "The item number '234567' is unknown"
}
],
"netSum": 3820.00,
"costPositions": [
{
"itemNumber": "S",
"price": 9.5,
"shortText": "Kleinstauftrag-Zuschlag"
}
],
"basketMessages": [
{
"messageLevel": "WARNING",
"message": "Diese Bestellung überschreitet Ihr aktuell freies Limit. Diese Bestellung wird intern geprüft und nicht sofort ausgeführt."
}
]
}
|
|
400
Missing parameter or malformed request
Content-Type:
application/json
|
{
"success": false,
"error": true,
"message": "The parameter {missingParameter} must be filled."
}
|
|
401
Authentication required but none provided
Content-Type:
application/json
|
|
|
403
Invalid authentication or missing permission
Content-Type:
application/json
|
|
|
404
Resource not found
Content-Type:
application/json
|
|
|
405
Incorrect request method, e.g. GET instead of POST
Content-Type:
application/json
|
|
|
500
Unexpected server-side error
Content-Type:
application/json
|
Validate trader checkout options
Validates trader-specific checkout selections and returns the validated trader state, selectable values, custom fields and user-facing messages.
POST
JSON
/qpunchout/api/v1/checkout/validate
Requests
| Description | Example |
|---|---|
|
Content-Type:
application/json
|
{
"order": {
"orderMethodId": "order",
"shippingTypeId": "delivery",
"desiredDeliveryDate": "2026-03-20",
"shippingAddress": {
"name1": "Muster GmbH",
"street": "Musterstraße 1",
"zipCode": "71384",
"city": "Weinstadt",
"countryCode": "DE"
}
},
"trader": {
"shippingMethodId": "delivery",
"paymentMethodId": "invoice",
"tourId": null,
"pickupSiteId": null,
"customFields": {
"customerAccountAssignment": ""
}
}
}
|
Responses
| Description | Example |
|---|---|
|
200
Content-Type:
application/json
|
{
"order": {
"validatedOrderMethodId": "order",
"desiredDeliveryDateRequired": true,
"orderMethodMessages": []
},
"trader": {
"messages": [],
"shippingMethod": {
"selectedId": "delivery",
"values": [
{
"id": "delivery",
"name": "Lieferung"
},
{
"id": "pickup",
"name": "Abholung"
}
]
},
"paymentMethod": {
"selectedId": "invoice",
"values": [
{
"id": "invoice",
"name": "Rechnung"
}
]
},
"customFields": {
"customerAccountAssignment": {
"label": "Kostenstelle",
"value": "",
"type": "STRING",
"messages": [
{
"message": "Die Angabe Ihrer Kostenstelle ist erforderlich.",
"messageLevel": "ERROR"
}
]
}
}
}
}
|
|
400
Missing parameter or malformed request
Content-Type:
application/json
|
{
"success": false,
"error": true,
"message": "The parameter {missingParameter} must be filled."
}
|
|
401
Authentication required but none provided
Content-Type:
application/json
|
|
|
403
Invalid authentication or missing permission
Content-Type:
application/json
|
|
|
404
Resource not found
Content-Type:
application/json
|
|
|
405
Incorrect request method, e.g. GET instead of POST
Content-Type:
application/json
|
|
|
500
Unexpected server-side error
Content-Type:
application/json
|
Finalize the trader checkout
Executes the trader-side checkout for the assigned items and returns the finalized trader result.
POST
JSON
/qpunchout/api/v1/checkout/finalize
Requests
| Description | Example |
|---|---|
|
Content-Type:
application/json
|
{
"order": {
"punchoutOrderNumber": "1304711",
"orderMethodId": "order",
"shippingTypeId": "delivery",
"desiredDeliveryDate": "2026-03-20",
"shippingAddress": {
"name1": "Muster GmbH",
"street": "Musterstraße 1",
"zipCode": "71384",
"city": "Weinstadt",
"countryCode": "DE"
}
},
"trader": {
"shippingMethodId": "delivery",
"paymentMethodId": "invoice",
"tourId": "tour-a",
"pickupSiteId": null,
"customFields": {
"customerAccountAssignment": "4711"
},
"items": [
{
"positionId": "74bc7bc5-54e3-451f-ad38-70964a8ec85d",
"traderItemNumber": "ART-1000",
"quantity": 10
}
]
}
}
|
Responses
| Description | Example |
|---|---|
|
200
Content-Type:
application/json
|
{
"trader": {
"netSum": 129.90,
"messages": [],
"paymentMethodId": "invoice",
"shippingMethodId": "delivery",
"pickupSiteId": null,
"tourId": "tour-a",
"customFields": {
"customerAccountAssignment": {
"label": "Kostenstelle",
"value": "4711",
"type": "STRING",
"messages": []
}
},
"items": [
{
"positionId": "74bc7bc5-54e3-451f-ad38-70964a8ec85d",
"traderItemNumber": "ART-1000",
"quantity": 10,
"netPrice": 119.90,
"netPricePerUnit": 11.99,
"unit": "PCE",
"messages": []
}
],
"costPositions": [
{
"itemNumber": "S",
"price": 9.90,
"shortText": "Versandkosten"
}
],
"traderBasketUrl": "https://example.org/ordercenter/4711",
"traderShopOrderNumber": "SO-100045",
"traderErpBasketNumber": "ERP-4711"
}
}
|
|
400
Missing parameter or malformed request
Content-Type:
application/json
|
{
"success": false,
"error": true,
"message": "The parameter {missingParameter} must be filled."
}
|
|
401
Authentication required but none provided
Content-Type:
application/json
|
|
|
403
Invalid authentication or missing permission
Content-Type:
application/json
|
|
|
404
Resource not found
Content-Type:
application/json
|
|
|
405
Incorrect request method, e.g. GET instead of POST
Content-Type:
application/json
|
|
|
500
Unexpected server-side error
Content-Type:
application/json
|