API reference / Returns

Dispute a return request with a reason code and seller evidence attachments

Return dispute filing is available with limited production-readiness confirmation.

POST/open/v1/returns/{id}/disputeScope: orders:write

Service Endpoint Seller token required

EnvironmentBase URL + Path
Productionhttps://open.mallplus.ph/open/v1/returns/{id}/dispute
Sandboxhttps://sandbox.open.mallplus.ph/open/v1/returns/{id}/dispute
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 return case ID.

Request Body required

FieldTypeRequiredRulesDescription
reasonCodeenumYesAllowed: did_not_receive_return_parcel, received_physical_damage, received_incomplete, received_wrong_product, received_used_product, buyer_claim_incorrect; Min length: 1; Max length: 100Machine-readable return dispute reason code.
notestringYesMin length: 1; Max length: 2000Seller-provided note for the dispute.
attachmentsarray<ReturnDisputeAttachment>YesMin items: 1; Max items: 6Evidence attachments for the dispute.
attachments[]ReturnDisputeAttachmentNoNo additional propertiesEvidence attachment submitted with a return dispute.
attachments[].urlstring<uri>YesFormat: uri; Max length: 2048; Pattern: ^https://Public HTTPS URL for this attachment.
attachments[].namestringYesMin length: 1; Max length: 255Partner-visible name.
attachments[].sizeintegerYesMinimum: 1Attachment size in bytes.
attachments[].mimeenumYesAllowed: image/jpeg, image/png, video/mp4, video/quicktimeAttachment MIME type.
attachments[].durationSecondsnumberNoMinimum: 0Video duration in seconds.

Response Parameters

FieldTypeRulesDescription
successboolean-Whether the return request succeeded.
dataReturnNo additional propertiesReturn case detail.
data.idstring-Stable return case identifier.
data.orderIdstring-Order identifier associated with the return case.
data.statusstring-Current return workflow status as returned by the upstream return source.
data.reasonstring-Return reason recorded on the case.
data.itemsarray<ReturnItem>-Line items included in the return.
data.items[]ReturnItemNo additional propertiesA returned line item projected by the public return DTO.
data.refundAmountinteger-Integer amount in PHP centavos.
data.sellerIdstring-Seller identifier that owns the return case. Omitted when upstream data does not expose it.
data.rejection_reasonstring-Reason recorded when the return is rejected. Omitted unless the return has been rejected.
data.dispute_reason_codeenumAllowed: did_not_receive_return_parcel, received_physical_damage, received_incomplete, received_wrong_product, received_used_product, buyer_claim_incorrectStructured dispute reason code. Omitted unless the seller has filed a dispute.
data.dispute_notestring-Seller dispute note explaining the dispute. Omitted unless the seller has filed a dispute.
data.dispute_evidencearray<string>-HTTPS evidence URLs submitted with a dispute. Omitted when no dispute evidence was supplied.
data.dispute_evidence[]string-HTTPS URL for one dispute evidence attachment.
data.created_atstring<date-time>Format: date-timeISO-8601 timestamp when the return case was created.
data.updated_atstring<date-time>Format: date-timeISO-8601 timestamp when the return case was last updated.
data.dispute_window_deadlinestring<date-time>Format: date-timeISO-8601 deadline by which the seller may still dispute the return case. Omitted when no dispute window is modelled.
data.buyer_evidence_urlsarray<string>-Buyer-submitted evidence URLs. Omitted when the buyer provided no evidence.
data.buyer_evidence_urls[]string-URL for one buyer-submitted evidence attachment.
data.response_window_deadlinestring<date-time>Format: date-timeISO-8601 seller response-window deadline. Omitted when the Open API return DTO receives no string deadline from upstream.
data.items[]ReturnItem · 3 fields

A returned line item projected by the public return DTO.

FieldTypeRulesDescription
data.items[].itemIdstring-Line-item identifier from the order being returned.
data.items[].quantityinteger-Number of units for this line item included in the return.
data.items[].reasonstring-Optional item-level return reason supplied for this line item.

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.