Transaction Processing
  • 24 Nov 2023
  • 3 Minutes To Read
  • Dark
    Light
  • PDF

Transaction Processing

  • Dark
    Light
  • PDF

Article Summary

Using the Cards API, you can process transaction requests, transaction advices, and transaction reversals.

There are two different models for how payment cards operate:

  • Single Message Schema: the requested amount is written off immediately by executing a transaction after a successful payment card authorization. This is achieved using transaction requests.
  • Dual Message Schema: the requested amount is held after successful authorization and a transaction is executed only after receiving a confirmation as a clearing or settlement transaction. This is achieved using a combination of authorization requests and transaction advices. Clearing or settlement transactions can come in a file or in a batch and each transaction must be posted as a transaction advice.

The transaction direction is determined using the dedicated parameter creditDebitIndicator:

  • DBIT: to debit a payment card account.
  • CRDT: to credit a payment card account.

If the reference to an authorization hold is present and it is in PENDING state, the transaction direction is determined by the authorization hold type correspondingly:

  • A DBIT hold triggers a debit transaction,
  • A CRDT hold triggers a credit transaction.
Please Note

If neither creditDebitIndicator, nor reference to a hold are present, the payment card account is debited by default.

The following table describes the different types of messages that pass between the card issuer and Mambu, depending on the type of transaction initiated.

Card message TypeDebit Cards AvailabilityCredit Cards Availability
Debit Transaction RequestYESNO
Credit Transaction RequestYESNO
Debit Transaction AdviceYESYES
Credit Transaction AdviceYESNO
Full Transaction ReversalYESYES
Partial Transaction ReversalYESYES

There are credit card flows that we currently do not support, but we are working on achieving parity.

Transaction requests

Transaction requests are posted to Mambu using a dedicated Create card transaction request. Request body parameter advice is used to determine if it is a transaction request or a transaction advice. If advice is FALSE, the request is considered a transaction request. If it is a debit transaction request, the available balance is checked: if the requested transaction amount doesn't exceed the available balance, a transaction is executed. Otherwise, the transaction request is declined due to insufficient funds.

Transaction advices

Transaction advices are posted to Mambu using a dedicated API request with the request body parameter advice equal to TRUE. This causes the authorization to be made without validating the available balance and can allow a cardholder to make a transaction for an amount over any defined limits as well as allow an account to go into Technical Overdraft.

If a clearing transaction has been successfully matched to an authorization request, the reference to it can be filled in a request body parameter externalAuthorizationReferenceId. If an authorization hold is found and it is in PENDING state, it is released after a transaction is successfully executed. Such authorization hold doesn't impact the available balance anymore and is left in SETTLED state.

Mambu supports multiple clearing transactions to one authorization hold. If a clearing transaction is one of multiple clearing transactions and is not the final one, it has to be marked as partial by setting the API request body parameter partial to TRUE. In this case the referenced hold will be decreased with the transaction amount and the remaining hold amount will stay in PENDING status.

Transaction reversals

You can reverse previously made transactions using the Reverse card transactions endpoint.

Debit transactions can be reversed in full or partially. Mambu makes sure that the sum of all reversed transactions does not go over the amount of the initial transaction.

To reverse a credit transaction, you must use the exact amount.

You can get card transaction details using the card reference token and transaction external reference identifier. If a card transaction is partially or fully reversed, the information about each received reversal is returned in the response body.


Was this article helpful?