Upgrade to OAS version 3

Mobile Money API version 1.1 has been developed using OAS version 3 to take advantage of the new modelling and schema reuse capabilities that OAS3 provides. This has led to significant reuse of schemas/properties and has significantly improved readability.


Overhaul of Callback mechanism

In version 1.0 of the mobile money API, callbacks were issued via a patch command with clients unable to specify a URL to receive the callback. In version 1.1, the following improvements have been made:
o The client can specify full callback URL using a new request header X-Callback-URL.
o A full representation of the created resource is sent back (via PUT) in response to a successful creation request.
o Mobile Money API callbacks have been modelled using callback operations introduced in OAS v3.
The new mechanism is illustrated as follows:


Improved implementation of identifier types in path

The Mobile Money API now permits any Identifier Type in path, not just MSISDN:
o Original version 1.0 implementation: /accounts/msisdn/{msisdn}/
o New version 1.1 implementation: /accounts/{identifierType/{identifier}/


New APIs for Bill Companies

New set of APIs to enable clients to retrieve Bill Company information.


New Authorisation Codes APIs

Provide the ability to generate & cancel transaction authorisation codes which can expire.
Provides support for ATM withdrawals & voucher code-based transactions.


New API - POST /transactions/type/{transactionType]

Enables the transaction type to be identified in the URL when creating a transaction.
This is required in some API Gateway implementations to allow fine grained API permissions to be applied.


Account Balance ‘Self’ API

Added new ‘self’ API for account balance, removing the need for the account subject to identify itself in the path.


Additional Identifier Types

Added new identifier types in version 1.1:
o serviceprovider
o storeid
o bankname
o bankaccounttitle
o emailaddress
o mandatereference


Alignment of Headers with Security Specification

Ensured that all customer headers identified in the security specification are reflected in the main API specification.


Implemented optionality on some custom headers.

Following feedback from implementers, the following custom headers were changed from mandatory to optional:
o X-Date. Note that this also involved a name change from Date to X-Date as Date is a reserved keyword in many implementations.
o X-CorrelationID


Bills API Improvements

Added billStatus property.


Transaction and Quotation Fees

Passing of fees are now supported on transactions and quotations APIs.


Transaction Filters

Added status and type as query string parameters to enabling improved filtering for transaction retrieval.


Quotations for Domestic Remittance

Added ability to obtain quotations for domestic remittances.


New Custom Headers for request routing

Added new routing request headers to allow the ultimate account holding institution to be identified through an LEI code, Swift-BIC code or Organisation Id.


Improved Regular Expression for amount validation

Implemented new regular expression for amount properties to support a move towards implementing a canonical number format for amounts.


Forex Rate optionality

Forex rate changed from mandatory to optional.
Increased the property from 2 to 10 decimal places.


Mobile Number Validation

Local and international formats now supported via modified regular expression.


Property Alignment between OAS Specification and the Human-readable Specification

Fixed a number of minor misalignments between the two specifications.


Bill Payments additional properties

Added the following properties to Bill Payments API:
o serviceProviderPaymentReference
o billPaymentStatus
o requestingOrganisationTransactionReference
o requestingOrganisation
o metadata
o serviceProviderComment
o serviceProviderNotification


Batch Transactions API Record Limit

Applied limit of one million transactions for Batch Transactions API.


General Property Optionality Changes

Changed a number of properties from Mandatory to Optional or N/A in response to review feedback.


Credit and Debit Party Conditionality

Allow optional implicit identification of one or other party