Reconciliation using webhooks
Introduction
This guide provides a practical overview of how to reconcile payments using webhook events from our system. It is based on a detailed breakdown of various outgoing and incoming payment scenarios, showing how each transaction flows through the system — from instruction creation to processing and final booking.
You will learn how to interpret balance changes across different stages of a payment, including when and how webhook notifications are triggered. This is particularly useful for understanding how to reconcile your own system’s records with ours, especially around End of Day events.
How to Use This Guide
Each section corresponds to a specific payment scenario (e.g. an outgoing SEPA Instant payment instructed on a business day). Within each section:
- Events are listed in the order they occur.
- Each row represents a point-in-time update to a transaction or balance.
- Balance columns show the available and booked balances at that point in time.
- Webhooks events (including the
eventType
) are highlighted to show when you'll receive updates from our system. - Closing balances are included to demonstrate the state of the account after all events and the End of Day process.
Key Concepts
Event Types
- Instruction Created: The initial submission of a payment.
- Payment Processed: The payment has been submitted to the scheme and accepted.
- Payment Booked: An accounting event indicating that the transaction has impacted the account balance.
- Webhook Events: System-generated notifications sent to your endpoint that inform you of changes in transaction state or balances. The Webhooks guide lists all supported events.
Note: "Processed" and "Booked" are independent events and may occur in any order
Depending on scheme rules and compliance steps (e.g. sanction screening), booking may occur before or after processing
Balance Types
- Available Balance: Funds available for immediate use.
- Booked Balance: The accounting balance that includes settled transactions.
- These may differ temporarily, especially during periods of high activity or End of Day processing.
Timing and End of Day
- The End of Day process depends on the account branch and currency. For this guide, we will assume it begins at 7:00 PM and that it may take some time to complete.
- Transaction timestamps and balance updates may span across days depending on the type of transaction, scheme rules, and processing timing.
- Processing times are for illustrative purposes and can vary.
Learn More
Outgoing Payment Scenarios
Below are several distinct scenarios for outgoing payments, showing how our system behaves under different timing, scheme, and processing conditions.
Scenario 1: Instant Payment Before EOD
This scenario illustrates an instant outgoing payment (e.g. SEPA Instant) made before End of Day on a valid financial business day, with no delays.
This is a typical example of a fast, uninterrupted payment flow where processing and booking happen close together and on the same day.
Step | Event | Timestamp | Available Balance | Booked Balance | Details |
---|---|---|---|---|---|
1 | Initial Balances | - | 100 EUR | 100 EUR | - |
2 | Outgoing Payment Instruction Created | Monday 10:00:00 AM | 100 EUR | 100 EUR | Payment of 10 EUR instruction created. |
3 | Outgoing Payment Processed | Monday 10:00:05 AM | 100 EUR | 100 EUR | Payment of 10 EUR processed. |
4 | Outgoing Payment Processed Webhook (OutgoingPaymentProcessed ) | Monday 10:00:10 AM | 100 EUR | 100 EUR | Debit amount: 10 EUR, Value date: Monday (T), Processing: 10:05 AM |
5 | Outgoing Payment Booked Webhook (OutgoingPaymentBooked ) | Monday 10:00:15 AM | 90 EUR | 90 EUR | Transaction date: Monday (T), Value date: Monday (T) |
Closing Balances
Day | Closing Available Balance | Closing Booked Balance |
---|---|---|
Monday | 90 EUR | 90 EUR |
Tuesday | 90 EUR | 90 EUR |
Scenario 2: Payment Delayed Due to Sanction Screening
This scenario illustrates a standard SEPA Credit Transfer where the payment is slightly delayed due to internal compliance/sanction screening checks.
It demonstrates how the "booked" event can occur before the "processed" event, depending on internal checks and timing.
Step | Event | Timestamp | Available Balance | Booked Balance | Details |
---|---|---|---|---|---|
1 | Initial Balances | - | 100 EUR | 100 EUR | - |
2 | Outgoing Payment Instruction Created | Monday 10:00:00 AM | 100 EUR | 100 EUR | Payment of 10 EUR instruction created. |
3 | Outgoing Payment Processed | Monday 10:03:00 AM | 100 EUR | 100 EUR | Payment of 10 EUR processed. |
4 | Outgoing Payment Booked Webhook (OutgoingPaymentBooked ) | Monday 10:02:00 AM | 90 EUR | 90 EUR | Transaction date: Monday (T), Value date: Monday (T) |
5 | Outgoing Payment Processed Webhook (OutgoingPaymentProcessed ) | Monday 10:03:00 AM | 90 EUR | 90 EUR | Debit amount: 10 EUR, Value date: Monday (T), Processing: 10:05 AM |
Closing Balances
Day | Closing Available Balance | Closing Booked Balance |
---|---|---|
Monday | 90 EUR | 90 EUR |
Tuesday | 90 EUR | 90 EUR |
Note: Compared to Scenario 1, the processed and booked events are reversed here due to sanction screening delays.
Scenario 3: Payment After EOD or on Non-Business Day
This scenario shows a payment made either after the End of Day process or on a non-valid financial business day.
As a result, the system pushes the value date and transaction date to the next valid business day (T+1).
Step | Event | Timestamp | Available Balance | Booked Balance | Details |
---|---|---|---|---|---|
1 | Initial Balances | - | 100 EUR | 100 EUR | - |
— | End of Day Process Ends | Monday 7:30:00 PM | 100 EUR | 100 EUR | System day moves to Tuesday |
2 | Outgoing Payment Instruction Created | Monday 8:00:00 PM | 100 EUR | 100 EUR | Payment of 10 EUR instruction created. |
3 | Outgoing Payment Processed | Monday 8:00:05 PM | 100 EUR | 100 EUR | Payment of 10 EUR processed. |
4 | Outgoing Payment Processed Webhook (OutgoingPaymentProcessed ) | Monday 8:00:10 PM | 100 EUR | 100 EUR | Debit amount: 10 EUR, Value date: Tuesday (T+1), Processing: 8:05 PM |
5 | Outgoing Payment Booked Webhook (OutgoingPaymentBooked ) | Monday 8:00:15 PM | 90 EUR | 90 EUR | Transaction date: Tuesday (T+1), Value date: Tuesday (T+1) |
Closing Balances
Day | Closing Available Balance | Closing Booked Balance |
---|---|---|
Monday | 100 EUR | 100 EUR |
Tuesday | 90 EUR | 90 EUR |
Scenario 4: Rejected Payment
This scenario illustrates a rejected outgoing payment, such as a SEPA Instant transfer rejected by the scheme or by internal validation.
The rejection results in no changes to balances and is confirmed via a dedicated webhook.
Step | Event | Timestamp | Available Balance | Booked Balance | Details |
---|---|---|---|---|---|
1 | Initial Balances | - | 100 EUR | 100 EUR | - |
2 | Outgoing Payment Instruction Created | Monday 10:00:00 AM | 100 EUR | 100 EUR | Payment of 10 EUR instruction created. |
3 | Outgoing Payment Rejected | Monday 10:00:05 AM | 100 EUR | 100 EUR | Payment of 10 EUR rejected. |
4 | Payment Rejected Webhook (OutgoingPaymentRejected ) | Monday 10:05:00 AM | 100 EUR | 100 EUR | Rejection event. No balance impact. |
Closing Balances
Day | Closing Available Balance | Closing Booked Balance |
---|---|---|
Monday | 100 EUR | 100 EUR |
Tuesday | 100 EUR | 100 EUR |
Scenario 5: Reversed Payment
This scenario demonstrates a payment that was initially processed and booked but subsequently reversed.
Reversals can occur when the payment scheme rejects the payment.
Step | Event | Timestamp | Available Balance | Booked Balance | Details |
---|---|---|---|---|---|
1 | Initial Balances | - | 100 EUR | 100 EUR | - |
2 | Outgoing Payment Instruction Created | Monday 10:00:00 AM | 100 EUR | 100 EUR | Payment of 10 EUR instruction created. |
3 | Outgoing Payment Processed | Monday 10:00:05 AM | 100 EUR | 100 EUR | Payment of 10 EUR processed. |
4 | Outgoing Payment Booked Webhook (OutgoingPaymentBooked ) | Monday 10:13:00 AM | 90 EUR | 90 EUR | Transaction date: Monday (T), Value date: Monday (T) |
5 | Outgoing Payment Processed Webhook (OutgoingPaymentProcessed ) | Monday 10:14:00 AM | 90 EUR | 90 EUR | Debit amount: 10 EUR, Processing timestamp: 10:14 AM |
6 | Payment Reversed | Monday 10:15:00 AM | 100 EUR | 100 EUR | Payment reversed. |
7 | Payment Reversed Webhook (Reversed ) | Monday 10:15:05 AM | 100 EUR | 100 EUR | Original payment status changed to "reversed." |
Closing Balances
Day | Closing Available Balance | Closing Booked Balance |
---|---|---|
Monday | 100 EUR | 100 EUR |
Tuesday | 100 EUR | 100 EUR |
Scenario 6: Instant Payment During EOD
This scenario shows an instant outgoing payment made during the End of Day process.
While the payment is processed and value-dated on the same day, the booking is delayed until after EOD, affecting the timing of balance updates.
Step | Event | Timestamp | Available Balance | Booked Balance | Details |
---|---|---|---|---|---|
1 | Initial Balances | - | 100 EUR | 100 EUR | - |
— | End of Day Process Starts | - | 100 EUR | 100 EUR | EOD starts |
2 | Outgoing Payment Instruction Created | Monday 7:00:00 PM | 100 EUR | 100 EUR | Payment of 10 EUR instruction created. |
3 | Outgoing Payment Processed | Monday 7:00:05 PM | 100 EUR | 100 EUR | Payment of 10 EUR processed. |
4 | Outgoing Payment Processed Webhook (OutgoingPaymentProcessed ) | Monday 7:13:00 PM | 100 EUR | 100 EUR | Debit amount: 10 EUR, Value date: Monday (T), Processing: 10:05 AM |
— | End of Day Process Ends | Monday 7:30:00 PM | 100 EUR | 100 EUR | System day rolls over to Tuesday |
5 | Outgoing Payment Booked Webhook (OutgoingPaymentBooked ) | Monday 7:35:00 PM | 90 EUR | 90 EUR | Transaction date: Tuesday (T+1), Value date: Monday (T) |
Closing Balances
Day | Closing Available Balance | Closing Booked Balance |
---|---|---|
Monday | 100 EUR | 100 EUR |
Tuesday | 90 EUR | 90 EUR |
Incoming Payment Scenarios
These examples show how incoming payments are handled depending on the timing of receipt and the system's End of Day (EOD) processing.
Scenario 7: Incoming Payment Before EOD
This scenario covers an incoming payment received and booked on a valid financial business day, before End of Day.
It shows the standard flow for incoming funds that are fully settled and reflected within the same business day.
Step | Event | Timestamp | Available Balance | Booked Balance | Details |
---|---|---|---|---|---|
1 | Initial Balances | - | 100 EUR | 100 EUR | - |
2 | Incoming Payment Processed | Monday 10:00:05 AM | 100 EUR | 100 EUR | Payment of 10 EUR processed. |
3 | Incoming Payment Processed Webhook (IncomingPaymentProcessed ) | Monday 10:00:10 AM | 100 EUR | 100 EUR | Credit amount: 10 EUR, Value date: Monday (T), Processing: 10:05 AM |
4 | Incoming Payment Booked Webhook (IncomingPaymentBooked ) | Monday 10:00:15 AM | 110 EUR | 110 EUR | Transaction date: Monday (T), Value date: Monday (T) |
Closing Balances
Day | Closing Available Balance | Closing Booked Balance |
---|---|---|
Monday | 110 EUR | 110 EUR |
Tuesday | 110 EUR | 110 EUR |
Scenario 8: Incoming Payment After EOD or on Non-Business Day
This scenario demonstrates an incoming payment processed after the End of Day process or on a non-business day.
Because of timing, the transaction is processed and booked on the following valid business day (T+1).
Step | Event | Timestamp | Available Balance | Booked Balance | Details |
---|---|---|---|---|---|
1 | Initial Balances | - | 100 EUR | 100 EUR | - |
2 | End of Day Process Ends | Monday 7:30:00 PM | 100 EUR | 100 EUR | EOD closes Monday, system day moves to Tuesday |
3 | Incoming Payment Processed | Monday 8:00:05 PM | 100 EUR | 100 EUR | Payment of 10 EUR processed. |
4 | Incoming Payment Processed Webhook (IncomingPaymentProcessed ) | Monday 8:00:10 PM | 100 EUR | 100 EUR | Credit amount: 10 EUR, Value date: Tuesday (T+1), Processing: 8:05 PM |
5 | Incoming Payment Booked Webhook (IncomingPaymentBooked ) | Monday 8:00:15 PM | 100 EUR | 100 EUR | Transaction date: Tuesday (T+1), Value date: Tuesday (T+1) |
Closing Balances
Day | Closing Available Balance | Closing Booked Balance |
---|---|---|
Monday | 100 EUR | 100 EUR |
Tuesday | 110 EUR | 110 EUR |
Scenario 9: Incoming Instant Payment During EOD Process
This scenario illustrates an incoming instant payment received during the End of Day process.
Although the payment is processed quickly, it is booked only after the End of Day cycle finishes, resulting in a T+1 booking.
Step | Event | Timestamp | Available Balance | Booked Balance | Details |
---|---|---|---|---|---|
1 | Initial Balances | - | 100 EUR | 100 EUR | - |
2 | End of Day Process Starts | Monday 7:00:00 PM | 100 EUR | 100 EUR | EOD begins, balances frozen |
3 | Incoming Payment Processed | Monday 7:10:00 PM | 100 EUR | 100 EUR | Payment of 10 EUR processed. |
4 | Incoming Payment Processed Webhook (IncomingPaymentProcessed ) | Monday 7:10:10 PM | 100 EUR | 100 EUR | Credit amount: 10 EUR, Value date: Tuesday (T+1), Processing: 7:10 PM |
5 | End of Day Process Ends | Monday 7:30:00 PM | 100 EUR | 100 EUR | EOD ends |
6 | Incoming Payment Booked Webhook (IncomingPaymentBooked ) | Monday 7:30:15 PM | 110 EUR | 110 EUR | Transaction date: Tuesday (T+1), Value date: Tuesday (T+1) |
Closing Balances
Day | Closing Available Balance | Closing Booked Balance |
---|---|---|
Monday | 100 EUR | 100 EUR |
Tuesday | 110 EUR | 110 EUR |
Note: Although the instant payment is received on Monday, it is booked only after the EOD process ends, hence the transaction and value dates are both set to Tuesday (T+1).
Other scenarios
Returns
A return is treated as two separate payments:
- An outgoing payment (the original transaction that was sent out), and
- An incoming payment (the returned funds).
The incoming payment will include a flag ("return":true"
) in both the IncomingPaymentProcessed
webhook payload and the GET payments response to indicate it is a return.
The remittance information will also contain the transaction reference of the original outgoing payment.
Updated 12 days ago