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.

Documentation

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.

Documentation

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.

Documentation

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.

Documentation

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