PayPal Orders API: shipping.options not persisted / PATCH replace fails when shipping address is missing

2 hours ago 1
ARTICLE AD BOX

Question

I’m using the PayPal Orders v2 API and trying to update shipping.options without providing shipping address data.

Issue

When I create an order with shipping.options but without shipping.address, PayPal accepts the request but does not persist the options.
Later, a PATCH request fails with:

INVALID_PATCH_OPERATION Cannot replace a property that’s not present

Create order (options ignored)

{ "intent": "CAPTURE", "purchase_units": [ { "amount": { "currency_code": "USD", "value": "100.00" }, "shipping": { "options": [ { "id": "STANDARD", "label": "Standard Shipping", "type": "SHIPPING", "amount": { "currency_code": "USD", "value": "0.00" }, "selected": true } ] } } ] }

PATCH (fails)

[ { "op": "replace", "path": "/purchase_units/0/shipping/options", "value": [ ... ] } ]

Works only if address is provided

"shipping": { "name": { "full_name": "John Doe" }, "address": { "address_line_1": "123 Main St", "admin_area_1": "CA", "country_code": "US" }, "options": [ ... ] }

Questions

Is shipping address required for PayPal to persist shipping.options?

Is this behavior expected or documented?

Is there a supported way to update shipping.options without providing address data?

Read Entire Article