Top up with Reconciliation
Overview
Performing a deposit operation, such as cash deposit, welfare deposit or loyalty deposit, allows to increase your wallet's balance. As far as the customer is concerned an operation is concluded once it has been confirmed. On the other hand, from an accounting point of view, an actual money transfer needs to occur: usually, we advise to use the reconciliation process.
Reconciliation Process
Once the user performs a deposit operation, the Partner is required to associate a Reconciliation Code to that operation: this code can be any string of maximum 50 characters (e.g. CASH RECONCILIATIONCODE WINTER_PROMOTION_01). The reconciliation code will then be used to associate that operation to a wire transfer, where the mentioned reconciliation code must be present inside the reason field.
A single wire transfer can reconciliate one or more operations, and it can be performed either before or after the deposit operations. This means that if the user performs a deposit operation with a reconciliation code and their wallet doesn't have enough balance, the operation will stay in the confirmed status instead of changing to the completed one. The status will be set to completed only once a wire transfer with that reconciliation code has been received and the Partner has approved the associated bank notification, allowing the reconciliation process to be finished.
Otherwise, the Partner can execute a wire transfer with a reconciliation code beforehand, approve its bank notification, while the deposit operation can be created afterwards using the same reconciliation code. At this point, the reconciliation process can start as soon as each operation is confirmed.
If the amount sent via wire transfer is not consumed or it is consumed partially the remaining amount can be consumed by the following deposit operations associated with the same reconciliation code.
Apis
We have identified some Apis to monitor efficiently the Reconciliation Process:
- GetBankNotifications: retrieves the banking events for a specific partner
- ApproveBankNotification: approves Wire Tranfers that contain Reconciliation Code
- GetPartnerOperationsByBankNotification: retrieves operations by a specific Bank Notification
- GetPartnerOperationsByTags: retrieves operations by a specific tag, in case of the Reconciliation Process the tag is
RECONCILIATIONCODE=[reconciliation_code_used]
Sequence Diagram
We provide a detailed workflow for the Reconciliation Process using the two following Sequence Diagrams:
Scenario 1: Bank Transfer first
Scenario 2: Deposit Operation first