Skip to main content

Mobile Money API Compliance Test Cases

Where a Compliance Use Case represents the different goals that actors within the system might have, a test case represents a specific path taken to achieve a goal. Test cases are separated into "happy" and "unhappy" so that they cover all the possibilities for a use case. Tests typically include several alternative paths that evaluate the exceptions and errors in the use case. It is also possible that there are several happy paths, addressing different business rules that result in different expected outcomes.

All test cases currently available on the Mobile Money API Compliance Platform are listed below. As new test cases are created, the documentation, and therefore the list, will be updated. The list of test cases is split according to use cases and contains the following attributes:

Test Case Code: Code that identifies the test case in relation to the others. The code consists of two parts: an acronym that is directly related to the use case, and a code that differentiates tests for the test group to which it belongs.

Test Case Scenario: This field is made up of properties that define the scenario in which the test case is being executed. These are the specific parameters that define a scenario, such as: fees and commissions involved, use of an account lookup system, currencies supported by the provider, etc.

Status: Expected results after running the test case. The result indicates whether the evaluated path is a "happy" flow or "unhappy" flow.

Results: The results field indicates the expected behaviour for test cases under validation. Particularly when dealing with rejected transactions, the value of this attribute gives a better understanding of the reason for not carrying out the transaction.

Error Number: Indicates the number of the current error for the test case. This will generally be a 3-digit (for HTTP errors) or 4-digit (for MMAPI errors) error code, which can be understood with reference to the documentation for the APIs under test. A reference to the business rules error codes can be found here

List of Test Cases

Payee-Initiated Merchant Payment

Test CaseTest ScenarioResultsStatusError
PIMP100Merchant-initiated merchant payment (callback, debitParty sent)ApprovedPass-
PIMP200Merchant-initiated merchant payment (callback, debitParty and creditParty sent)ApprovedPass-
PIMP300Merchant-initiated merchant payment (callback, auth code, debitParty sent)ApprovedPass-
PIMP400Merchant-initiated merchant payment (polling)ApprovedPass-
PIMP4001Merchant-initiated merchant payment (callback, debitParty and creditParty sent, error)DeclinedFail204
PIMP4002Merchant-initiated merchant payment (callback, auth code, debitParty sent, business error)DeclinedFail204
PIMP4003Merchant-initiated merchant payment (callback, auth code, debitParty sent, format error)DeclinedFail204
PIMP4004Merchant-initiated merchant payment (polling, error)DeclinedFail404

Customer-Initiated Merchant Payment

Test CaseTest ScenarioResultsStatusError
CIMP100Customer-initiated merchant payment (callback, creditParty sent)ApprovedPass-
CIMP200Customer-initiated merchant payment (callback, debitParty and creditParty sent)ApprovedPass-
CIMP300Customer-initiated merchant payment (auth code)ApprovedPass-
CIMP400Customer-initiated merchant payment (polling, debitParty and creditParty sent)ApprovedPass-
CIMP4001Customer-initiated merchant payment (callback, debitParty and creditParty sent, error)DeclinedFail204
CIMP4002Customer-initiated merchant payment (auth code, error)DeclinedFail204
CIMP4003Customer-initiated merchant payment (polling, debitParty and creditParty sent, error)DeclinedFail404

Disbursements

Test CaseTest ScenarioResultsStatusError
DISBMT100Make Individual Disbursement with Callback – SuccessApprovedPass-
DISBMT200Make Individual Disbursement with Polling – SuccessApprovedPass-
DISBMT300Make 1-Step Bulk Disbursement with Callback – SuccessApprovedPass-
DISBMT400Make 2-Step Bulk Disbursement with Callback – SuccessApprovedPass-
DISBMT500Retrieve Bulk Disbursements by Service ProviderDeclinedFail204
DISBMT600Retrieve Bulk Disbursements Completed by Service ProviderDeclinedFail204
DISBMT700Retrieve Bulk Disbursement Rejected - SuccessDeclinedFail404
DISBMT4001Make Individual Disbursement with Callback – FailureDeclinedFail204
DISBMT4002Make Individual Disbursement with Polling – FailureDeclinedFail404
DISBMT4003Make 1-Step Bulk Disbursement with Callback – Failure - Returned AsyncDeclinedFail204
DISBMT4004Make 1-Step Bulk Disbursement with Callback – Failure - Returned SyncDeclinedFail500
DISBMT4005Make 2-Step Bulk Disbursement with Callback – FailureDeclinedFail204
DISBMT4006Retrieve Bulk Disbursement (failure)DeclinedFail404
DISBMT4007Retrieve Bulk Disbursement Completed (failure)DeclinedFail404
DISBMT4008Retrieve Bulk Disbursement Rejected (failure)DeclinedFail404

Account Information

Test CaseTest ScenarioResultsStatusError
ACCINF100Obtain a Merchant Account Balance – SuccessApprovedPass-
ACCINF200Retrieve Payments for a Merchant – SuccessApprovedPass-
ACCINF300Retrieve Payments for a Merchant with offsets and limits – SuccessApprovedPass-
ACCINF400Obtain a Merchant Account Balance – Failure to Identify the Target ResourceApprovedPass-
ACCINF4001Retrieve Payments for a Merchant –Failure - due to Format Error (invalid identifierType)DeclinedFail400

Transactions

Test CaseTest ScenarioResultsStatusError
TXN100Retrieve Transaction by reference - successApprovedPass-
TXN4001Retrieve Transaction by reference - failureDeclinedFail400

Refunds & Reversals

Test CaseTest ScenarioResultsStatusError
R&R100Request Merchant Payment RefundApprovedPass-
R&R200Request Merchant Payment ReversalApprovedPass-
R&R4001Request Merchant Payment Refund (failure)DeclinedFail204
R&R4002Request Merchant Payment Reversal (failure)DeclinedFail204

General

Test CaseTest ScenarioResultsStatusError
GEN100Check for service availabilityApprovedPass-
GEN200Retrieve a missing API response - successApprovedPass-
GEN4001Retrieve a missing API response - authentication failureDeclinedFail401
GEN4002Retrieve a missing API response - missing resource failureDeclinedFail404