3. Real-Time Processing
Now, it's time to shift our focus to real-time decisions. We'll maintain our existing asynchronous decision-making processes and integrate the real-time decisions API for time-sensitive decisions.
- Certain decisions will still be executed on a schedule.
- Others will be made in real-time to trigger specific actions in your product.
This advancement unlocks use cases such as:
- Real-time transaction monitoring, directly within the critical path of the transaction.
- Live user monitoring, during or after onboarding processes.
Real-Time Scenario
Before proceeding with decision-making, let's create a scenario specifically tailored for real-time decisions. We'll focus on monitoring outgoing transactions where the payment method is a card (direction = PAYOUT
and payment_method = CARD
):
Following our previous steps, let's create the following rules:
- Verify if the card token is listed in the token blocklist.
- This requires maintaining a list of known blocked tokens.
- Determine if the card has been utilized more than once in the last 24 hours, with a total amount exceeding €100.
- Assess if the card originates from a high-risk country, with a transaction amount exceeding €30.
- This necessitates maintaining a list of known high-risk countries.
- Validate if the card belongs to a low-risk French bank BIN and the transaction amount is less than €80.
- This rule will result in a negative score, indicating a lower risk.
- Maintaining a list of known low-risk bank BINs is essential.
- Ascertain if the card has been used more than three times in the last two hours.
Finally, we'll define the following outcomes, each mapped to a specific action in our system:
- 0-20: Approve (This will trigger frictionless transaction approval).
- 20-80: Review (This will initiate a 3DS challenge).
- Over 80: Decline (This will reject the transaction).
Real-time Decisions
To enable real-time decision-making, you'll need the assistance of your development team once again. They'll likely want to refer to our public decisions API documentation. Similar to the previous step, there's also data-model-aware documentation available in the Marble UI.
At this stage, you'll likely need to integrate Marble into your core banking system.
Let's build upon the scenario we just created:
- A card authorization request reaches your product
- Your product undergoes the existing required checks (e.g., ensuring the user has sufficient funds).
- You create a decision in Marble using the decisions API
- Depending on the decision's outcome, you trigger specific actions in your product. As a reminder of our intentions when building the scenario:
- Approve: Triggers frictionless transaction approval.
- Review: Internally initiates a 3DS challenge.
- Decline: Internally rejects the transaction.
In this scenario, setting up real-time decision-making is more intricate, but you typically handle the response programmatically, in real-time, eliminating the need for further steps.
Recap
Congratulations, you have now successfully gone through a full-fledge Marble implementation !
From here, you can always edit your scenarios while keeping a clear audit trail, and you can also have a look at our case manager, which allows you to handle manual reviews on accounts or transactions.
Updated 4 months ago