API reference / Auth

Create an authorization code after seller consent

POST/open/v1/auth/seller-consentScope: No data scope

Service Endpoint Seller token not required

EnvironmentBase URL + Path
Productionhttps://open.mallplus.ph/open/v1/auth/seller-consent
Sandboxhttps://sandbox.open.mallplus.ph/open/v1/auth/seller-consent
Common Signing and Seller Headers
HeaderTypeRequiredRulesDescription
X-MallPlus-Partner-IdstringYesIssued client ID for the calling app.Identifies the partner app whose secret signs the request.
X-MallPlus-TimestampintegerYesUnix timestamp in seconds; default acceptance window is 90 seconds.Prevents replay outside the allowed signing window.
X-MallPlus-Signature-VersionstringYesUse 3 for HMAC v3.Selects the request signing algorithm.
X-MallPlus-NoncestringYes32-64 lowercase hexadecimal characters, unique per request.Replay-protection nonce included in the v3 signing base string.
X-MallPlus-SignaturestringYesHMAC-SHA256 over timestamp, client ID, method, path, canonical query, body hash, and nonce.Cryptographic proof that the request was signed with the app secret.
X-MallPlus-Access-TokenstringConditionalRequired when the operation says seller token required.Seller OAuth access token returned by the authorization flow.
X-MallPlus-Seller-IdstringConditionalRequired when X-MallPlus-Access-Token is required.Seller ID bound to the seller OAuth token.

Parameters

This operation does not define path or query parameters in OpenAPI.

Request Body

The JSON request body declares no fields.

Response Parameters

Success status: HTTP 200

FieldTypeRulesDescription
successenumAllowed: trueWhether the request completed successfully.
dataSellerConsentDataNo additional propertiesResponse or event payload for this schema.
data.codestring-One-time authorization code for POST /auth/token. This is not an access token.
data.seller_idstring-Seller identifier authorized for the partner app.
data.redirect_uristring<uri>Format: uriRegistered redirect URI associated with the consent session.
data.statestringMax length: 1024Opaque state originally supplied by the partner, returned unchanged when present.

Error Codes

HTTP StatusSchemaDescription
400PlatformError400ResponseValidation error, or a missing/malformed required signing header (BAD_REQUEST)
401PlatformError401ResponseUnauthorized — invalid credentials, invalid signature, or expired timestamp (TIMESTAMP_EXPIRED)
403PlatformError403ResponseForbidden — insufficient scope
413PlatformError413ResponseThe request body exceeds the endpoint payload limit
429PlatformError429ResponseThe partner or endpoint rate limit has been exceeded
503PlatformError503ResponseA required platform or upstream dependency is temporarily unavailable

This operation does not declare its own error.code list. Any operation can return the authentication, signing, scope, rate-limit and system codes listed in the Error code reference.

Request Example

# Sandbox: https://sandbox.open.mallplus.ph/open/v1/auth/seller-consent
curl -X POST "https://open.mallplus.ph/open/v1/auth/seller-consent" \
  -H "X-MallPlus-Partner-Id: mp_partner_123" \
  -H "X-MallPlus-Timestamp: 1786924800" \
  -H "X-MallPlus-Signature-Version: 3" \
  -H "X-MallPlus-Nonce: 4f8b9a0c4d5e6f708192a3b4c5d6e7f8" \
  -H "X-MallPlus-Signature: <hex_hmac_sha256>" \
  -H "Content-Type: application/json" \
  --data '{}'

Response Example

{
  "success": true,
  "data": {
    "code": "V1StGXR8_Z5jdHi6B-myT7zM0oLkN2pQ",
    "seller_id": "seller_nike_ph",
    "redirect_uri": "https://partner.example.com/callback",
    "state": "partner-generated-csrf-state"
  }
}