openapi: 3.2.0 info: description: 'This schema defines the RESTful endpoints provided by the GSMA Mobile Money API. You can find out more about what the API can do for your business at [https://developer.mobilemoneyapi.io] ' version: 1.2.0 title: Mobile Money Debit Mandates API servers: - description: This url points to the GSMA Mobile Money API v1.2 Simulator. url: https://sandbox.mobilemoneyapi.io/simulator/v1.2/passthrough/mm tags: - name: Debit Mandates description: 'The **Debit Mandates** APIs allow a mobile money customer to provide prior approval for payments to be taken from their account by a requesting payee. If the amount limit field is not supplied, the payee will be able to take any amount. Mandates can be open-ended or can be constrained by a quantified number of payments for a given frequency. Mandates can be created, viewed and modified. The request to create a debit mandate will be typically initiated by the service provider (payee) but can also be requested by the customer (payer). ' paths: /accounts/{accountId}/debitmandates: post: tags: - Debit Mandates summary: Create A Debit Mandate description: Provided with a valid object representation, this endpoint allows for a new debit mandate to be created for a specific account. operationId: accountsAccountIdDebitmandatesPOST parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/X-Date' - $ref: '#/components/parameters/X-CorrelationID' - $ref: '#/components/parameters/X-API-Key' - $ref: '#/components/parameters/X-User-Bearer' - $ref: '#/components/parameters/X-Client-Id' - $ref: '#/components/parameters/X-Content-Hash' - $ref: '#/components/parameters/X-User-Credential-1' - $ref: '#/components/parameters/X-User-Credential-2' - $ref: '#/components/parameters/X-Channel' - $ref: '#/components/parameters/X-Callback-URL' - $ref: '#/components/parameters/X-Account-Holding-Institution-Identifier-Type' - $ref: '#/components/parameters/X-Account-Holding-Institution-Identifier' requestBody: $ref: '#/components/requestBodies/requestDebitMandate' callbacks: debitMandatesSuccessEvent: '{$request.header.X-Callback-URL}': put: summary: Debit Mandates Success Callback description: This callback communicates the final representation of the Debit Mandate requested by the client. The client endpoint is identified from the X-Callback-URL supplied in the POST request header. operationId: debitMandatesAccountIdSuccessPUT parameters: - $ref: '#/components/parameters/X-Date' - $ref: '#/components/parameters/X-CorrelationID' - $ref: '#/components/parameters/X-Content-Hash' - $ref: '#/components/parameters/X-API-Key' - $ref: '#/components/parameters/X-User-Bearer' - $ref: '#/components/parameters/X-Client-Id' requestBody: $ref: '#/components/requestBodies/updateDebitMandate' responses: 204: description: Your server returns this code if it accepts the callback 400: description: Your server returns this code if it rejects the callback due to a violation of a business rule 401: description: Your server returns this code if it rejects the callback due to an authorisation failure 404: description: Your server returns this code if it rejects the callback due to a failure to identify the target resource 500: description: Your server returns this code if it rejects the callback due to general server-side issue 503: description: Your server returns this code if it rejects the callback due to systems unavailability debitMandatesFailureEvent: '{$request.header.X-Callback-URL}': put: summary: Debit Mandates Failure Callback description: This callback communicates the information regarding a failure to receive a debit mandate in the form of an error object. The client endpoint is identified from the X-Callback-URL supplied in the POST request header. operationId: debitMandatesAccountIdFailurePUT parameters: - $ref: '#/components/parameters/X-Date' - $ref: '#/components/parameters/X-CorrelationID' - $ref: '#/components/parameters/X-Content-Hash' - $ref: '#/components/parameters/X-API-Key' - $ref: '#/components/parameters/X-User-Bearer' - $ref: '#/components/parameters/X-Client-Id' requestBody: $ref: '#/components/requestBodies/updateError' responses: 204: description: Your server returns this code if it accepts the callback 400: description: Your server returns this code if it rejects the callback due to a violation of a business rule 401: description: Your server returns this code if it rejects the callback due to an authorisation failure 404: description: Your server returns this code if it rejects the callback due to a failure to identify the target resource 500: description: Your server returns this code if it rejects the callback due to general server-side issue 503: description: Your server returns this code if it rejects the callback due to systems unavailability responses: 201: description: Represents a Debit Mandate response content: application/json: schema: $ref: '#/components/schemas/responseDebitMandate' headers: X-Date: $ref: '#/components/headers/X-Date' 202: description: Represents an Asynchronous response content: application/json: schema: $ref: '#/components/schemas/requestStateObject' headers: X-Date: $ref: '#/components/headers/X-Date' 400: description: Represents an Error Caused by the Violation of a Business Rule content: application/json: schema: $ref: '#/components/schemas/errorObject' headers: X-Date: $ref: '#/components/headers/X-Date' 401: description: Represents an Error Caused by an Authorisation Failure content: application/json: schema: $ref: '#/components/schemas/errorObject' headers: X-Date: $ref: '#/components/headers/X-Date' 404: description: Represents an Error Caused by a Failure to Identify the Target Resource content: application/json: schema: $ref: '#/components/schemas/errorObject' headers: X-Date: $ref: '#/components/headers/X-Date' 500: description: Represents an Error Caused by a General Server-Side Issue content: application/json: schema: $ref: '#/components/schemas/errorObject' headers: X-Date: $ref: '#/components/headers/X-Date' 503: description: Represents an Error Caused by System Unavailability content: application/json: schema: $ref: '#/components/schemas/errorObject' headers: X-Date: $ref: '#/components/headers/X-Date' /accounts/{identifierType}/{identifier}/debitmandates: post: tags: - Debit Mandates summary: Create A Debit Mandate description: Provided with a valid object representation, this endpoint allows for a new debit mandate to be created for a specific account. operationId: accountsIdentifierTypeIdentifierDebitmandatesPOST parameters: - $ref: '#/components/parameters/identifierType' - $ref: '#/components/parameters/identifier' - $ref: '#/components/parameters/X-Date' - $ref: '#/components/parameters/X-CorrelationID' - $ref: '#/components/parameters/X-API-Key' - $ref: '#/components/parameters/X-User-Bearer' - $ref: '#/components/parameters/X-Client-Id' - $ref: '#/components/parameters/X-Content-Hash' - $ref: '#/components/parameters/X-User-Credential-1' - $ref: '#/components/parameters/X-User-Credential-2' - $ref: '#/components/parameters/X-Channel' - $ref: '#/components/parameters/X-Callback-URL' - $ref: '#/components/parameters/X-Account-Holding-Institution-Identifier-Type' - $ref: '#/components/parameters/X-Account-Holding-Institution-Identifier' requestBody: $ref: '#/components/requestBodies/requestDebitMandate' callbacks: debitMandatesSuccessEvent: '{$request.header.X-Callback-URL}': put: summary: Debit Mandates Success Callback description: This callback communicates the final representation of the Debit Mandate requested by the client. The client endpoint is identified from the X-Callback-URL supplied in the POST request header. operationId: debitMandatesIdentifierTypeIdentifierSuccessPUT parameters: - $ref: '#/components/parameters/X-Date' - $ref: '#/components/parameters/X-CorrelationID' - $ref: '#/components/parameters/X-Content-Hash' - $ref: '#/components/parameters/X-API-Key' - $ref: '#/components/parameters/X-User-Bearer' - $ref: '#/components/parameters/X-Client-Id' requestBody: $ref: '#/components/requestBodies/updateDebitMandate' responses: 204: description: Your server returns this code if it accepts the callback 400: description: Your server returns this code if it rejects the callback due to a violation of a business rule 401: description: Your server returns this code if it rejects the callback due to an authorisation failure 404: description: Your server returns this code if it rejects the callback due to a failure to identify the target resource 500: description: Your server returns this code if it rejects the callback due to general server-side issue 503: description: Your server returns this code if it rejects the callback due to systems unavailability debitMandatesFailureEvent: '{$request.header.X-Callback-URL}': put: summary: Debit Mandates Failure Callback description: This callback communicates the information regarding a failure to receive a debit mandate in the form of an error object. The client endpoint is identified from the X-Callback-URL supplied in the POST request header. operationId: debitMandatesIdentifierTypeIdentifierFailurePUT parameters: - $ref: '#/components/parameters/X-Date' - $ref: '#/components/parameters/X-CorrelationID' - $ref: '#/components/parameters/X-Content-Hash' - $ref: '#/components/parameters/X-API-Key' - $ref: '#/components/parameters/X-User-Bearer' - $ref: '#/components/parameters/X-Client-Id' requestBody: $ref: '#/components/requestBodies/updateError' responses: 204: description: Your server returns this code if it accepts the callback 400: description: Your server returns this code if it rejects the callback due to a violation of a business rule 401: description: Your server returns this code if it rejects the callback due to an authorisation failure 404: description: Your server returns this code if it rejects the callback due to a failure to identify the target resource 500: description: Your server returns this code if it rejects the callback due to general server-side issue 503: description: Your server returns this code if it rejects the callback due to systems unavailability responses: 201: description: Represents a Debit Mandate response content: application/json: schema: $ref: '#/components/schemas/responseDebitMandate' headers: X-Date: $ref: '#/components/headers/X-Date' 202: description: Represents an Asynchronous response content: application/json: schema: $ref: '#/components/schemas/requestStateObject' headers: X-Date: $ref: '#/components/headers/X-Date' 400: description: Represents an Error Caused by the Violation of a Business Rule content: application/json: schema: $ref: '#/components/schemas/errorObject' headers: X-Date: $ref: '#/components/headers/X-Date' 401: description: Represents an Error Caused by an Authorisation Failure content: application/json: schema: $ref: '#/components/schemas/errorObject' headers: X-Date: $ref: '#/components/headers/X-Date' 404: description: Represents an Error Caused by a Failure to Identify the Target Resource content: application/json: schema: $ref: '#/components/schemas/errorObject' headers: X-Date: $ref: '#/components/headers/X-Date' 500: description: Represents an Error Caused by a General Server-Side Issue content: application/json: schema: $ref: '#/components/schemas/errorObject' headers: X-Date: $ref: '#/components/headers/X-Date' 503: description: Represents an Error Caused by System Unavailability content: application/json: schema: $ref: '#/components/schemas/errorObject' headers: X-Date: $ref: '#/components/headers/X-Date' /accounts/{accountId}/debitmandates/{debitMandateReference}: parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/debitMandateReference' - $ref: '#/components/parameters/X-Date' - $ref: '#/components/parameters/X-API-Key' - $ref: '#/components/parameters/X-User-Bearer' - $ref: '#/components/parameters/X-Client-Id' - $ref: '#/components/parameters/X-Content-Hash' - $ref: '#/components/parameters/X-User-Credential-1' - $ref: '#/components/parameters/X-User-Credential-2' - $ref: '#/components/parameters/X-Channel' - $ref: '#/components/parameters/X-Account-Holding-Institution-Identifier-Type' - $ref: '#/components/parameters/X-Account-Holding-Institution-Identifier' get: tags: - Debit Mandates summary: View A Debit Mandate description: This endpoint returns a specific debit mandate linked to an account operationId: accountsAccountIdDebitmandatesDebitMandateReferenceGET responses: 200: description: Represents a Debit Mandate response content: application/json: schema: $ref: '#/components/schemas/responseDebitMandate' headers: X-Date: $ref: '#/components/headers/X-Date' 400: description: Represents an Error Caused by the Violation of a Business Rule content: application/json: schema: $ref: '#/components/schemas/errorObject' headers: X-Date: $ref: '#/components/headers/X-Date' 401: description: Represents an Error Caused by an Authorisation Failure content: application/json: schema: $ref: '#/components/schemas/errorObject' headers: X-Date: $ref: '#/components/headers/X-Date' 404: description: Represents an Error Caused by a Failure to Identify the Target Resource content: application/json: schema: $ref: '#/components/schemas/errorObject' headers: X-Date: $ref: '#/components/headers/X-Date' 500: description: Represents an Error Caused by a General Server-Side Issue content: application/json: schema: $ref: '#/components/schemas/errorObject' headers: X-Date: $ref: '#/components/headers/X-Date' 503: description: Represents an Error Caused by System Unavailability content: application/json: schema: $ref: '#/components/schemas/errorObject' headers: X-Date: $ref: '#/components/headers/X-Date' patch: tags: - Debit Mandates summary: Update A Debit Mandate description: This endpoint updates a specific debit mandate linked to an account. The following fields are modifiable] mandateStatus, startDate, endDate, frequencyType, numberOfPayments. operationId: accountsAccountIdDebitmandatesDebitMandateReferencePATCH parameters: - $ref: '#/components/parameters/X-CorrelationID' - $ref: '#/components/parameters/X-Callback-URL' requestBody: $ref: '#/components/requestBodies/genericPatch' callbacks: debitMandatesUpdateSuccessEvent: '{$request.header.X-Callback-URL}': put: summary: Debit Mandate Update Success Callback description: This callback communicates a simple message to communicate that the Debit Mandate update completed successfully. operationId: debitMandateUpdateAccountIdSuccessPUT parameters: - $ref: '#/components/parameters/X-Date' - $ref: '#/components/parameters/X-CorrelationID' - $ref: '#/components/parameters/X-Content-Hash' - $ref: '#/components/parameters/X-API-Key' - $ref: '#/components/parameters/X-User-Bearer' - $ref: '#/components/parameters/X-Client-Id' requestBody: $ref: '#/components/requestBodies/genericUpdateSuccess' responses: 204: description: Your server returns this code if it accepts the callback 400: description: Your server returns this code if it rejects the callback due to a violation of a business rule 401: description: Your server returns this code if it rejects the callback due to an authorisation failure 404: description: Your server returns this code if it rejects the callback due to a failure to identify the target resource 500: description: Your server returns this code if it rejects the callback due to general server-side issue 503: description: Your server returns this code if it rejects the callback due to systems unavailability debitMandateUpdateFailureEvent: '{$request.header.X-Callback-URL}': put: summary: Debit Mandate Update Failure Callback description: This callback communicates the information regarding a failure to update a debit mandate in the form of an error object. The client endpoint is identified from the X-Callback-URL supplied in the POST request header. operationId: debitMandateUpdateAccountIdFailurePUT parameters: - $ref: '#/components/parameters/X-Date' - $ref: '#/components/parameters/X-CorrelationID' - $ref: '#/components/parameters/X-Content-Hash' - $ref: '#/components/parameters/X-API-Key' - $ref: '#/components/parameters/X-User-Bearer' - $ref: '#/components/parameters/X-Client-Id' requestBody: $ref: '#/components/requestBodies/updateError' responses: 204: description: Your server returns this code if it accepts the callback 400: description: Your server returns this code if it rejects the callback due to a violation of a business rule 401: description: Your server returns this code if it rejects the callback due to an authorisation failure 404: description: Your server returns this code if it rejects the callback due to a failure to identify the target resource 500: description: Your server returns this code if it rejects the callback due to general server-side issue 503: description: Your server returns this code if it rejects the callback due to systems unavailability responses: 202: description: Represents an Asynchronous response content: application/json: schema: $ref: '#/components/schemas/requestStateObject' headers: X-Date: $ref: '#/components/headers/X-Date' 204: description: An empty response is returned for a synchronous successful patch. 400: description: Represents an Error Caused by the Violation of a Business Rule content: application/json: schema: $ref: '#/components/schemas/errorObject' headers: X-Date: $ref: '#/components/headers/X-Date' 401: description: Represents an Error Caused by an Authorisation Failure content: application/json: schema: $ref: '#/components/schemas/errorObject' headers: X-Date: $ref: '#/components/headers/X-Date' 404: description: Represents an Error Caused by a Failure to Identify the Target Resource content: application/json: schema: $ref: '#/components/schemas/errorObject' headers: X-Date: $ref: '#/components/headers/X-Date' 500: description: Represents an Error Caused by a General Server-Side Issue content: application/json: schema: $ref: '#/components/schemas/errorObject' headers: X-Date: $ref: '#/components/headers/X-Date' 503: description: Represents an Error Caused by System Unavailability content: application/json: schema: $ref: '#/components/schemas/errorObject' headers: X-Date: $ref: '#/components/headers/X-Date' /accounts/{identifierType}/{identifier}/debitmandates/{debitMandateReference}: parameters: - $ref: '#/components/parameters/identifierType' - $ref: '#/components/parameters/identifier' - $ref: '#/components/parameters/debitMandateReference' - $ref: '#/components/parameters/X-Date' - $ref: '#/components/parameters/X-API-Key' - $ref: '#/components/parameters/X-User-Bearer' - $ref: '#/components/parameters/X-Client-Id' - $ref: '#/components/parameters/X-Content-Hash' - $ref: '#/components/parameters/X-User-Credential-1' - $ref: '#/components/parameters/X-User-Credential-2' - $ref: '#/components/parameters/X-Channel' - $ref: '#/components/parameters/X-Account-Holding-Institution-Identifier-Type' - $ref: '#/components/parameters/X-Account-Holding-Institution-Identifier' get: tags: - Debit Mandates summary: View A Debit Mandate description: This endpoint returns a specific debit mandate linked to an account. operationId: accountsIdentifierTypeIdentifierDebitmandatesDebitMandateReferenceGET responses: 200: description: Represents a Debit Mandate response content: application/json: schema: $ref: '#/components/schemas/responseDebitMandate' headers: X-Date: $ref: '#/components/headers/X-Date' 400: description: Represents an Error Caused by the Violation of a Business Rule content: application/json: schema: $ref: '#/components/schemas/errorObject' headers: X-Date: $ref: '#/components/headers/X-Date' 401: description: Represents an Error Caused by an Authorisation Failure content: application/json: schema: $ref: '#/components/schemas/errorObject' headers: X-Date: $ref: '#/components/headers/X-Date' 404: description: Represents an Error Caused by a Failure to Identify the Target Resource content: application/json: schema: $ref: '#/components/schemas/errorObject' headers: X-Date: $ref: '#/components/headers/X-Date' 500: description: Represents an Error Caused by a General Server-Side Issue content: application/json: schema: $ref: '#/components/schemas/errorObject' headers: X-Date: $ref: '#/components/headers/X-Date' 503: description: Represents an Error Caused by System Unavailability content: application/json: schema: $ref: '#/components/schemas/errorObject' headers: X-Date: $ref: '#/components/headers/X-Date' patch: tags: - Debit Mandates summary: Update A Debit Mandate description: This endpoint updates a specific debit mandate linked to an account. The following fields are modifiable] mandateStatus, startDate, endDate, frequencyType, numberOfPayments. operationId: accountsIdentifierTypeIdentifierDebitmandatesDebitMandateReferencePATCH parameters: - $ref: '#/components/parameters/X-CorrelationID' - $ref: '#/components/parameters/X-Callback-URL' requestBody: $ref: '#/components/requestBodies/genericPatch' callbacks: debitMandatesUpdateSuccessEvent: '{$request.header.X-Callback-URL}': put: summary: Debit Mandate Update Success Callback description: This callback communicates a simple message to communicate that the Debit Mandate update completed successfully. operationId: debitMandateUpdateIdentifierTypeIdentifierSuccessPUT parameters: - $ref: '#/components/parameters/X-Date' - $ref: '#/components/parameters/X-CorrelationID' - $ref: '#/components/parameters/X-Content-Hash' - $ref: '#/components/parameters/X-API-Key' - $ref: '#/components/parameters/X-User-Bearer' - $ref: '#/components/parameters/X-Client-Id' requestBody: $ref: '#/components/requestBodies/genericUpdateSuccess' responses: 204: description: Your server returns this code if it accepts the callback 400: description: Your server returns this code if it rejects the callback due to a violation of a business rule 401: description: Your server returns this code if it rejects the callback due to an authorisation failure 404: description: Your server returns this code if it rejects the callback due to a failure to identify the target resource 500: description: Your server returns this code if it rejects the callback due to general server-side issue 503: description: Your server returns this code if it rejects the callback due to systems unavailability debitMandateUpdateFailureEvent: '{$request.header.X-Callback-URL}': put: summary: Debit Mandate Update Failure Callback description: This callback communicates the information regarding a failure to update a debit mandate in the form of an error object. The client endpoint is identified from the X-Callback-URL supplied in the POST request header. operationId: debitMandateUpdateIdentifierTypeIdentifierFailurePUT parameters: - $ref: '#/components/parameters/X-CorrelationID' - $ref: '#/components/parameters/X-Date' - $ref: '#/components/parameters/X-Content-Hash' - $ref: '#/components/parameters/X-API-Key' - $ref: '#/components/parameters/X-User-Bearer' - $ref: '#/components/parameters/X-Client-Id' requestBody: $ref: '#/components/requestBodies/updateError' responses: 204: description: Your server returns this code if it accepts the callback 400: description: Your server returns this code if it rejects the callback due to a violation of a business rule 401: description: Your server returns this code if it rejects the callback due to an authorisation failure 404: description: Your server returns this code if it rejects the callback due to a failure to identify the target resource 500: description: Your server returns this code if it rejects the callback due to general server-side issue 503: description: Your server returns this code if it rejects the callback due to systems unavailability responses: 202: description: Represents an Asynchronous response content: application/json: schema: $ref: '#/components/schemas/requestStateObject' headers: X-Date: $ref: '#/components/headers/X-Date' 204: description: An empty response is returned for a synchronous successful patch. 400: description: Represents an Error Caused by the Violation of a Business Rule content: application/json: schema: $ref: '#/components/schemas/errorObject' headers: X-Date: $ref: '#/components/headers/X-Date' 401: description: Represents an Error Caused by an Authorisation Failure content: application/json: schema: $ref: '#/components/schemas/errorObject' headers: X-Date: $ref: '#/components/headers/X-Date' 404: description: Represents an Error Caused by a Failure to Identify the Target Resource content: application/json: schema: $ref: '#/components/schemas/errorObject' headers: X-Date: $ref: '#/components/headers/X-Date' 500: description: Represents an Error Caused by a General Server-Side Issue content: application/json: schema: $ref: '#/components/schemas/errorObject' headers: X-Date: $ref: '#/components/headers/X-Date' 503: description: Represents an Error Caused by System Unavailability content: application/json: schema: $ref: '#/components/schemas/errorObject' headers: X-Date: $ref: '#/components/headers/X-Date' components: schemas: responseDebitMandate: type: object required: - mandateReference properties: mandateReference: $ref: '#/components/schemas/mandateReference' payee: $ref: '#/components/schemas/payee' mandateStatus: description: Indicates the status of the Mandate as held in the API Provider system. allOf: - $ref: '#/components/schemas/mandateStatus' startDate: $ref: '#/components/schemas/startDate' amountLimit: description: The maximum amount that can be taken by the Payee on a payment request. allOf: - $ref: '#/components/schemas/amount' example: '15.00' currency: description: Currency of the amount limit. allOf: - $ref: '#/components/schemas/currency' endDate: $ref: '#/components/schemas/endDate' frequencyType: description: Indicates the frequency for which payments will be taken from the payers account. allOf: - $ref: '#/components/schemas/frequencyType' numberOfPayments: $ref: '#/components/schemas/numberOfPayments' requestingOrganisation: $ref: '#/components/schemas/requestingOrganisation' creationDate: $ref: '#/components/schemas/creationDate' modificationDate: $ref: '#/components/schemas/modificationDate' requestDate: $ref: '#/components/schemas/requestDate' customData: $ref: '#/components/schemas/customDataArray' dateCreated: $ref: '#/components/schemas/dateCreated' dateModified: $ref: '#/components/schemas/dateModified' metadata: type: object required: - key - value properties: key: type: string description: Identifies the type of additional field. minLength: 1 maxLength: 256 value: type: string description: Identifies the value of the additional field. minLength: 1 maxLength: 256 requestGenericPatch: type: object required: - op - path - value properties: op: description: Indicates the Patch operation to be performed. 'replace' is used to update a field and 'add' is used to add a new field. type: string enum: - replace - add path: description: Specify the field to be updated or added preceded by '/'. type: string maxLength: 256 value: description: Specify the value of the field to be updated or added. type: string maxLength: 256 payee: type: array description: A collection of key/value pairs that enable the payee to be identified. Keys include MSISDN and Wallet Identifier. items: $ref: '#/components/schemas/party' maxItems: 10 minItems: 1 genericUpdateSuccess: type: object required: - result properties: result: type: string description: The success message provided in a callback to communicate the success of an update operation. enum: - success metadataArray: type: array description: A collection of key/value pairs. These can be used to populate additional properties that describe administrative information regarding the resource. items: $ref: '#/components/schemas/metadata' maxItems: 20 requestingOrganisation: type: object description: An object that details the originating organisation of the request. required: - requestingOrganisationIdentifierType - requestingOrganisationIdentifier properties: requestingOrganisationIdentifierType: type: string description: Identifies the identifier type of the requesting organisation. enum: - lei - swiftbic - organisationid requestingOrganisationIdentifier: type: string description: Contains the requesting organisation identifier. minLength: 1 maxLength: 256 dateCreated: type: string format: date-time deprecated: true description: Date and time when the object was created by the API Provider. requestGenericPatchArray: type: array description: Collection of updates that are to be processed. items: $ref: '#/components/schemas/requestGenericPatch' minItems: 1 maxItems: 10 requestDebitMandate: type: object required: - startDate properties: payee: $ref: '#/components/schemas/payee' mandateStatus: description: Indicates the status of the Debit Mandate as held in the API Provider system. allOf: - $ref: '#/components/schemas/mandateStatus' amountLimit: description: The maximum amount that can be taken by the Payee on a payment request. currency: description: Currency of the amount limit. allOf: - $ref: '#/components/schemas/currency' startDate: $ref: '#/components/schemas/startDate' endDate: $ref: '#/components/schemas/endDate' frequencyType: description: Indicates the frequency for which payments will be taken from the payers account. allOf: - $ref: '#/components/schemas/frequencyType' numberOfPayments: $ref: '#/components/schemas/numberOfPayments' requestingOrganisation: $ref: '#/components/schemas/requestingOrganisation' requestDate: $ref: '#/components/schemas/requestDate' customData: $ref: '#/components/schemas/customDataArray' endDate: type: string format: date description: Date on which the mandate ends. example: '2018-11-20' modificationDate: type: string format: date-time description: Date and time when the object was modified by the API Provider. currency: type: string enum: - AED - AFN - ALL - AMD - ANG - AOA - ARS - AUD - AWG - AZN - BAM - BBD - BDT - BGN - BHD - BIF - BMD - BND - BOB - BOV - BRL - BSD - BTN - BWP - BYN - BZD - CAD - CDF - CHE - CHF - CHW - CLF - CLP - CNY - COP - COU - CRC - CUC - CUP - CVE - CZK - DJF - DKK - DOP - DZD - EGP - ERN - ETB - EUR - FJD - FKP - GBP - GEL - GHS - GIP - GMD - GNF - GTQ - GYD - HKD - HNL - HRK - HTG - HUF - IDR - ILS - INR - IQD - IRR - ISK - JMD - JOD - JPY - KES - KGS - KHR - KMF - KPW - KRW - KWD - KYD - KZT - LAK - LBP - LKR - LRD - LSL - LYD - MAD - MDL - MGA - MKD - MMK - MNT - MOP - MRO - MUR - MVR - MWK - MXN - MXV - MYR - MZN - NAD - NGN - NIO - NOK - NPR - NZD - OMR - PAB - PEN - PGK - PHP - PKR - PLN - PYG - QAR - RON - RSD - RUB - RWF - SAR - SBD - SCR - SDG - SEK - SGD - SHP - SLL - SOS - SRD - SSP - STD - SVC - SYP - SZL - THB - TJS - TMT - TND - TOP - TRY - TTD - TWD - TZS - UAH - UGX - USD - USN - UYI - UYU - UZS - VEF - VND - VUV - WST - XAF - XAG - XAU - XBA - XBB - XBC - XBD - XCD - XDR - XOF - XPD - XPF - XPT - XSU - XTS - XUA - XXX - YER - ZAR - ZMW - ZWL customDataArray: type: array description: A collection of key/value pairs. These can be used to populate provider specific fields. items: $ref: '#/components/schemas/customData' maxItems: 20 dateModified: type: string format: date-time deprecated: true description: Date and time when the object was modified by the API Provider. mandateStatus: type: string enum: - active - inactive requestStateObject: type: object required: - notificationMethod - serverCorrelationId - status properties: serverCorrelationId: type: string description: A unique identifier issued by the provider to enable the client to identify the RequestState resource on subsequent polling requests. Must be supplied as a UUID. minLength: 1 maxLength: 256 pattern: ^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$ objectReference: type: string description: Provides a reference to the subject resource, e.g. transaction reference. minLength: 0 maxLength: 256 status: type: string enum: - pending - completed - failed description: Indicates the status of the request. notificationMethod: type: string enum: - callback - polling description: Indicates whether a callback will be issued or whether the client will need to poll. pendingReason: type: string description: A textual description that can be provided to describe the reason for a pending status. minLength: 0 maxLength: 256 expiryTime: type: string format: date-time description: Indicate the time by which the provider will fail the request if completion criteria have not been met. For an example, a debit party failing to authorise within the allowed period. pollLimit: type: number format: int32 description: Indicates the number of poll attempts for the given requeststate resource that will be allowed by the provider. exclusiveMinimum: 0 error: description: If the asynchronous processing failed, details of the error will be returned here. allOf: - $ref: '#/components/schemas/errorObject' frequencyType: type: string enum: - weekly - fortnight - monthspecificdate - twomonths - threemonths - fourmonths - sixmonths - yearly - lastdaymonth - lastdaymonthworking - lastmonday - lasttuesday - lastwednesday - lastthursday - lastfriday - lastsaturday - lastsunday - specificdaymonthly numberOfPayments: type: number format: int32 description: Indicates the number of consecutive payments that are to be taken. minimum: 0 creationDate: type: string format: date-time description: Date and time when the object was created by the API Provider. mandateReference: type: string description: Unique reference provided by the API Provider for the mandate. minLength: 0 maxLength: 256 startDate: type: string format: date description: Date on which the mandate starts. If a frequencyType is specified, this will also be the date on which the first payment is to be taken. example: '2018-11-20' requestDate: type: string format: date-time description: The date and time of the request as supplied by the client. party: type: object required: - key - value properties: key: type: string description: Provides the account identifier type. minLength: 1 maxLength: 256 example: msisdn value: type: string description: Provides the account identifier type value. minLength: 1 maxLength: 256 example: '+33555123456' errorObject: type: object required: - errorCategory - errorCode properties: errorCategory: type: string description: The category grouping for the error. enum: - businessRule - validation - authorisation - identification - internal - serviceUnavailable errorCode: type: string description: The harmonised error code identifying the reason for error. enum: - genericError - dailyVolumeLimitExceeded - dailyValueLimitExceeded - weeklyVolumeLimitExceeded - weeklyValueLimitExceeded - monthlyVolumeLimitExceeded - monthlyValueLimitExceeded - accountMaxTotalVolumeExceeded - accountMaxTotalValueExceeded - lessThanTransactionMinValue - greaterThanTransactionMaxValue - maxBalanceExceeded - samePartiesError - duplicateRequest - insufficientFunds - incorrectState - underPaymentNotAllowed - overPaymentNotAllowed - rateLimitError - transactionTypeError - noMandateAuthority - linkViolation - countryofOriginNotPermitted - nationalityNotPermitted - idDocumentNotSupported - issuingCountryNotSupported - quoteHasExpired - identifierError - lengthError - formatError - negativeValue - currencyNotSupported - mandatoryValueNotSupplied - invalidOffset - clientAuthorisationError - requestDeclined - servicingPartyAuthorisationError - requestingPartyAuthorisationError errordescription: type: string description: A textual description of the error. minLength: 0 maxLength: 256 errorDateTime: type: string format: date-time description: The timestamp indicating when the error occurred. errorParameters: description: Diagnostic information in the form of key/value pairs relating to the error. allOf: - $ref: '#/components/schemas/metadataArray' amount: type: string minLength: 1 maxLength: 23 pattern: ^([0]|([1-9][0-9]{0,17}))([.][0-9]{0,3}[0-9])?$ example: '15.21' customData: type: object required: - key - value properties: key: type: string description: Identifies the type of additional field. minLength: 1 maxLength: 256 value: type: string description: Identifies the value of the additional field. minLength: 1 maxLength: 256 requestBodies: genericPatch: required: true description: Represents the request body of a batch of generic Patch operation. content: application/json: schema: $ref: '#/components/schemas/requestGenericPatchArray' updateError: required: true description: Represents the request body of error callback. content: application/json: schema: $ref: '#/components/schemas/errorObject' updateDebitMandate: required: true description: Represents the request body of a debit mandate callback. content: application/json: schema: $ref: '#/components/schemas/responseDebitMandate' genericUpdateSuccess: required: true description: Represents the request body of a success message callback to an update event. content: application/json: schema: $ref: '#/components/schemas/genericUpdateSuccess' requestDebitMandate: required: true description: Represents the request body of a debit mandate. content: application/json: schema: $ref: '#/components/schemas/requestDebitMandate' parameters: debitMandateReference: name: debitMandateReference in: path description: Path variable to uniquely identify a Debit Mandate Reference. required: true schema: type: string maxLength: 256 minLength: 1 X-Account-Holding-Institution-Identifier-Type: name: X-Account-Holding-Institution-Identifier-Type in: header description: A header variable that identifies the type of the account holding institution. This header is used to support request routing and should be used in conjunction with the X-Account-Holding-Institution-Identifier header. required: false schema: type: string enum: - lei - swiftbic - organisationid X-API-Key: name: X-API-Key in: header description: Used to pass pre-shared client's API key to the server. required: false schema: type: string X-Date: name: X-Date in: header description: Header parameter to indicate the date and time that the message was originated. It is used for basic message integrity checks, to ensure the request is not stale. Note that the header was previously referenced as 'Date' in version 1.0 of the Mobile Money API. required: false schema: type: string format: date-time identifier: name: identifier in: path description: Path variable that contains the account identifier. required: true schema: type: string maxLength: 256 minLength: 1 identifierType: name: identifierType in: path required: true description: Path variable to specify the type of the identifier that is used to identify the account. schema: type: string enum: - accountid - msisdn - walletid - linkref - consumerno - serviceprovider - storeid - accountcategory - bankaccountno - accountrank - identityalias - iban - swiftbic - sortcode - organisationid - bankname - bankaccounttitle - username - emailaddress - mandatereference X-Callback-URL: name: X-Callback-URL in: header description: The URL supplied by the client that will be used to return the callback in the form of a HTTP PUT. required: false schema: type: string format: uri X-CorrelationID: name: X-CorrelationID in: header description: Header parameter to uniquely identify the request. Must be supplied as a UUID. required: false schema: type: string pattern: ^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$ X-User-Credential-1: name: X-User-Credential-1 in: header description: The end-users encrypted security credential. Should only be used when OAuth 2.0/OIDC authorisation framework has not been implemented by the API Provider. required: false schema: type: string X-Channel: name: X-Channel in: header description: String containing the channel that was used to originate the request. For example USSD, Web, App. required: false schema: type: string maxLength: 256 accountId: name: accountId in: path description: 'Path variable to uniquely identify an account. Up to three account identifiers can be supplied. Identifiers are delimited by $ and values are delimited by @. Example: organisationid@1234$accountid@3333. Valid account identifiers are accountcategory, bankaccountno, accountrank, identityalias, iban, accountid, msisdn, swiftbic, sortcode, organisationid, username, walletid, linkref, consumerno, serviceprovider, storeid, bankname, bankaccounttitle, emailaddress, mandatereference.' required: true schema: type: string pattern: ^((accountcategory|bankaccountno|accountrank|identityalias|iban|accountid|msisdn|swiftbic|sortcode|organisationid|username|walletid|linkref|consumerno|serviceprovider|storeid|bankname|bankaccounttitle|emailaddress|mandatereference)@([^$\n]+))(\$(accountcategory|bankaccountno|accountrank|identityalias|iban|accountid|msisdn|swiftbic|sortcode|organisationid|username|walletid|linkref|consumerno|serviceprovider|storeid|bankname|bankaccounttitle|emailaddress|mandatereference)@([^$\n]+)){0,2}$ X-Account-Holding-Institution-Identifier: name: X-Account-Holding-Institution-Identifier in: header description: A header variable that identifies the account holding institution. This header is used to support request routing and should be used in conjunction with the X-Account-Holding-Institution-Identifier-Type header. required: false schema: type: string X-User-Bearer: name: X-User-Bearer in: header description: Used to pass user’s access token when OAuth 2.0/OIDC authorisation framework is used for end-user authentication. required: false schema: type: string X-Client-Id: name: X-Client-Id in: header description: Used to pass pre-shared client's identifier to the server. required: false schema: type: string maxLength: 256 X-User-Credential-2: name: X-User-Credential-2 in: header description: The end-users encrypted security credential Should only be used when OAuth 2.0/OIDC authorisation framework has not been implemented by the API Provider. required: false schema: type: string X-Content-Hash: name: X-Content-Hash in: header description: SHA-256 hex digest of the request content (encrypted or plain). Applicable only if basic data integrity checking is to be performed. required: false schema: type: string headers: X-Date: required: false description: The date and time that the response message was sent. schema: type: string format: date-time