Payment Order
  • 28 May 2020
  • 5 Minutes To Read
  • Print
  • Share
  • Dark
    Light

Payment Order

  • Print
  • Share
  • Dark
    Light

Payment Order Flow

The processing of the Payment Order is done in four stages: Initiate, Accept, Clear and Settle.

I. Initiate
The Payment Order is initiated by the Payment Service User via Payments API.

II. Accept
The Payment Order is validated and enriched with additional data, such as BIC code.

III. Clear
After checking if debtor has sufficient funds or that their deposit account is not blocked, the Payment Order is validated by debiting the debtor account.

Note
The routing can be determined in consideration of the following criteria: Account number or IBAN of the creditor/debtor Bank account number or BIC of the creditor/debtor

IV. Settle
The Payment Order is executed on the beneficiary side.
Whenever the beneficiary is within the same financial institution as debtor, the beneficiary account is credited and the Payment Order execution is completed. Whenever the beneficiary is in a different financial institution, an outgoing payment settlement is initiated via the CSM.

Rejected
If the payment is rejected in any stage of the payment flow the status is updated to rejected.

Payment Status

Possible transaction status:

image.png

  • RCVD (Received): Payment initiation has been received.
  • ACTC (Accepted Technical Validation): Payment order has been accepted .
  • ACSP (Accepted Settlement In Process): Outgoing payment order execution and Debit Transaction has been initiated.
  • ACSC (Accepted Settlement Completed): Payment order completed
  • RJCT (Rejected): Payment request has been rejected.
Please note
Payment may be updated from ACSC to RJCT if incoming pacs.002 or pacs.004 are received

Settlement


In Mambu we deal with two different push payments:

  1. Intrabank
  2. Interbank
  • Intrabank

If Intrabank, then Mambu identifies that both customers are in the same financial institution and does the necessary debit and credit to the originator and beneficiary of the payment.

  • Interbank

If the payment is an interbank payment, meaning that originator and beneficiary are in different finantial institutions then Mambu will initiate the scheme flow and generate the necessary accounting postings and generate the files for the specific payment, so for example in a outgoing SEPA payment, after Mambu receives the Payment request and identifies that is a SEPA CT payment then Mambu will generate a pacs.008 (Please refer to the section SEPA to get a better understanding of SEPA in Mambu)

Outgoing payment accounting posting:
Debit - Originator account
Credit - Channel GL account

Incoming payment accounting posting:
Debit - Channel GL account
Credit - Beneficiary account

image.png

initiatePayment

Creates a payment initiation request.

Action: POST
Endpoint: /v1/payments/

{
"debtorAccount": {
"identification": {},
"currency": "EUR"
},
"debtorName": "John Doe",
"debtorAddress": {
"street": "Karl-Liebknecht-Str. 5",
"buildingNumber": "5234",
"city": "Berlin",
"postalCode": "10178",
"countryCode": "DE"
},
"instructedAmount": {
"currency": "EUR",
"amount": "500"
},
"creditorAccount": {
"identification": {},
"currency": "EUR"
},
"creditorAgent": {
"institutionIdentification": {}
},
"creditorName": "Merchant123",
"creditorAddress": {
"street": "Am Olympiapark 1",
"buildingNumber": "1",
"city": "Munchen",
"postalCode": "80809",
"countryCode": "DE"
}
}

Response codes

header header header
200 OK Payment Initiation Details were correctly found.
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.
406 Not Acceptable A media type which the serves does not support has been supplied.
500 Internal Server Error Internal server error occurred
503 Service Unavailable The server is currently unavailable. Generally, this is a temporary state

Payment Details

The endpoint returns payment information including:

  • Status
  • Payment execution time
  • BIC information
  • Debtor and Creditor IBAN
  • Currency
  • Amount
  • Debtor and Creditor name
  • Payment Purpose
  • Remittance information

Action: GET
Endpoint: /v1/payments/ {paymentId}

Parameters

Name Value
paymentID The payment ID in MAMBU

Sample response body

200 - OK

{
    "transactionStatus": "ACSC",
    "lastStatusUpdateTimestamp": "2020-01-08T11:05:37Z",
    "debtorAccount": {
        "identification": {
            "iban": "RO71BTRLV67M9G4XIEE3IEJ5D2"
        },
        "currency": "EUR"
    },
    "debtorAgent": {
        "institutionIdentification": {
            "bicfi": "BTRLRO22XXX"
        }
    },
    "debtorName": "John Doe",
    "instructedAmount": {
        "currency": "EUR",
        "amount": "50"
    },
    "creditorAccount": {
        "identification": {
            "iban": "RO28INGBT26QJ2VR5QYEE2COV"
        },
        "currency": "EUR"
    },
    "creditorAgent": {
        "institutionIdentification": {
            "bicfi": "INGBROBUXXX"
        }
    },
    "creditorName": "Robert",
    "purposeCode": "SALR",
    "remittanceInformationUnstructured": "Remittance information up to 140 characters"
}

400 - Bad request

{
    "tppMessages": [
        {
            "category": "ERROR",
            "code": "SERVICE_INVALID",
            "path": "paymentId",
            "text": "Unable to find payment details for payment 2809684547d49208b0e05d501e15b5f"
        }
    ]
}

405 - Method Not Allowed

{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}

406 - Not acceptable

{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}

500 - Internal Server Error

{
"tppMessages": [
{
"category": "ERROR",
"code": "SERVICE_INVALID",
"text": "There was an error processing your request. It has been logged (ID a449ea6319107e42)."
}

Payment Events


Mambu Streaming API allow tenants to receive the payments data in a different way than pulling the data from the payments api to receive notificaitons and payment information on the different stages of a payment:

To be able to receive these events the following steps are required:

Create an “Event template” for an action (e.g Payment Settled)

image.png

Before saving choose between the placeholders list which information you would likle to receive on these events.At the moment the placeholders available for payments are:

Creditor

  • Creditor Account Currency
  • Creditor Account IBAN
  • Creditor Account Id
  • Creditor Account Identification
  • Creditor Account Scheme
  • Creditor Address - Building Number
  • Creditor Address - City
  • Creditor Address - Country Code
  • Creditor Address - Line1
  • Creditor Address - Line2
  • Creditor Address - Postal Code
  • Creditor Address - Street
  • Creditor BICFI
  • Creditor Name

Debtor

  • Debtor Account Currency
  • Debtor Account IBAN
  • Debtor Account Id
  • Debtor Account Identification
  • Debtor Account Scheme
  • Debtor Address - Building Number
  • Debtor Address - City
  • Debtor Address - Country Code
  • Debtor Address - Line1
  • Debtor Address - Line2
  • Debtor Address - Postal Code
  • Debtor Address - Street
  • Debtor BICFI
  • Debtor Name

Payment

  • End To End Identification
  • Error Description
  • Errors
  • Instructed Amount
  • Instructed Amount Currency
  • Instructed Transaction ID
  • Instruction Identification
  • Message Identification
  • Purpose Code
  • Remittance Issuer
  • Remittance Reference
  • Remittance Reference Type
  • Remittance Unstructured
  • Requested Execution Date
  • Requested Execution Time
  • Settlement Date
  • Status
  • Transaction ID
  • Ultimate Creditor
  • Ultimate Debtor
  • Value Date

Create a subscription

With the topic generated in the “Event template” : mrn.event.demotenant.streamingapi.client_created create a subscription : https://api.mambu.com/CNNmZrTm3GDuWN/index.html#creating-subscriptions

Consume the events

With the previous subscription you can consume the events : https://api.mambu.com/CNNmZrTm3GDuWN/index.html#consuming-events-from-a-subscription

Once a client is created you can receive a notification message and consume it for any purposes (e.g accounting).

Was This Article Helpful?