Delivery settings and couriers
- Credentials
- OAuth access token
- Scopes
store:read- Role
- Owners and admins only. Staff get
403 forbidden.
Access: OAuth scope store:read; owner/admin only; 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.
OK
application/json- response
data*curl -X GET 'https://api.shopeazy.co/v1/merchant/stores/<storeId>/delivery' \ -H 'Authorization: Bearer <access_token>'{ "data": { "settings": { "allowDelivery": false, "allowPickup": false, "mode": "flat", "flatFee": null, "freeOver": null, "markupBps": 0, "pickupNote": null, "defaultParcel": null, "collectionAddress": { "country": "ZA", "province": "Gauteng", "city": "Johannesburg", "postalCode": "2193", "localArea": "Greenside", "addressLine": "12 Example Street" }, "maxDeliveryPriceMinor": null, "maxDeliveryOptions": null, "boxes": [ { "id": "flyer", "name": "Flyer", "lengthCm": 25, "widthCm": 20, "heightCm": 5, "emptyWeightKg": 0.05 }, { "id": "small", "name": "Small box", "lengthCm": 25, "widthCm": 20, "heightCm": 10, "emptyWeightKg": 0.15 }, { "id": "medium", "name": "Medium box", "lengthCm": 35, "widthCm": 25, "heightCm": 20, "emptyWeightKg": 0.3 } ] }, "couriers": [ { "id": "courierguy", "name": "The Courier Guy", "blurb": "Door-to-door and PUDO lockers, countrywide.", "services": [ "Door-to-door", "PUDO lockers", "Tracking" ], "live": true, "accountLabel": "API key", "accountHint": "The Bearer token from Integration → Create API key.", "hasSandbox": true, "keysUrl": "https://portal.thecourierguy.co.za/login", "signupUrl": "https://portal.thecourierguy.co.za/register", "steps": [ "Sign in to the Courier Guy portal as the account owner.", "Open Integration on the left, then Create API key.", "Copy the key and paste it below." ], "brandColor": "#D4A017", "status": "none", "enabled": false, "env": null }, { "id": "bobgo", "name": "Bob Go", "blurb": "Compare several couriers from one account.", "services": [ "Multi-courier", "Tracking" ], "live": false, "accountLabel": "API key", "accountHint": null, "hasSandbox": false, "keysUrl": "https://www.bobgo.co.za", "signupUrl": "https://www.bobgo.co.za", "steps": [], "brandColor": "#0E9F6E", "status": "none", "enabled": false, "env": null }, { "id": "pudo", "name": "PUDO", "blurb": "Locker drops countrywide — usually the cheapest way to send a parcel.", "services": [ "Lockers", "Door to locker" ], "live": true, "accountLabel": "API key", "accountHint": "From Settings → API Keys in your PUDO dashboard.", "hasSandbox": true, "keysUrl": "https://customer.tcglocker.co.za", "signupUrl": "https://customer.tcglocker.co.za", "steps": [ "Sign in to your PUDO dashboard.", "Open Settings, then API Keys, and create a key.", "Copy the key and paste it below." ], "brandColor": "#F26722", "status": "none", "enabled": false, "env": null } ] }}Find courier lockers and counters GET
Neither `q` nor a point returns `lockers: []`. A read, so it is not write-gated: a store whose plan has lapsed can still search. Access: OAuth scope `orders:read`; not write-gated.
Save delivery settings PUT
Access: OAuth scope `settings:write`; owner/admin only; write-gated by the subscription.