- 13 Dec 2022
- 9 Minutes To Read
- Print
- DarkLight
- PDF
Mambu Payment Gateway
- Updated On 13 Dec 2022
- 9 Minutes To Read
- Print
- DarkLight
- PDF
The purpose of Payment Order capability is to orchestrate the movement of money between an account in Mambu and an account at a third-party financial institution (both domestic as well as international).
The orchestration includes triggering Payment Execution on the user-specified date, debiting / crediting the account in Mambu (i.e. calling transaction API), storing-and-forwarding the credit / debit instruction for settlement in a third party financial institution via the Mambu Payment Gateway (MPG), that in turn sends it out to Payment Network.
The tools needed to operate the payments functionality are:
- Mambu UI
- API development environment (e.g Postman)
- Mambu Payment Gateway UI
Logging in
Depending on the level of security enabled for your instance you will either log in using regular authentication using just a username and password or multi-factor authentication (MFA) where a one time passcode is sent to a mobile phone number associated with your account. For more information, see User Administration and Audit Trail - Multi-factor authentication.
Navigation menu
The navigation menu is located on the left of the page. The navigation menu gives access to the following sections:
- Incoming - Payment messages received (e.g Payments received from the financial network)
- Outgoing - Payment messages received (e.g Payments sent to the financial network)
- Pending - Payment messages that require manual intervention of PG users
- Configuration - System configurations such as Tenant BIC, AML enabling
- Security - Users management and audit trail
Incoming / Outgoing
The incoming / outgoing menus are used to monitor received/sent payment messages. When clicking this menu, the user is prompted with two sub-menus:
- SEPA
- Alerts
The sub-menu SEPA gives users a view on the incoming / outgoing SEPA messages:
Transactions List
Each row represents one of the following SEPA messages:
- Pacs.008
- Pacs.004
- Pacs.002
- Camt.056
- Camt.029
The list provides the following information on a message:
- System ID
- Message type
- Message ID
- Number of transactions inside a given message
- Settlement date
Clicking a single row will provide users more information on the payment message:
- Transaction number
- Message ID
- Status
- Amount
- Creditor IBAN
By clicking on the arrow of each row the SEPA message (xml) will be seen in full on the detail screen.
The fields displayed are relevant for the end users and provide useful information in case of investigation or customer requests.
List row detail
Clicking a single row will redirect users to the full details of the payment message:
The image above represents a SEPA message (xml) and can be seen in full in this detail screen. For more information, please refer to the European Payments Council's 2019 SEPA Credit Transfer rulebook version 1.2.
The fields displayed are relevant for the end users and provide useful information in case of investigation or customer requests
Field | Description |
---|---|
Message ID | Unique reference generated by the payment engine and used to identify a single message in the system |
Message Identification (MsgId) | Message reference created by the sender and forwarded in the SEPA message |
Message type | The type of message sent/received e.g pacs.008 |
Transaction status | Status of the message assigned by the payment engine after processing: rejected, pending, Sent |
Reception date | Date at which the message is received in the payment engine. In search screens, users can enter From and To reception dates |
Sending party (InstgAgt) | BIC of the sending Bank |
Receiving party (InstdAgt) | BIC of the receiving Bank |
Order status | Status of the order assigned by the payment engine after processing: rejected, processed, pending, on hold. Order status depends on the status of the message. An order is automatically rejected if the corresponding message is rejected. |
Order Category Purpose (PmtTpInf, CtgyPurp) | It provides information about the purpose of the order and may trigger special processing. So interesting for the end user |
Execution date | Date at which the order is really executed. Requested and real execution dates are the same most of the time. |
Order amount | Amount of the order |
Interbank Settlement Date (IntrBkSttlmDt) | The date at which the order / transaction is settled |
Interbank Settlement Amount (IntrBkSttlmAmt) | Total amount of the transactions contained in the order or message (e.g if pacs.008 has 2 payments of 10 then IntrBkSttlmAmt=20 |
Debtor name (DbtrNm | Name of the debtor |
Debtor Account DbtrAcct (Debtor IBAN) | IBAN of the debtor |
Debtor Agent (DbtrAgt) | Debtor bank BIC |
Beneficiary name (CdtrNm) | Beneficiary name |
Creditor Agent (CdtrAgt) | Beneficiary Bank BIC |
Creditor Account (CdtrAcct) | IBAN of the beneficiary |
Transaction ID (TxId) | Unique reference generated by the payment engine and used to identify a single transaction in the system |
Interbank Settlement Amount (IntrBkSttlmAmt) | This is the transaction amount |
End To End Identification (EndToEndId) | It is generated by initiating party to unambiguously identify the transaction. Good to have as search criteria since users can easily find a transaction with it |
Transaction Status | Status of the transaction assigned by the payment engine after processing: rejected, processed, pending, on hold. Transaction status depends on the status of the order. A transaction is automatically rejected if the corresponding order is rejected |
Original transaction ID | This is available in R-transactions only. It provides for example the transaction ID of the original transaction linked to a return. |
Alerts
The sub-menu Alerts, gives users a list of alerts for the SEPA messages. The section provides information on the error so that the user can trigger actions to resolve the issue.
The alerts section can be found both on the outgoing and incoming menus.
Pending
In this section you will see messages that are pending to be sent: either they require manual input before they can proceed the payment flow, such as outgoing returns requests or replying to these return requests positivily or negativily or messages that cannot be sent given the day the messages were generated is a holiday.
Outgoing returns waiting to be accepted or rejected:
Pending pacs.008 given a payment was sent on an holiday
Gateway Status
Action | From State | To State | Post-Conditions | Notes |
---|---|---|---|---|
Receive | N/A | Received | The bulk credit instruction file (pacs.008) is received | - |
Debulk | Received | Debulked | The bulk file is divided into each individual credit transfer instruction | - |
Return | Received / Debulked | Returned | Individual credit transfer instruction is returned and corresponding pacs.004 file is generated | - |
Send | Returned | Sent | Generated pacs.004 file is sent to CSM via Mambu Payment Gateway Webhook | - |
Send | - | Bulked | Payments are grouped/bulked in a sepa file | If message doesn't proceed this status please check your webhook settings |
Send | Bulked | Sent | Message is available on the outgoing section | - |
Compliance checks
Incoming AML
Incoming Anti-money laundering (AML) allows banks and other financial institutions to send incoming payment details to the external third party AML provider (AML TPP) so that they can reduce the risk of money laundering with a frictionless flow in the Mambu Payment Gateway.
The MPG sends the transactions details and holds the payment process until it gets an AML result to the payments sent. The screening of a payment on the AML TPP can generate three types of results:
- Accepted: No flags were raised on the AML TPP and payment can proceed the flow - crediting the beneficiary.
- Suspended: Some flags were raised on the AML TPP and further analysis is being run on the AML TPP. The payment must be on hold until either an accepted or rejected is received.
- Rejected: Payment was tagged on the AML TPP with a AML flag that lead to a rejection. The payment flow is stopped and the beneficiary is not credited.
Send payment details
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pacs.008.001.02">
<FIToFICstmrCdtTrf>
<GrpHdr>
<MsgId>AML1</MsgId>
<CreDtTm>2020-01-02T10:40:13</CreDtTm>
<NbOfTxs>1</NbOfTxs>
<TtlIntrBkSttlmAmt Ccy="EUR">1</TtlIntrBkSttlmAmt>
<IntrBkSttlmDt>2020-01-02</IntrBkSttlmDt>
<SttlmInf>
<SttlmMtd>CLRG</SttlmMtd>
<ClrSys>
<Prtry>ST2</Prtry>
</ClrSys>
</SttlmInf>
<InstgAgt>
<FinInstnId>
<BIC>CECAESMMXXX</BIC>
</FinInstnId>
</InstgAgt>
<InstdAgt>
<FinInstnId>
<BIC>BTRLRO22</BIC>
</FinInstnId>
</InstdAgt>
</GrpHdr>
<CdtTrfTxInf>
<PmtId>
<InstrId>NOT1</InstrId>
<EndToEndId>NOT1</EndToEndId>
<TxId>NOT1</TxId>
</PmtId>
<PmtTpInf>
<SvcLvl>
<Cd>SEPA</Cd>
</SvcLvl>
</PmtTpInf>
<IntrBkSttlmAmt Ccy="EUR">1</IntrBkSttlmAmt>
<ChrgBr>SLEV</ChrgBr>
<Dbtr>
<Nm>Jane Doe</Nm>
<PstlAdr>
<Ctry>ES</Ctry>
</PstlAdr>
<Id>
<OrgId>
<Othr>
<Id>GFA</Id>
</Othr>
</OrgId>
</Id>
</Dbtr>
<DbtrAcct>
<Id>
<IBAN>RO10INGBCBN4EVKASDJ8YNGT</IBAN>
</Id>
</DbtrAcct>
<DbtrAgt>
<FinInstnId>
<BIC>CECAESMMXXX</BIC>
</FinInstnId>
</DbtrAgt>
<CdtrAgt>
<FinInstnId>
<BIC>BTRLRO22</BIC>
</FinInstnId>
</CdtrAgt>
<Cdtr>
<Nm>John Doe</Nm>
<PstlAdr>
<Ctry>ES</Ctry>
</PstlAdr>
<Id>
<OrgId>
<Othr>
<Id>V94025590</Id>
</Othr>
</OrgId>
</Id>
</Cdtr>
<CdtrAcct>
<Id>
<IBAN>RO71BTRLV67M9G4ASDEJ5D2</IBAN>
</Id>
</CdtrAcct>
<RmtInf>
<Ustrd>Incoming Payment</Ustrd>
</RmtInf>
</CdtTrfTxInf>
</FIToFICstmrCdtTrf>
</Document>
processAmlResponse
Accepts AML check results for Payment Orders.
{
"groupHeader": {
"messageIdentification": "SCTORD200020190305ORD000011122"
},
"transactions": [
{
"status": "Accepted",
"paymentIdentification": {
"transactionIdentification": "00730100631BHGCSDW"
},
"debtorAgent": {
"institutionIdentification": {
"bicfi": "BTCLYU23"
}
},
"interbankSettlementDate": "2019-06-28T00:00:00.000Z"
}
]
}
Responses
Code | Code Description | Result |
---|---|---|
200 | OK | The AML check result has been prepared for processing. |
400 | Bad request | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. |
405 | Method Not Allowed | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. |
415 | Unsupported Media Type | A media type which the serves does not support has been supplied. |
500 | Internal Server Error | Internal server error occurred |
415 | Service Unavailable | The server is currently unavailable. Generally, this is a temporary state. |
Business field | Business description | Format | M/O | XML / JSON tag | Example |
---|---|---|---|---|---|
Message Id | Message reference created by the sender and forwarded in the SEPA message | text{1,35} | M | msgId | 22b8f938c6154877886a0c1fc |
Creation Date Time | Date and time at which the message was created | dateTime | M | creDtTm | 2019-05-22T12:24:13 |
Number of transactions | Number of transactions in a given request | text [0-9]{1,15} | M | nbOfTxs | 2 |
BIC | Financial Institution Identification | text [A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0] | M | bic | ABVRATW1XXX |
Instruction Identification | Unique identification, as assigned by an instructing party for an instructed party, to unambiguously identify the instruction. | text{1,35} | M | instrId | 82d7125b36014c2e8cc442a3 |
End To End Identification | It is generated by the originator bank to unambiguously identify the transaction. | text{1,35} | M | endToEndId | NOT PROVIDED |
Transaction Identification | It is generated by the Debtor bank, to unambiguously identify the transaction. | text{1,35} | M | txId | 4112f6688c846a89bee2b2c476f1145 |
Total Interbank Settlement Amount | Total amount of money moved between the originator bank and the beneficiary bank | 0 <= decimal | M | value | 100 |
Currency | The currency of the payment | text[A-Z]{3,3} | M | ccy | EUR |
Acceptance Date Time | Point in time when the payment order from the initiating party meets the processing conditions of the originator bank. This means that the originator bank has received the payment order and has applied checks such as authorisation, availability of funds, and so on. | date | M | accptncDtTm | 2019-04-11 06:08:45 |
Debtor | Party that owes an amount of money to a beneficiary. Name by which a party is known and which is usually used to identify that party. | text{1,140} | M | nm | John Doe |
Postal Address | Information that locates and identifies a specific address, as defined by the postal services | text [A-Z]{2,2} | O | Ctry | ES |
Private Identification | Unique and unambiguous identification of a person, like passport. Important Note: Either ‘Date and Place of Birth’ or one occurrence of ‘Other’ is allowed | Text{1,35} if ID or Date/text if DoB and PoB | O | BirthDt | V94025590 |
Creditor Account | Unambiguous identification of the account of the creditor to which a credit entry will be posted as a result of the payment transaction. | text[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30} | M | iban | RO75BTRLBSIJS00RPQWYLYWL |