Overview
Card Transactions involves 2 different steps (Dual Message System) :
- Authorization Flow
- Clearing Flow
Authorization Flow
This is when the payment is made at the Point of Sale (PoS). This is triggered by an external event (card usage or merchant action) and can't be triggered with LinkCy API.
Associated LinkCy's Transaction Type is : CARD_AUTHORIZATION
.
- Card data are submitted at the PoS
- PoS send transaction to the acquiring bank (Acquirer), the merchant's bank
- Acquirer send the transaction to the Card Scheme (Visa, Mastercard, ...)
- Card Scheme routes the transaction to the issuing bank (Issuer), the bank which issued the card
- Issuer approves or declines the transaction and send back the response to the merchant through the same actors
Card Transaction Authorization Flow
In case of a Debit transaction, if the Authorization is approved, then the corresponding amount will be reserved in the ledger balance (reservedAmount
) and will not be spendable.
All this flow occurs in real-time (few seconds from end-to-end).
Before being clerared, addition of all Approved Card Authorization will held be in the "reservedAmount" balance.
A Declined Authorization will have a status DECLINED
. This is a final status and the transaction can't change anymore.
An Approved Authorization will have a status APPROVED
. This status will change over time to :
RELEASED
when a matching Clearing transaction is received, or if no Clearing transaction is received after several days.REVERSED
when the Authorization is canceled or replaced. See Below
Reversals
Full Reversals :
An Authorization Reversal is sent by the merchant when he wants to cancel an Authorization amount reservation. It can also be sent by Schemes or Intermediate Processors to cancel an Authorization amount reservation, mainly for technical reasons (communication errors or timeouts).
In this cases, the previously approved card Authorization will have its status changed to REVERSED
. Amount will be released from reservedAmount
balance, as no card Clearing is expected later.
Partial Reversals :
In some cases, Merchant can change the amount that has been previously authorized with a card Authorization. The new amount can only be lower than initial authorization.
Main example of this is when paying on Automated Fuel Dispenser (AFD) : 1st Authorization amount is higher than the final price. In this case, Merchant will send a partial reversal.
At LinkCy, this implies :
- Initial Authorization will have its staztus changed to
REVERSED
- A new Card Authorization will be created, in an
APPROVED
status. The amount will be the new amount indicated by the merchant. - Only the new amount will be kept in the
reservedAmount
balance.
When the card Clearing corresponding to this second card Authorization will be received, this card Authorization will have its status change to RELEASED
as usual
Clearing Flow
This happens few day after the Authorization Flow : usually the day after, but can take up to 7 days.
Associated LinkCy's Transaction Type is : CARD_CLEARING
.
- Merchant wants to collect money so they "capture" the transaction and send it to the Acquirer.
- Acquirer send the transaction (among a batch of other transaction) to the card Scheme.
- Card Scheme process the transaction among all the received transaction, and send the clearing files to the Issuer.
- Issuer process the clearing file containing the transaction
Card Transaction Clearing Flow
A Clearing transaction can't be declined by the Issuer.
Once the clearing is processed, the corresponding amount is debited from (or credited to in case of credit transaction) the ledger.
Amount from the Authorization is no longer reserved.
How to match authorization and clearing
when you perform a card transactions, you will have two transaction Id on LinkCy side. One for the authorization, one for the clearing.
First, the CARD_AUTHORIZATION
will be created with a transactionId
. Then, when authorization status is changed, you will received a webhooks and the second transaction CARD_CLEARING
will be created with a new Id.
On the CARD_CLEARING
payload, you will find originalTransactionId
which is the Id if the CARD_AUTHORIZATION
transaction.
"originalTransactionId": "a9d27469-ff8b-487b-a0cd-e7570ea5673a"
Payload of the CARD_AUTHORIZATION
will be updated to contain the Id of the CARD_CLEARING
authorization.
"clearingTransactionId": "9e83d1f3-903e-46bf-ab39-58a6802dcfff"
If you want to display validated transaction to your Endusers, make sure to only display validated cleared transactions and authorizations which do not have an associated clearing transaction.