Roughly what dropping off saves against a driver collecting
- Credentials
- OAuth access token
- Scopes
store:read
Priced for the store's default parcel to where its customers actually are (its most recent delivery address), because a saving to nowhere in particular is a number nobody can trust. Asks the courier for two rates; if it cannot be reached the answer is saving: null, never an error. A read, so it is not write-gated.
Access: OAuth scope store:read; not write-gated.
merchantOAuth store:readAuthorizationBearer <token>OAuth 2.1 (authorization code + PKCE S256, public clients, dynamic registration) for connected AI apps. Effective power is scopes granted AND the person's role today AND the plan. orders:refund, billing:write and team:write are opt-in on the consent screen. Write implies read for marketing:read and messages:read, so a grant holding marketing:write passes a marketing:read check, and messages:send passes messages:read.
Scope: store:read
storeId*stringA store the person can reach. Any other id answers 404, never 403.
providerId*stringA payment provider id (e.g. yoco, peach, ikhokha) or courier id.
pointId?stringThe drop-off point to price (from findLockers). Needed for couriers whose drop-off is a point.
OK
application/json- response
data*curl -X GET 'https://api.shopeazy.co/v1/merchant/stores/<storeId>/delivery/couriers/<providerId>/drop-off-saving' \ -H 'Authorization: Bearer <access_token>'{ "data": { "saving": { "savingMinor": 0, "to": "string" } }}Save one courier's own settings PATCH
Services, hand-over, drop-off point and markup of one courier, written one field at a time so nothing else of the delivery settings is touched. The answer is the config as it now stands. Sending the same values again changes nothing, so a retry is safe. Access: OAuth scope `settings:write`; owner/admin only; write-gated by the subscription.
Save "You deliver": the shop's own delivery zones PUT
Replaces the zones the shop had, so a removed zone does not linger. Every zone is checked and a refusal says what to fix (a zone needs a name and a price; only one can be "everywhere"; a cut-off is like 12:00). Answers with the settings as saved. Access: OAuth scope `settings:write`; owner/admin only; write-gated by the subscription.