API reference · Types
SendOrderAdditionOfferBody
Part of the request body of POST /orders/{orderId}/addition-offers.
Type: object
Example
{
"lines": [
{
"skuId": 1,
"quantity": 1
}
]
}Fields
linesarray of object requiredThe cards being offered. A SKU may be named only once, and you must hold a live listing for each: the reference price and the stock both come from it. The printing, condition, finish and language are frozen FROM the SKU, never restated here.
Constraints: minimum items: 1; maximum items: 25
Show child fieldsHide child fields
lines[].integer requiredskuId The canonical catalog SKU of the exact printing offered.
Constraints: exclusive minimum: 0
lines[].integer requiredquantity The number of units.
Constraints: minimum: 1; maximum: 100
lines[].integerunitPriceCents A DISCOUNTED price per unit. Omit it to offer at your current listing price, which is where new units start. A price ABOVE that listing price is refused.
Constraints: minimum: 0
shippingOptionIdintegerOne of YOUR OWN shipping options to upgrade the parcel to. Required exactly when the combined remaining quantities no longer fit the option the buyer already paid for, and REFUSED when they do - an addition that rides the existing parcel is charged nothing for carriage. The option must be a typed one (a legacy free-text option states no card capacity), must carry the whole combined parcel, and may not cost less than the shipping this parcel has already collected. The buyer approves only the difference over the shipping this parcel has already collected, so a second upgrade never re-charges the first.
Constraints: exclusive minimum: 0
notestringConstraints: minimum length: 1; maximum length: 1000
requestRefstringThe buyer request (
oar_…) this offer answers. Answering it moves it tooffered, so it can no longer be withdrawn or declined. Omit it for a DIRECT offer following a support conversation - a structured request is never a precondition.Constraints: pattern:
^oar_[0-9a-f]{32}$replacesOfferRefstringThe outstanding offer (
oao_…) this one REPLACES. Both the intent and the concurrency token: the old offer is ended and the new one reserved in a single transaction, and a ref that is no longer the outstanding one is refused rather than replacing whatever is. If the replacement cannot reserve its stock, nothing changes and the original offer and its reservation stay usable.Constraints: pattern:
^oao_[0-9a-f]{32}$