Skip to main content
All Merchant API paths are relative to https://api.morapay.io/api/v1/merchant unless noted. Public catalog and checkout paths use /api/public/*.

HTTP methods

Signed headers are required on every Merchant API call. See Authentication.

Pagination

List endpoints accept: Paginated success responses include meta:

Success envelope

Create endpoints return 201 Created when a new row is inserted. Async actions such as refunds, withdrawals, and webhook retries may return 202 Accepted while processing continues. Idempotent replays may return 200 OK with the same body.

Error envelope

Every failed JSON response uses the same shape:
Always log requestId and include it when contacting support.

Common HTTP status codes

Portal RBAC

Some mutating routes require a BusinessMember role when using portal JWT auth. Merchant API keys skip role checks. On denial: 403 with FORBIDDEN_MERCHANT_ROLE.

Legacy route aliases

Older docs and integrations may reference retired paths. Use the current route.