API reference / Orders

Ship an order with tracking information

Single-order shipping is available with limited production-readiness confirmation.

POST/open/v1/orders/{id}/shipScope: orders:write

Service Endpoint Seller token required

EnvironmentBase URL + Path
Productionhttps://open.mallplus.ph/open/v1/orders/{id}/ship
Sandboxhttps://sandbox.open.mallplus.ph/open/v1/orders/{id}/ship
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-TokenstringYesRequired when the operation says seller token required.Seller OAuth access token returned by the authorization flow.
X-MallPlus-Seller-IdstringYesRequired when X-MallPlus-Access-Token is required.Seller ID bound to the seller OAuth token.

Parameters

NameInTypeRequiredRulesDescription
idpathstringYes-The order ID.
Idempotency-KeyheaderstringYesMin length: 1Unique key, generated per request, used to safely retry this call.

Request Body required

FieldTypeRequiredRulesDescription
trackingNumberstringYesMin length: 1; Max length: 120Partner-provided tracking number.
trackingCompanystringYesMin length: 1; Max length: 80Partner-provided tracking company name.
itemsarray<OrderItemQuantityRequest>YesMin items: 1; Max items: 100Items associated with this request, response, or event.
items[]OrderItemQuantityRequestNoNo additional propertiesA line item and the quantity to act on.
items[].itemIdstringYesMax length: 64Line item ID.
items[].quantityintegerYesMinimum: 1; Maximum: 1000000Quantity of units.

Response Parameters

FieldTypeRulesDescription
successboolean-Whether the request completed successfully.
dataOrderNo additional propertiesResponse or event payload for this schema.
data.idstring-Unique identifier for this resource.
data.statusenumAllowed: READY_TO_SHIP, SHIPPED, DELIVERED, CANCELLED, RETURN_REFUNDCurrent status for this resource or workflow.
data.sellerIdstring-Seller ID associated with this value.
data.customerIdstring-Customer ID associated with this order.
data.buyerEmailstring<email>Format: emailBuyer email address. Returned by GET /orders and GET /orders/{id} only, and only when the app holds the customer:email:read scope. Absent otherwise, and never present on webhook payloads.
data.currencystring-ISO currency code for monetary amounts.
data.subtotalinteger-Integer amount in PHP centavos.
data.totalinteger-Integer amount in PHP centavos.
data.taxinteger-Integer amount in PHP centavos.
data.shippinginteger-Integer amount in PHP centavos.
data.discountinteger-Integer amount in PHP centavos.
data.paymentStatusstring-Current payment status for the order.
data.fulfillmentStatusstring-Current fulfillment status for the order.
data.created_atstring<date-time>Format: date-timeCreated at as an ISO-8601 timestamp.
data.updated_atstring<date-time>Format: date-timeUpdated at as an ISO-8601 timestamp.
data.itemsarray<OrderItem>-Items associated with this request, response, or event.
data.items[]OrderItemNo additional propertiesA partner-visible order line item.
data.fulfillmentsarray<Fulfillment>-Fulfillments values.
data.fulfillments[]FulfillmentNo additional propertiesPartner-safe fulfillment view. Carrier-internal fields are stripped at the API boundary.
data.shippingAddressAddressNo additional propertiesShipping address details.
data.billingAddressAddressNo additional propertiesBilling address details.
data.shipByDatestring<date-time>Format: date-time; NullableShip-by SLA deadline (ISO-8601), or null when the order has no SBD. Matches the deadline shown in Seller Center.
data.slaBreachedboolean-True when the order is unshipped and past its shipByDate. Present only when a deadline exists; false once the order has shipped (SLA no longer applicable).
data.shippingChannelstring-The forward logistics channel code the order ships via (e.g. "STANDARD_COURIER"), sourced from the order's selected channel. A routing key for WMS integration. Omitted when no channel has been assigned yet.
data.bookingStatusenumAllowed: PENDING_ARRANGE, READY_FOR_HANDOVERPre-shipment booking state. PENDING_ARRANGE means paid but unbooked; READY_FOR_HANDOVER means booking arranged and awaiting courier pickup. Omitted after courier handover progresses beyond the pre-shipment booking window.
data.items[]OrderItem · 10 fields

A partner-visible order line item.

FieldTypeRulesDescription
data.items[].idstring-Line-item identifier, unique within the order.
data.items[].orderIdstring-Order the line item belongs to.
data.items[].productIdstring-Product the line item was created from.
data.items[].variantIdstring-Variant of the product that was ordered. Absent when the upstream record carries no variant.
data.items[].titlestring-Product title as it appeared on the order.
data.items[].skustring-Seller SKU of the ordered variant.
data.items[].quantityinteger-Units ordered for this line.
data.items[].unitPriceinteger-Integer amount in PHP centavos.
data.items[].totalPriceinteger-Integer amount in PHP centavos.
data.items[].thumbnailstring-Product thumbnail URL. Present only when the upstream record carries one.
data.fulfillments[]Fulfillment · 10 fields

Partner-safe fulfillment view. Carrier-internal fields are stripped at the API boundary.

FieldTypeRulesDescription
data.fulfillments[].idstring-Unique identifier for this resource.
data.fulfillments[].statusenumAllowed: pending, shipped, delivered, cancelledCurrent status for this resource or workflow.
data.fulfillments[].orderIdstring-Order ID associated with this value.
data.fulfillments[].trackingNumberstring-Partner-provided tracking number.
data.fulfillments[].trackingCompanystring-Partner-provided tracking company name.
data.fulfillments[].created_atstring<date-time>Format: date-timeCreated at as an ISO-8601 timestamp.
data.fulfillments[].updated_atstring<date-time>Format: date-timeUpdated at as an ISO-8601 timestamp.
data.fulfillments[].itemsarray<FulfillmentItem>-Items associated with this request, response, or event.
data.fulfillments[].items[]FulfillmentItemNo additional propertiesA line item included in a fulfillment response.
data.fulfillments[].metadataFulfillmentMetadataNo additional propertiesAllowlisted partner-visible metadata.
data.fulfillments[].items[]FulfillmentItem · 2 fields

A line item included in a fulfillment response.

FieldTypeRulesDescription
data.fulfillments[].items[].itemIdstring-Line item ID.
data.fulfillments[].items[].quantityinteger-Quantity of units.
data.fulfillments[].metadataFulfillmentMetadata · 2 fields

Allowlisted partner-visible metadata.

FieldTypeRulesDescription
data.fulfillments[].metadata.tracking_numberstring-Shipment tracking number.
data.fulfillments[].metadata.tracking_companystring-Shipment tracking company name.
data.shippingAddressAddress · 8 fields

Shipping address details.

FieldTypeRulesDescription
data.shippingAddress.namestring-Partner-visible name.
data.shippingAddress.line1string-First line of the street address.
data.shippingAddress.line2string-Second line of the street address, when present.
data.shippingAddress.citystring-PSGC-aligned Philippine city or municipality.
data.shippingAddress.provincestring-PSGC-aligned Philippine province.
data.shippingAddress.postalCodestring-Postal code for the address.
data.shippingAddress.countrystring-ISO 3166-1 alpha-2 country code.
data.shippingAddress.phonestring-Contact phone number.
data.billingAddressAddress · 8 fields

Billing address details.

FieldTypeRulesDescription
data.billingAddress.namestring-Partner-visible name.
data.billingAddress.line1string-First line of the street address.
data.billingAddress.line2string-Second line of the street address, when present.
data.billingAddress.citystring-PSGC-aligned Philippine city or municipality.
data.billingAddress.provincestring-PSGC-aligned Philippine province.
data.billingAddress.postalCodestring-Postal code for the address.
data.billingAddress.countrystring-ISO 3166-1 alpha-2 country code.
data.billingAddress.phonestring-Contact phone number.

Error Codes

HTTP StatusSchemaDescription
400ErrorResponseValidation error, or a missing/malformed required signing header (BAD_REQUEST)
401ErrorResponseUnauthorized — invalid credentials, invalid signature, or expired timestamp (TIMESTAMP_EXPIRED)
403ErrorResponseForbidden — insufficient scope
404ErrorResponseThe requested resource does not exist or is not visible to the authenticated seller
409ErrorResponseThe request conflicts with the current resource state or reuses an idempotency key
413ErrorResponseThe request body exceeds the endpoint payload limit
422ErrorResponseThe request is well-formed but cannot be processed in the resource’s current state
429ErrorResponseThe partner or endpoint rate limit has been exceeded
502ErrorResponseThe upstream commerce service rejected the request or returned an invalid response
503ErrorResponseA required platform or upstream dependency is temporarily unavailable
504ErrorResponseThe upstream commerce service did not respond before the platform timeout

Machine-readable codes are returned in error.code: ACCOUNT_LOCKED, APPROVE_FAILED, APP_LIMIT_REACHED, APP_NOT_FOUND, AUTHORIZATION_CODE_EXPIRED, AUTHORIZATION_REVOKED, AUTH_CODE_EXPIRED, AUTH_CODE_USED, BAD_REQUEST, CANCELLATION_ALREADY_PROCESSED, CANCELLATION_DEADLINE_EXCEEDED, CANCEL_FAILED, CANNOT_DELETE_ACCOUNT_WITH_APPS, CONCURRENT_MODIFICATION, CONFLICT, CREATE_FAILED, DISPUTE_FAILED, DUPLICATE, EMAIL_ALREADY_EXISTS, EMAIL_NOT_VERIFIED, FILE_TOO_LARGE, FORBIDDEN, HMAC_VERSION_DEPRECATED, IDEMPOTENCY_KEY_IN_PROGRESS, IDEMPOTENCY_KEY_REQUIRED, IDEMPOTENCY_KEY_REUSED, INTERNAL_ERROR, INVALID_AUTHORIZATION_CODE, INVALID_CREDENTIALS, INVALID_DEVELOPER_TYPE, INVALID_FILE_CONTENT, INVALID_FILE_TYPE, INVALID_JSON, INVALID_NONCE, INVALID_PATH, INVALID_PICKUP_DATE, INVALID_REFRESH_TOKEN, INVALID_REQUEST, INVALID_SIGNATURE, INVALID_STATE, INVALID_TRANSITION, INVALID_VERIFICATION_TOKEN, MAINTENANCE, MEMBER_PERMISSION_DENIED, MISSING_NONCE, NONCE_REUSED, NOT_FOUND, NOT_IMPLEMENTED, ORDER_NOT_CANCELLABLE, PAYLOAD_TOO_LARGE, PICKUP_DATES_UNAVAILABLE, PRODUCT_HAS_ACTIVE_ORDERS, PRODUCT_UNDER_REVIEW, PROFILE_ALREADY_SUBMITTED, PROFILE_TYPE_MISMATCH, PROXY_ERROR, RATE_LIMITED, REDIRECT_URL_MISMATCH, REFRESH_TOKEN_EXPIRED, REFRESH_TOKEN_REUSED, REJECT_FAILED, RETURN_ALREADY_PROCESSED, RETURN_DEADLINE_EXCEEDED, RE_AUTHORIZATION_REQUIRED, SANDBOX_LIMIT_REACHED, SELLER_TOKEN_REQUIRED, SERVICE_UNAVAILABLE, SESSION_EXPIRED, SHIPMENT_ALREADY_ARRANGED, SHIPMENT_NOT_ARRANGED, SHIPPING_LABEL_UNAVAILABLE, SHIP_FAILED, SIGNATURE_REPLAYED, SSRF_CHECK_FAILED, TEST_SHOP_LIMIT_REACHED, TIMESTAMP_EXPIRED, TOKEN_REVOKED, TOO_MANY_REQUESTS, UNAUTHORIZED, UPLOAD_ERROR, UPLOAD_NOT_CONFIGURED, UPSTREAM_ERROR, UPSTREAM_TIMEOUT, VALIDATION_ERROR, VERIFICATION_LINK_USED, VERIFICATION_TOKEN_EXPIRED, WEBHOOK_SUBSCRIPTION_EXISTS

Examples

Executable examples are hidden for this endpoint until copy-paste guidance is published.