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
{
    "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.

Documentation

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.

Documentation

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