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 Transactions 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: Transactions description: 'The **Transactions** APIs are used to support mobile money financial transaction use cases. Transactions are used for a wide range of use cases including merchant payments, international transfers, domestic transfers and agent cash-in/cash-out. Reversals and adjustments are also treated as transactions. ' paths: /transactions: post: deprecated: true tags: - Transactions summary: Create a Transaction description: Provided with a valid object representation, this endpoint allows for a new transaction to be created operationId: transactionsPOST parameters: - $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/requestTransaction' callbacks: transactionsSuccessEvent: '{$request.header.X-Callback-URL}': put: summary: Transaction Success Callback description: This callback communicates the final representation of the transaction requested by the client. The client endpoint is identified from the X-Callback-URL supplied in the POST request header. operationId: transactionsSuccessPUT 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/updateTransaction' 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 transactionsFailureEvent: '{$request.header.X-Callback-URL}': put: summary: Transaction Failure Callback description: This callback communicates the information regarding a transaction failure in the form of an error object. The client endpoint is identified from the X-Callback-URL supplied in the POST request header. operationId: transactionsFailurePUT 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 Transaction response content: application/json: schema: $ref: '#/components/schemas/responseTransaction' 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' /transactions/type/{transactionType}: post: tags: - Transactions summary: Create a Transaction description: Provided with a valid object representation, this endpoint allows for a new transaction to be created for a given transaction type passed via the URL. operationId: transactionstypetransactionTypePUT parameters: - $ref: '#/components/parameters/transactionTypePath' - $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/requestTransactionType' callbacks: transactionsSuccessEvent: '{$request.header.X-Callback-URL}': put: summary: Transaction Success Callback description: This callback communicates the final representation of the transaction requested by the client. The client endpoint is identified from the X-Callback-URL supplied in the POST request header. operationId: transactionsTransactionTypeSuccessPUT 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/updateTransaction' 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 transactionsFailureEvent: '{$request.header.X-Callback-URL}': put: summary: Transaction Failure Callback description: This callback communicates the information regarding a transaction failure in the form of an error object. The client endpoint is identified from the X-Callback-URL supplied in the POST request header. operationId: transactionsTransactionTypeFailurePUT 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 Transaction response content: application/json: schema: $ref: '#/components/schemas/responseTransactionType' 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' /transactions/{transactionReference}: parameters: - $ref: '#/components/parameters/transactionReference' - $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: - Transactions summary: View A Transaction description: This endpoint returns the details of a transaction operationId: transactionsTransactionReferenceGET responses: 200: description: Represents a Transaction response content: application/json: schema: $ref: '#/components/schemas/responseTransaction' 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: - Transactions summary: Update A Transaction description: This endpoint allows the transactionStatus of a transaction to be updated. operationId: transactionsTransactionReferencePATCH parameters: - $ref: '#/components/parameters/X-CorrelationID' - $ref: '#/components/parameters/X-Callback-URL' requestBody: $ref: '#/components/requestBodies/genericPatch' callbacks: transactionsUpdateSuccessEvent: '{$request.header.X-Callback-URL}': put: summary: Transactions Update Success Callback description: This callback communicates a simple message to communicate that the transaction update completed successfully. operationId: transactionsTransactionsUpdatePUT 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 transactionsUpdateFailureEvent: '{$request.header.X-Callback-URL}': put: summary: Transaction Update Failure Callback description: This callback communicates the information regarding a failure to update a transaction in the form of an error object. The client endpoint is identified from the X-Callback-URL supplied in the POST request header. operationId: transactionsTransactionsUpdateFailurePUT 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' /transactions/{transactionReference}/reversals: post: tags: - Transactions summary: Create A Reversal description: Provided with a valid object representation, this endpoint allows for a new reversal to be created operationId: transactionsTransactionReferenceReversalsPOST parameters: - $ref: '#/components/parameters/transactionReference' - $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/requestReversal' callbacks: reversalsSuccessEvent: '{$request.header.X-Callback-URL}': put: summary: Reversal Callback description: This callback communicates the final representation of the reversal requested by the client. The client endpoint is identified from the X-Callback-URL supplied in the POST request header. operationId: transactionsTransactionReferenceReversalsSuccessPUT 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/updateReversal' 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 reversalsFailureEvent: '{$request.header.X-Callback-URL}': put: summary: Reversal Failure Callback description: This callback communicates the information regarding a transaction failure in the form of an error object. The client endpoint is identified from the X-Callback-URL supplied in the POST request header. operationId: transactionsTransactionReferenceReversalfailurePUT 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 Transaction Reversal response content: application/json: schema: $ref: '#/components/schemas/responseReversal' 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' /batchtransactions: post: tags: - Transactions summary: Create A Transaction Batch description: Provided with a valid object representation, this endpoint allows for a new transaction batch to be created operationId: batchtransactionsPOST parameters: - $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/requestBatchTransaction' callbacks: batchTransactionsSuccessEvent: '{$request.header.X-Callback-URL}': put: summary: Batch Transactions Callback description: This callback communicates the final representation of the batch of transactions requested by the client. The client endpoint is identified from the X-Callback-URL supplied in the POST request header. operationId: transactionsBatchTransactionsSuccessPUT 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/updateBatchTransaction' 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 batchTransactionsFailureEvent: '{$request.header.X-Callback-URL}': put: summary: Batch Transaction Failure Callback description: This callback communicates the information regarding a failure to receive a transaction batch in the form of an error object. The client endpoint is identified from the X-Callback-URL supplied in the POST request header. operationId: transactionsBatchTransactionsFailurePUT 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' 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' /batchtransactions/{batchId}: parameters: - $ref: '#/components/parameters/batchId' - $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: - Transactions summary: View A Transaction Batch description: This endpoint returns the current status of a batch transaction operationId: batchtransactionsBatchIdGET responses: 200: description: Represents a Batch Transaction response content: application/json: schema: $ref: '#/components/schemas/responseBatchTransaction' 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: - Transactions summary: Update A Transaction Batch description: This endpoint updates a specific transaction batch. Only the batchStatus field can be modified. operationId: batchtransactionsBatchIdPATCH parameters: - $ref: '#/components/parameters/X-CorrelationID' - $ref: '#/components/parameters/X-Callback-URL' requestBody: $ref: '#/components/requestBodies/genericPatch' callbacks: batchTransactionsUpdateSuccessEvent: '{$request.header.X-Callback-URL}': put: summary: Batch Transactions Update Success Callback description: This callback communicates a simple message to communicate that the Batch Transactions update completed successfully. operationId: transactionsBatchTransactionsUpdatePUT 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 batchTransactionsUpdateFailureEvent: '{$request.header.X-Callback-URL}': put: summary: Batch Transaction Update Failure Callback description: This callback communicates the information regarding a failure to update a transaction batch in the form of an error object. The client endpoint is identified from the X-Callback-URL supplied in the POST request header. operationId: transactionsBatchTransactionsUpdateFailurePUT 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' /batchtransactions/{batchId}/rejections: get: tags: - Transactions summary: View Batch Rejections description: This endpoint returns rejected transactions for a specific batch" operationId: batchtransactionsBatchIdRejectionsGET parameters: - $ref: '#/components/parameters/batchId' - $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' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' - $ref: '#/components/parameters/fromDateTime' - $ref: '#/components/parameters/toDateTime' responses: 200: description: Represents a Batch Transaction Rejection response content: application/json: schema: type: array items: $ref: '#/components/schemas/responseBatchTransactionRejection' minItems: 0 headers: X-Date: $ref: '#/components/headers/X-Date' X-Records-Available-Count: $ref: '#/components/headers/X-Records-Available-Count' X-Records-Returned-Count: $ref: '#/components/headers/X-Records-Returned-Count' 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' /batchtransactions/{batchId}/completions: get: tags: - Transactions summary: View Batch Completions description: This endpoint returns completed transactions for a specific batch operationId: batchtransactionsBatchIdCompletionsGET parameters: - $ref: '#/components/parameters/batchId' - $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' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' - $ref: '#/components/parameters/fromDateTime' - $ref: '#/components/parameters/toDateTime' responses: 200: description: Represent a list of Batch Completions content: application/json: schema: type: array items: $ref: '#/components/schemas/responseBatchTransactionCompletion' minItems: 0 headers: X-Date: $ref: '#/components/headers/X-Date' X-Records-Available-Count: $ref: '#/components/headers/X-Records-Available-Count' X-Records-Returned-Count: $ref: '#/components/headers/X-Records-Returned-Count' 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: postalAddress: type: object required: - country properties: addressLine1: type: string description: First line of the address. minLength: 0 maxLength: 256 addressLine2: type: string description: Second line of the address. minLength: 0 maxLength: 256 addressLine3: type: string description: Third line of the address. minLength: 0 maxLength: 256 city: type: string description: City/Town minLength: 0 maxLength: 256 stateProvince: type: string description: State or Province minLength: 0 maxLength: 256 postalCode: type: string description: Postal Code minLength: 0 maxLength: 256 country: description: Country" allOf: - $ref: '#/components/schemas/nationality' remittancePurpose: type: string description: Field providing a description of the reason for the international remittance. minLength: 0 maxLength: 256 contactPhone: type: string description: Contact phone number (mobile or landline) of the KYC subject. minLength: 0 maxLength: 256 geoCode: type: string description: Indicates the geographic location from where the transaction was initiated. minLength: 0 maxLength: 256 pattern: ^(-?(90|(\d|[1-8]\d)(\.\d{1,6}){0,1}))\,{1}(-?(180|(\d|\d\d|1[0-7]\d)(\.\d{1,6}){0,1}))$ example: 37.423825,-122.082900 requestingLei: type: string description: Legal Entity Identifier of the organisation that is requesting the transaction. minLength: 0 maxLength: 20 pattern: ^[A-Z0-9]{4}00[A-Z0-9]{12}\d{2}$ deprecated: true completedCount: type: number format: int32 description: Indicates the number of records that have been successful completed. minimum: 0 gender: type: string enum: - m - f - u description: Gender of the KYC subject. dateCreated: type: string format: date-time deprecated: true description: Date and time when the object was created by the API Provider. scheduledStartDate: type: string format: date-time description: If the batch has been scheduled, the expected start time is provided here. emailAddress: type: string description: Email address of the KYC subject. minLength: 0 maxLength: 256 batchTitle: type: string description: Client-provided title for the batch. minLength: 0 maxLength: 256 rejectionCount: type: number format: int32 description: Indicates the number of records that have been rejected, either during parsing or during final processing. minimum: 0 completionDate: type: string format: date-time description: Indicates when the batch was completed as recorded by the API. responseTransactionType: allOf: - type: object required: - amount - currency - type - transactionReference - transactionStatus properties: transactionReference: $ref: '#/components/schemas/transactionReference' requestingOrganisationTransactionReference: $ref: '#/components/schemas/requestingOrganisationTransactionReference' originalTransactionReference: $ref: '#/components/schemas/originalTransactionReference' type: $ref: '#/components/schemas/type' subType: $ref: '#/components/schemas/subType' transactionStatus: $ref: '#/components/schemas/transactionStatus' amount: description: The transaction amount. allOf: - $ref: '#/components/schemas/amount' example: '15.23' currency: description: Currency of the transaction amount. allOf: - $ref: '#/components/schemas/currency' example: RWF descriptionText: $ref: '#/components/schemas/descriptionText' fees: $ref: '#/components/schemas/feesArray' geoCode: $ref: '#/components/schemas/geoCode' internationalTransferInformation: $ref: '#/components/schemas/internationalTransferInformationResponse' oneTimeCode: $ref: '#/components/schemas/oneTimeCode' recipientKyc: $ref: '#/components/schemas/kyc' senderKyc: $ref: '#/components/schemas/kyc' requestingOrganisation: $ref: '#/components/schemas/requestingOrganisation' servicingIdentity: $ref: '#/components/schemas/servicingIdentity' transactionReceipt: $ref: '#/components/schemas/transactionReceipt' creationDate: $ref: '#/components/schemas/creationDate' modificationDate: $ref: '#/components/schemas/modificationDate' requestDate: $ref: '#/components/schemas/requestDate' customData: $ref: '#/components/schemas/customDataArray' metadata: $ref: '#/components/schemas/metadataArray' dateCreated: $ref: '#/components/schemas/dateCreated' dateModified: $ref: '#/components/schemas/dateModified' receivingLei: $ref: '#/components/schemas/receivingLei' requestingLei: $ref: '#/components/schemas/requestingLei' - anyOf: - type: object required: - creditParty properties: creditParty: $ref: '#/components/schemas/creditPartyArray' - type: object required: - debitParty properties: debitParty: $ref: '#/components/schemas/debitPartyArray' - type: object required: - debitParty - creditParty properties: creditParty: $ref: '#/components/schemas/creditPartyArray' debitParty: $ref: '#/components/schemas/debitPartyArray' transactionCompletedDate: type: string format: date-time deprecated: true description: Date and time indicating when the transaction was completed. completedDate: type: string format: date-time deprecated: true description: Indicates when the batch was completed as recorded by the API. transactionReference: type: string description: Unique reference for the transaction. This is returned in the response by API provider. minLength: 1 maxLength: 256 typeReversal: type: string description: The harmonised Transaction Type. enum: - adjustment - reversal example: reversal subjectName: type: object properties: title: type: string description: The given title of the KYC subject, e.g. Mr, Mrs, Dr. minLength: 0 maxLength: 256 firstName: type: string description: First name (also referred to as given name) of the KYC subject. minLength: 0 maxLength: 256 middleName: type: string description: Middle Name of the KYC subject. minLength: 0 maxLength: 256 lastName: type: string description: Surname (also referred to as last or family name) of the KYC subject. minLength: 0 maxLength: 256 fullName: type: string description: The full name of the KYC subject. minLength: 0 maxLength: 256 nativeName: type: string description: The full name expressed as in the native language. minLength: 0 maxLength: 256 internationalTransferInformation: type: object description: A collection of properties detailing information specifically used for international transfers. required: - originCountry properties: quotationReference: $ref: '#/components/schemas/quotationReference' quoteId: $ref: '#/components/schemas/quoteId' originCountry: allOf: - $ref: '#/components/schemas/nationality' description: The originating country of the transaction, i.e. the country where the transaction was initiated. deliveryMethod: allOf: - $ref: '#/components/schemas/deliveryMethod' description: The recipient delivery method as chosen by the sender. receivingCountry: allOf: - $ref: '#/components/schemas/nationality' description: Destination Country of the international transfer. relationshipSender: $ref: '#/components/schemas/relationshipSender' remittancePurpose: $ref: '#/components/schemas/remittancePurpose' sendingServiceProviderCountry: allOf: - $ref: '#/components/schemas/nationality' description: The country of the sending service provider that holds the account of the sender. 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' originalTransactionReference: type: string description: For reversals and refunds, this field indicates the transaction which is the subject of the reversal. minLength: 0 maxLength: 256 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' occupation: type: string description: Occupation of the KYC subject. minLength: 0 maxLength: 256 nationality: type: string enum: - AD - AE - AF - AG - AI - AL - AM - AO - AQ - AR - AS - AT - AU - AW - AX - AZ - BA - BB - BD - BE - BF - BG - BH - BI - BJ - BL - BM - BN - BO - BQ - BR - BS - BT - BV - BW - BY - BZ - CA - CC - CD - CF - CG - CH - CI - CK - CL - CM - CN - CO - CR - CU - CV - CW - CX - CY - CZ - DE - DJ - DK - DM - DO - DZ - EC - EE - EG - EH - ER - ES - ET - FI - FJ - FK - FM - FO - FR - GA - GB - GD - GE - GF - GG - GH - GI - GL - GM - GN - GP - GQ - GR - GS - GT - GU - GW - GY - HK - HM - HN - HR - HT - HU - ID - IE - IL - IM - IN - IO - IQ - IR - IS - IT - JE - JM - JO - JP - KE - KG - KH - KI - KM - KN - KP - KR - KW - KY - KZ - LA - LB - LC - LI - LK - LR - LS - LT - LU - LV - LY - MA - MC - MD - ME - MF - MG - MH - MK - ML - MM - MN - MO - MP - MQ - MR - MS - MT - MU - MV - MW - MX - MY - MZ - NA - NC - NE - NF - NG - NI - NL - 'NO' - NP - NR - NU - NZ - OM - PA - PE - PF - PG - PH - PK - PL - PM - PN - PR - PS - PT - PW - PY - QA - RE - RO - RS - RU - RW - SA - SB - SC - SD - SE - SG - SH - SI - SJ - SK - SL - SM - SN - SO - SR - SS - ST - SV - SX - SY - SZ - TC - TD - TF - TG - TH - TJ - TK - TL - TM - TN - TO - TR - TT - TV - TW - TZ - UA - UG - UM - US - UY - UZ - VA - VC - VE - VG - VI - VN - VU - WF - WS - YE - YT - ZA - ZM - ZW idDocument: type: object required: - idType properties: idType: type: string enum: - passport - nationalregistration - otherId - drivinglicence - socialsecurity - alienregistration - nationalidcard - employer - taxid - seniorcitizenscard - marriagecertificate - birthcertificate - healthcard - votersid - villageelderLetter - pancard - officialletter description: Indicates the type of identification for the KYC subject, e.g. passport, driving licence etc. idNumber: type: string description: Reference pertaining to the type of identification for the KYC subject. minLength: 0 maxLength: 256 issueDate: type: string format: date description: Date of issue for the identification document. example: '2018-11-20' expiryDate: type: string format: date description: Date of expiry for the identification document. example: '2018-11-20' issuer: type: string description: Indicates the organisation/government entity that issued the ID document. minLength: 0 maxLength: 256 issuerPlace: type: string description: Place of issue for the identification type. minLength: 0 maxLength: 256 issuerCountry: description: Country where the identification type was issued. allOf: - $ref: '#/components/schemas/nationality' otherIddescription: type: string description: Where an ID Type of otherid is specified, a description of the type of identification can be provided in this field. minLength: 0 maxLength: 256 transactionReceipt: type: string description: Transaction receipt number as notified to the parties. This may differ from the Transaction Reference. minLength: 0 maxLength: 256 creditPartyArray: type: array description: A collection of key/value pairs that enable the party to be identified. Keys include MSISDN and Wallet Identifier. items: $ref: '#/components/schemas/party' maxItems: 10 minItems: 1 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 transactionCompletionDate: type: string format: date-time description: Date and time indicating when the transaction was completed. responseBatchTransactionRejection: type: object required: - creditParty - debitParty - rejectionDate - rejectionReason properties: transactionReference: $ref: '#/components/schemas/transactionReference' requestingOrganisationTransactionReference: $ref: '#/components/schemas/requestingOrganisationTransactionReference' creditParty: $ref: '#/components/schemas/creditPartyArray' debitParty: $ref: '#/components/schemas/debitPartyArray' rejectionReason: $ref: '#/components/schemas/rejectionReason' rejectionDate: $ref: '#/components/schemas/rejectionDate' customData: $ref: '#/components/schemas/customDataArray' dateRejected: $ref: '#/components/schemas/dateRejected' batchStatus: type: string enum: - created - approved - completed rejectionDate: type: string format: date-time description: Date and time of the rejection. internationalTransferInformationResponse: type: object required: - originCountry properties: originCountry: allOf: - $ref: '#/components/schemas/nationality' description: The originating country of the transaction, i.e. the country where the transaction commenced. quotationReference: $ref: '#/components/schemas/quotationReference' quoteId: $ref: '#/components/schemas/quoteId' deliveryMethod: allOf: - $ref: '#/components/schemas/deliveryMethod' description: The recipient delivery method as chosen by the sender. receivingCountry: allOf: - $ref: '#/components/schemas/nationality' description: Destination country of the international transfer. relationshipSender: $ref: '#/components/schemas/relationshipSender' remittancePurpose: $ref: '#/components/schemas/remittancePurpose' recipientBlockingReason: $ref: '#/components/schemas/recipientBlockingReason' senderBlockingReason: $ref: '#/components/schemas/senderBlockingReason' sendingServiceProviderCountry: allOf: - $ref: '#/components/schemas/nationality' description: The country of the sending service provider that holds the account of the sender. quotationReference: type: string description: Reference for the quotation that was provided to the sender. minLength: 1 maxLength: 256 receivingLei: type: string description: Legal Entity Identifier of the organisation that is receiving the transaction. minLength: 0 maxLength: 20 pattern: ^[A-Z0-9]{4}00[A-Z0-9]{12}\d{2}$ deprecated: true 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 link: type: string description: Provides a URL to the resource. minLength: 1 maxLength: 256 type: type: string description: The harmonised Transaction Type. enum: - billpay - deposit - disbursement - transfer - merchantpay - inttransfer - adjustment - reversal - withdrawal batchDescription: type: string description: Client-provided description of the batch. minLength: 0 maxLength: 256 subType: type: string description: A non-harmonised sub-classification of the type of transaction. Values are not fixed, and usage will vary according to Provider. minLength: 0 maxLength: 256 requestDate: type: string format: date-time description: The date and time of the request as supplied by the client. responseBatchTransaction: type: object required: - approvalDate - batchId - batchStatus - completionDate properties: batchId: $ref: '#/components/schemas/batchId' batchStatus: $ref: '#/components/schemas/batchStatus' approvalDate: $ref: '#/components/schemas/approvalDate' completionDate: $ref: '#/components/schemas/completionDate' batchTitle: $ref: '#/components/schemas/batchTitle' batchdescription: $ref: '#/components/schemas/batchDescription' processingFlag: $ref: '#/components/schemas/processingFlag' completedCount: $ref: '#/components/schemas/completedCount' rejectionCount: $ref: '#/components/schemas/rejectionCount' parsingSuccessCount: $ref: '#/components/schemas/parsingSuccessCount' requestingOrganisation: $ref: '#/components/schemas/requestingOrganisation' scheduledStartDate: $ref: '#/components/schemas/scheduledStartDate' creationDate: $ref: '#/components/schemas/creationDate' modificationDate: $ref: '#/components/schemas/modificationDate' requestDate: $ref: '#/components/schemas/requestDate' customData: $ref: '#/components/schemas/customDataArray' completedDate: $ref: '#/components/schemas/completedDate' requestTransaction: type: object required: - amount - currency - type - creditParty - debitParty properties: requestingOrganisationTransactionReference: $ref: '#/components/schemas/requestingOrganisationTransactionReference' originalTransactionReference: $ref: '#/components/schemas/originalTransactionReference' creditParty: $ref: '#/components/schemas/creditPartyArray' debitParty: $ref: '#/components/schemas/debitPartyArray' type: $ref: '#/components/schemas/type' subType: $ref: '#/components/schemas/subType' amount: description: The transaction amount. allOf: - $ref: '#/components/schemas/amount' example: '15.23' currency: description: Currency of the transaction amount. allOf: - $ref: '#/components/schemas/currency' example: RWF descriptionText: $ref: '#/components/schemas/descriptionText' fees: $ref: '#/components/schemas/feesArray' geoCode: $ref: '#/components/schemas/geoCode' internationalTransferInformation: $ref: '#/components/schemas/internationalTransferInformation' oneTimeCode: $ref: '#/components/schemas/oneTimeCode' recipientKyc: $ref: '#/components/schemas/kyc' senderKyc: $ref: '#/components/schemas/kyc' requestingOrganisation: $ref: '#/components/schemas/requestingOrganisation' servicingIdentity: $ref: '#/components/schemas/servicingIdentity' requestDate: $ref: '#/components/schemas/requestDate' customData: $ref: '#/components/schemas/customDataArray' metadata: $ref: '#/components/schemas/metadataArray' receivingLei: $ref: '#/components/schemas/receivingLei' requestingLei: $ref: '#/components/schemas/requestingLei' responseTransaction: type: object required: - amount - currency - type - transactionReference - transactionStatus - creditParty - debitParty properties: transactionReference: $ref: '#/components/schemas/transactionReference' originalTransactionReference: $ref: '#/components/schemas/originalTransactionReference' requestingOrganisationTransactionReference: $ref: '#/components/schemas/requestingOrganisationTransactionReference' creditParty: $ref: '#/components/schemas/creditPartyArray' debitParty: $ref: '#/components/schemas/debitPartyArray' type: $ref: '#/components/schemas/type' subType: $ref: '#/components/schemas/subType' transactionStatus: $ref: '#/components/schemas/transactionStatus' amount: description: The transaction amount. allOf: - $ref: '#/components/schemas/amount' example: '15.23' currency: description: Currency of the transaction amount. allOf: - $ref: '#/components/schemas/currency' example: RWF descriptionText: $ref: '#/components/schemas/descriptionText' fees: $ref: '#/components/schemas/feesArray' geoCode: $ref: '#/components/schemas/geoCode' internationalTransferInformation: $ref: '#/components/schemas/internationalTransferInformationResponse' oneTimeCode: $ref: '#/components/schemas/oneTimeCode' recipientKyc: $ref: '#/components/schemas/kyc' senderKyc: $ref: '#/components/schemas/kyc' requestingOrganisation: $ref: '#/components/schemas/requestingOrganisation' servicingIdentity: $ref: '#/components/schemas/servicingIdentity' transactionReceipt: $ref: '#/components/schemas/transactionReceipt' creationDate: $ref: '#/components/schemas/creationDate' modificationDate: $ref: '#/components/schemas/modificationDate' requestDate: $ref: '#/components/schemas/requestDate' customData: $ref: '#/components/schemas/customDataArray' metadata: $ref: '#/components/schemas/metadataArray' dateCreated: $ref: '#/components/schemas/dateCreated' dateModified: $ref: '#/components/schemas/dateModified' receivingLei: $ref: '#/components/schemas/receivingLei' requestingLei: $ref: '#/components/schemas/requestingLei' 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 feesArray: type: array description: Returns all fees that are applicable to the object. items: $ref: '#/components/schemas/fees' maxItems: 20 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 relationshipSender: type: string description: Indicates the relationship (if any) between the sender and the receiver. minLength: 0 maxLength: 256 recipientBlockingReason: type: string description: The reason for blocking the quotation, based on AML checks on the recipient. minLength: 0 maxLength: 256 requestGenericPatchArray: type: array description: Collection of updates that are to be processed. items: $ref: '#/components/schemas/requestGenericPatch' minItems: 1 maxItems: 10 parsingSuccessCount: type: number format: int32 description: Indicates the number of records that have been parsed successfully. minimum: 0 idDocumentArray: type: array description: An array of properties containing the forms of identification that are associated with the subject. items: $ref: '#/components/schemas/idDocument' maxItems: 10 minItems: 0 modificationDate: type: string format: date-time description: Date and time when the object was modified by the API Provider. requestBatchTransaction: type: object required: - transactions properties: batchStatus: $ref: '#/components/schemas/batchStatus' transactions: type: array description: Collection of Transactions that are to be processed. items: $ref: '#/components/schemas/requestTransaction' minItems: 1 maxItems: 999999 batchTitle: $ref: '#/components/schemas/batchTitle' batchdescription: $ref: '#/components/schemas/batchDescription' requestingOrganisation: $ref: '#/components/schemas/requestingOrganisation' scheduledStartDate: $ref: '#/components/schemas/scheduledStartDate' modificationDate: $ref: '#/components/schemas/modificationDate' requestDate: $ref: '#/components/schemas/requestDate' customData: $ref: '#/components/schemas/customDataArray' requestTransactionType: allOf: - type: object required: - amount - currency properties: requestingOrganisationTransactionReference: $ref: '#/components/schemas/requestingOrganisationTransactionReference' originalTransactionReference: $ref: '#/components/schemas/originalTransactionReference' subType: $ref: '#/components/schemas/subType' amount: description: The transaction amount. allOf: - $ref: '#/components/schemas/amount' example: '15.23' currency: description: Currency of the transaction amount. allOf: - $ref: '#/components/schemas/currency' example: RWF descriptionText: $ref: '#/components/schemas/descriptionText' fees: $ref: '#/components/schemas/feesArray' geoCode: $ref: '#/components/schemas/geoCode' internationalTransferInformation: $ref: '#/components/schemas/internationalTransferInformation' oneTimeCode: $ref: '#/components/schemas/oneTimeCode' recipientKyc: $ref: '#/components/schemas/kyc' senderKyc: $ref: '#/components/schemas/kyc' requestingOrganisation: $ref: '#/components/schemas/requestingOrganisation' servicingIdentity: $ref: '#/components/schemas/servicingIdentity' requestDate: $ref: '#/components/schemas/requestDate' customData: $ref: '#/components/schemas/customDataArray' metadata: $ref: '#/components/schemas/metadataArray' receivingLei: $ref: '#/components/schemas/receivingLei' requestingLei: $ref: '#/components/schemas/requestingLei' - anyOf: - type: object required: - creditParty properties: creditParty: $ref: '#/components/schemas/creditPartyArray' - type: object required: - debitParty properties: debitParty: $ref: '#/components/schemas/debitPartyArray' - type: object required: - debitParty - creditParty properties: creditParty: $ref: '#/components/schemas/creditPartyArray' debitParty: $ref: '#/components/schemas/debitPartyArray' requestingOrganisationTransactionReference: type: string description: A reference provided by the requesting organisation that is to be associated with the transaction. minLength: 0 maxLength: 256 employerName: type: string description: Employer name of the KYC subject. minLength: 0 maxLength: 256 dateModified: type: string format: date-time deprecated: true description: Date and time when the object was modified by the API Provider. debitPartyArray: type: array description: A collection of key/value pairs that enable the party to be identified. Keys include MSISDN and Wallet Identifier. items: $ref: '#/components/schemas/party' maxItems: 10 minItems: 1 fees: type: object required: - feeType - feeCurrency - feeAmount properties: feeType: type: string description: Defines the type of fee. minLength: 1 maxLength: 256 feeAmount: description: Defines the amount of the fee. allOf: - $ref: '#/components/schemas/amount' example: '5.46' feeCurrency: description: Defines the currency for the given fee. allOf: - $ref: '#/components/schemas/currency' approvalDate: type: string format: date-time description: Indicates when the batch was approved as recorded by the API. senderBlockingReason: type: string description: The reason for blocking the quotation, based on AML checks on the sender. minLength: 0 maxLength: 256 descriptionText: type: string description: Free format text description of the transaction provided by the client. This can be provided as a reference for the receiver on a notification SMS and on an account statement. minLength: 0 maxLength: 160 requestReversal: type: object required: - type properties: requestingOrganisationTransactionReference: $ref: '#/components/schemas/requestingOrganisationTransactionReference' creditParty: $ref: '#/components/schemas/creditPartyArray' debitParty: $ref: '#/components/schemas/debitPartyArray' type: $ref: '#/components/schemas/typeReversal' subType: $ref: '#/components/schemas/subType' amount: description: The transaction amount. allOf: - $ref: '#/components/schemas/amount' example: '15.23' currency: description: Currency of the transaction amount. allOf: - $ref: '#/components/schemas/currency' example: RWF descriptionText: $ref: '#/components/schemas/descriptionText' fees: $ref: '#/components/schemas/feesArray' geoCode: $ref: '#/components/schemas/geoCode' requestingOrganisation: $ref: '#/components/schemas/requestingOrganisation' servicingIdentity: $ref: '#/components/schemas/servicingIdentity' requestDate: $ref: '#/components/schemas/requestDate' customData: $ref: '#/components/schemas/customDataArray' metadata: $ref: '#/components/schemas/metadataArray' receivingLei: $ref: '#/components/schemas/receivingLei' requestingLei: $ref: '#/components/schemas/requestingLei' amount: type: string minLength: 1 maxLength: 23 pattern: ^([0]|([1-9][0-9]{0,17}))([.][0-9]{0,3}[0-9])?$ example: '15.21' quoteId: type: string description: The specific quote associated with the quotation. minLength: 1 maxLength: 256 responseBatchTransactionCompletion: type: object required: - transactionReference - creditParty - debitParty - completionDate - link properties: transactionReference: $ref: '#/components/schemas/transactionReference' requestingOrganisationTransactionReference: $ref: '#/components/schemas/requestingOrganisationTransactionReference' creditParty: $ref: '#/components/schemas/creditPartyArray' debitParty: $ref: '#/components/schemas/debitPartyArray' completionDate: $ref: '#/components/schemas/transactionCompletionDate' link: $ref: '#/components/schemas/link' customData: $ref: '#/components/schemas/customDataArray' completedDate: $ref: '#/components/schemas/transactionCompletedDate' 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 processingFlag: type: boolean description: Indicates whether the batch is currently undergoing processing by the API Provider. 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 rejectionReason: type: string description: The reason for the transaction request as indicated by the API provider. minLength: 1 maxLength: 256 deliveryMethod: type: string enum: - directtoaccount - agent - personaldelivery responseReversal: type: object required: - type - originalTransactionReference - transactionReference - transactionStatus properties: transactionReference: $ref: '#/components/schemas/transactionReference' requestingOrganisationTransactionReference: $ref: '#/components/schemas/requestingOrganisationTransactionReference' originalTransactionReference: $ref: '#/components/schemas/originalTransactionReference' creditParty: $ref: '#/components/schemas/debitPartyArray' debitParty: $ref: '#/components/schemas/debitPartyArray' type: $ref: '#/components/schemas/typeReversal' subType: $ref: '#/components/schemas/subType' transactionStatus: $ref: '#/components/schemas/transactionStatus' amount: description: The transaction amount. allOf: - $ref: '#/components/schemas/amount' example: '15.23' currency: description: Currency of the transaction amount. allOf: - $ref: '#/components/schemas/currency' example: RWF descriptionText: $ref: '#/components/schemas/descriptionText' fees: $ref: '#/components/schemas/feesArray' geoCode: $ref: '#/components/schemas/geoCode' requestingOrganisation: $ref: '#/components/schemas/requestingOrganisation' servicingIdentity: $ref: '#/components/schemas/servicingIdentity' transactionReceipt: $ref: '#/components/schemas/transactionReceipt' creationDate: $ref: '#/components/schemas/creationDate' modificationDate: $ref: '#/components/schemas/modificationDate' requestDate: $ref: '#/components/schemas/requestDate' customData: $ref: '#/components/schemas/customDataArray' metadata: $ref: '#/components/schemas/metadataArray' dateCreated: $ref: '#/components/schemas/dateCreated' dateModified: $ref: '#/components/schemas/dateModified' receivingLei: $ref: '#/components/schemas/receivingLei' requestingLei: $ref: '#/components/schemas/requestingLei' 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 servicingIdentity: type: string description: The field is used to identify the servicing identity for transactions, e.g. till, POS ID, assistant ID. minLength: 0 maxLength: 256 batchId: type: string description: Identifier for the Batch that is assigned by the API provider. This ID is used by the client on subsequent GET or PATCH methods. minLength: 1 maxLength: 256 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' dateRejected: type: string format: date-time deprecated: true description: Date and time of the rejection. transactionStatus: type: string description: Indicates the status of the transaction as stored by the API provider. minLength: 1 maxLength: 256 oneTimeCode: type: string description: A one-time code that can be supplied in the request or can be generated in the response depending upon the use case. An authorisation code can be supplied in this field for requests that have been pre-authorised. minLength: 0 maxLength: 256 creationDate: type: string format: date-time description: Date and time when the object was created by the API Provider. kyc: type: object properties: birthCountry: description: The country of birth of the KYC subject. allOf: - $ref: '#/components/schemas/nationality' contactPhone: $ref: '#/components/schemas/contactPhone' dateOfBirth: $ref: '#/components/schemas/dateOfBirth' emailAddress: $ref: '#/components/schemas/emailAddress' employerName: $ref: '#/components/schemas/employerName' gender: $ref: '#/components/schemas/gender' idDocument: $ref: '#/components/schemas/idDocumentArray' nationality: description: Nationality of the KYC subject. allOf: - $ref: '#/components/schemas/nationality' occupation: $ref: '#/components/schemas/occupation' postalAddress: $ref: '#/components/schemas/postalAddress' subjectName: $ref: '#/components/schemas/subjectName' dateOfBirth: type: string format: date description: Birth date of the KYC subject. example: '2000-11-20' 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 parameters: 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-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 transactionTypePath: name: transactionType in: path required: true description: Identifies the type of transaction that is to be created. schema: type: string enum: - billpay - deposit - disbursement - transfer - merchantpay - inttransfer - adjustment - reversal - withdrawal batchId: name: batchId in: path description: Path variable to uniquely identify the transaction batch. required: true schema: type: string maxLength: 256 minLength: 1 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 fromDateTime: name: fromDateTime in: query description: Indicates the minimum creation date for which records should be returned. required: false schema: type: string format: date-time 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}$ offset: name: offset in: query description: Supports pagination. This value will indicate the cursor position from where to retrieve the set of records. For example, a limit of 50 and offset of 10 will return records 11 to 60. required: false schema: type: integer format: int32 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 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 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-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-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 toDateTime: name: toDateTime in: query description: Indicates the maximum creation date for which records should be returned. required: false schema: type: string format: date-time transactionReference: name: transactionReference in: path description: Path variable to uniquely identify the transaction. required: true schema: type: string maxLength: 256 minLength: 1 limit: name: limit in: query description: Supports pagination. If this is not supplied, then the server will apply a limit of 50 records returned for each request. required: false schema: type: integer format: int32 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 requestBodies: requestTransactionType: required: true description: Represents the request body of a transaction without Type. content: application/json: schema: $ref: '#/components/schemas/requestTransactionType' requestReversal: required: true description: Represents the request body of a transaction reversal. content: application/json: schema: $ref: '#/components/schemas/requestReversal' requestBatchTransaction: required: true description: Represents the request body of a batch of transactions. content: application/json: schema: $ref: '#/components/schemas/requestBatchTransaction' updateError: required: true description: Represents the request body of error callback. content: application/json: schema: $ref: '#/components/schemas/errorObject' requestTransaction: required: true description: Represents the request body of a transaction. content: application/json: schema: $ref: '#/components/schemas/requestTransaction' 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' updateTransaction: required: true description: Represents the request body of transaction callback. content: application/json: schema: $ref: '#/components/schemas/responseTransaction' updateReversal: required: true description: Represents the request body of a reversal callback. content: application/json: schema: $ref: '#/components/schemas/responseReversal' updateBatchTransaction: required: true description: Represents the request body of a batch of transactions callback. content: application/json: schema: $ref: '#/components/schemas/responseBatchTransaction' genericPatch: required: true description: Represents the request body of a batch of generic Patch operation. content: application/json: schema: $ref: '#/components/schemas/requestGenericPatchArray' headers: X-Records-Returned-Count: required: false description: Integer containing number of records that are returned. schema: type: integer format: int32 X-Date: required: false description: The date and time that the response message was sent. schema: type: string format: date-time X-Records-Available-Count: required: false description: Integer containing number of records that are available to be returned. schema: type: integer format: int32