Core conceptsRequests & responses
Requests & responses
Base URLs
| Environment | Base URL |
|---|---|
| Production | https://open.mallplus.ph |
| Sandbox | https://sandbox.open.mallplus.ph |
All endpoints are prefixed /open/v1. HTTPS only; plain HTTP is rejected.
Request format
- Bodies are JSON with
Content-Type: application/json. - Maximum body size is 1 MB. Larger requests are rejected with
413 PAYLOAD_TOO_LARGEbefore authentication. - Unknown fields are rejected, not ignored. Every schema is strict, so a typo in a field name returns
400 VALIDATION_ERRORrather than silently dropping your value.
Response envelopes
// Success
{ "success": true, "data": { … } }
// Success — list, with pagination metadata
{ "success": true, "data": [ … ], "meta": { "page": 1, "limit": 20, "total": 137 } }
// Error
{
"success": false,
"error": { "code": "VALIDATION_ERROR", "message": "title is required" },
"requestId": "01HXYZ…"
}
Pagination
List endpoints take page (1-based) and limit, and return meta.total.
Page through until you have collected meta.total records; do not assume a short page means the end.
Money
All monetary values are integer centavos. 259900 is ₱2,599.00. Never send a decimal.
The maximum is 99999999 (₱999,999.99).
Dates and identifiers
- Timestamps are ISO-8601 UTC —
2026-08-15T09:30:00Z. - Date-only fields (pickup dates) are
YYYY-MM-DDin Asia/Manila. - Resource IDs are opaque strings. Do not parse them or assume a prefix.
Cross-tenant behaviour
A resource belonging to another seller returns 404 NOT_FOUND, never 403 — a 403
would confirm the resource exists and enable enumeration. If you get an unexpected 404 on an ID you believe is yours,
check in order: are you using the right access token for the right seller; has the seller revoked your authorization;
has the access token expired.