Core conceptsRequests & responses

Requests & responses

Base URLs

EnvironmentBase URL
Productionhttps://open.mallplus.ph
Sandboxhttps://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_LARGE before authentication.
  • Unknown fields are rejected, not ignored. Every schema is strict, so a typo in a field name returns 400 VALIDATION_ERROR rather 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-DD in 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.