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
|
{
"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",
"messages": [
{
"message": "The item number '234567' is unknown",
"messageLevel": "ERROR"
}
]
}
]
}
|
|
400
Malformed request
Content-Type:
application/json
|
{
"messages": [
{
"message": "An unexpected error occurred",
"messageLevel": "ERROR"
}
]
}
|
|
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
|
Compute trader checkout options and prices
Validates trader-specific checkout selections and computes item prices, cost positions and messages.
POST
JSON
/qpunchout/api/v1/checkout/compute
Requests
| Description | Example |
|---|---|
|
Content-Type:
application/json
|
{
"order": {
"orderType": "ORDER",
"shippingType": "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": ""
},
"items": [
{
"positionId": "74bc7bc5-54e3-451f-ad38-70964a8ec85d",
"traderItemNumber": "ART-1000",
"quantity": 10
}
]
}
}
|
Responses
| Description | Example |
|---|---|
|
200
Content-Type:
application/json
|
{
"order": {
"desiredDeliveryDateRequired": true
},
"trader": {
"netSum": 129.90,
"messages": [],
"shippingMethod": {
"selectedId": "delivery",
"values": [
{
"id": "delivery",
"name": "Lieferung"
}
]
},
"paymentMethod": {
"selectedId": "invoice",
"values": [
{
"id": "invoice",
"name": "Rechnung"
}
]
},
"items": [
{
"positionId": "74bc7bc5-54e3-451f-ad38-70964a8ec85d",
"traderItemNumber": "ART-1000",
"quantity": 10,
"netPrice": 119.90,
"netPricePerUnit": 11.99,
"priceScales": [
{
"quantity": 100,
"pricePerUnit": 10.99
}
],
"stockInfo": "IN_STOCK",
"stockQuantity": 1000,
"unit": "PCE",
"messages": []
}
],
"costPositions": [
{
"itemNumber": "S",
"price": 9.90,
"shortText": "Versandkosten"
}
]
}
}
|
|
400
The request is invalid or cannot be processed
Content-Type:
application/json
|
{
"trader": {
"messages": [
{
"message": "An unexpected error occurred",
"messageLevel": "ERROR"
}
]
}
}
|
|
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",
"orderType": "ORDER",
"shippingType": "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,
"priceScales": [
{
"quantity": 100,
"pricePerUnit": 10.99
}
],
"stockInfo": "IN_STOCK",
"stockQuantity": 1000,
"unit": "PCE",
"messages": []
}
],
"costPositions": [
{
"itemNumber": "S",
"price": 9.90,
"shortText": "Versandkosten"
}
],
"traderBasketUrl": "https://example.org/ordercenter/4711",
"traderShopOrderNumber": "SO-100045",
"traderErpBasketNumber": "ERP-4711"
}
}
|
|
400
The request is invalid or cannot be processed
Content-Type:
application/json
|
{
"trader": {
"messages": [
{
"message": "An unexpected error occurred",
"messageLevel": "ERROR"
}
]
}
}
|
|
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
|