Skip to main content
Before you can collect payments, your workspace merchant account must be activated in the MasterID app. The Merchant ID shown in your Developer Console is from your own workspace, and only your own workspace credentials can initiate collections for that Merchant ID.

Prerequisites

  1. Complete merchant activation in the MasterID app.
  2. Generate API credentials from the Developer Console and note the Merchant ID.
  3. Ensure the payer mobile number is supported for Ugandan MTN or Airtel mobile money.

Collection constraints

Initiate a collection

Send a POST /collections request with an Idempotency-Key header. The request runs against your authenticated workspace merchant account. If the Merchant ID does not match your workspace, the request is rejected with 403.
Example response:
Never report a successful payment from the initiation response. The pending status only confirms that the request has been accepted and sent to the payer. The payer must authorise the request on their phone before the payment completes.

Track collection status

Use the reference from the creation response to poll or correlate webhooks. Poll: GET /collections/{reference}. Event: collection.completed is delivered to your configured webhook URL. Read responses include amount_ugx and completed_at for completed collections.

Settlement and withdrawals

Funds from successful collections become available on the next working day. Manage withdrawals in the MasterID app.

Collection-specific rate limits

MasterID enforces the following limits in addition to the general API rate limit: If you receive a 429 response, wait for the value in the Retry-After header before retrying.

End-to-end examples

The examples include constraint validation before submission, then polling for the final status.

Sequence diagram