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.

StepEventTimestampAvailable BalanceBooked BalanceDetails
1Initial Balances-100 EUR100 EUR-
2Outgoing Payment Instruction CreatedMonday 10:00:00 AM100 EUR100 EURPayment of 10 EUR instruction created.
3Outgoing Payment ProcessedMonday 10:00:05 AM100 EUR100 EURPayment of 10 EUR processed.
4Outgoing Payment Processed Webhook (OutgoingPaymentProcessed)Monday 10:00:10 AM100 EUR100 EURDebit amount: 10 EUR, Value date: Monday (T), Processing: 10:05 AM
5Outgoing Payment Booked Webhook (OutgoingPaymentBooked)Monday 10:00:15 AM90 EUR90 EURTransaction date: Monday (T), Value date: Monday (T)

Closing Balances

DayClosing Available BalanceClosing Booked Balance
Monday90 EUR90 EUR
Tuesday90 EUR90 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.

StepEventTimestampAvailable BalanceBooked BalanceDetails
1Initial Balances-100 EUR100 EUR-
2Outgoing Payment Instruction CreatedMonday 10:00:00 AM100 EUR100 EURPayment of 10 EUR instruction created.
3Outgoing Payment ProcessedMonday 10:03:00 AM100 EUR100 EURPayment of 10 EUR processed.
4Outgoing Payment Booked Webhook (OutgoingPaymentBooked)Monday 10:02:00 AM90 EUR90 EURTransaction date: Monday (T), Value date: Monday (T)
5Outgoing Payment Processed Webhook (OutgoingPaymentProcessed)Monday 10:03:00 AM90 EUR90 EURDebit amount: 10 EUR, Value date: Monday (T), Processing: 10:05 AM

Closing Balances

DayClosing Available BalanceClosing Booked Balance
Monday90 EUR90 EUR
Tuesday90 EUR90 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).

StepEventTimestampAvailable BalanceBooked BalanceDetails
1Initial Balances-100 EUR100 EUR-
End of Day Process EndsMonday 7:30:00 PM100 EUR100 EURSystem day moves to Tuesday
2Outgoing Payment Instruction CreatedMonday 8:00:00 PM100 EUR100 EURPayment of 10 EUR instruction created.
3Outgoing Payment ProcessedMonday 8:00:05 PM100 EUR100 EURPayment of 10 EUR processed.
4Outgoing Payment Processed Webhook (OutgoingPaymentProcessed)Monday 8:00:10 PM100 EUR100 EURDebit amount: 10 EUR, Value date: Tuesday (T+1), Processing: 8:05 PM
5Outgoing Payment Booked Webhook (OutgoingPaymentBooked)Monday 8:00:15 PM90 EUR90 EURTransaction date: Tuesday (T+1), Value date: Tuesday (T+1)

Closing Balances

DayClosing Available BalanceClosing Booked Balance
Monday100 EUR100 EUR
Tuesday90 EUR90 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.

StepEventTimestampAvailable BalanceBooked BalanceDetails
1Initial Balances-100 EUR100 EUR-
2Outgoing Payment Instruction CreatedMonday 10:00:00 AM100 EUR100 EURPayment of 10 EUR instruction created.
3Outgoing Payment RejectedMonday 10:00:05 AM100 EUR100 EURPayment of 10 EUR rejected.
4Payment Rejected Webhook (OutgoingPaymentRejected)Monday 10:05:00 AM100 EUR100 EURRejection event. No balance impact.

Closing Balances

DayClosing Available BalanceClosing Booked Balance
Monday100 EUR100 EUR
Tuesday100 EUR100 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.

StepEventTimestampAvailable BalanceBooked BalanceDetails
1Initial Balances-100 EUR100 EUR-
2Outgoing Payment Instruction CreatedMonday 10:00:00 AM100 EUR100 EURPayment of 10 EUR instruction created.
3Outgoing Payment ProcessedMonday 10:00:05 AM100 EUR100 EURPayment of 10 EUR processed.
4Outgoing Payment Booked Webhook (OutgoingPaymentBooked)Monday 10:13:00 AM90 EUR90 EURTransaction date: Monday (T), Value date: Monday (T)
5Outgoing Payment Processed Webhook (OutgoingPaymentProcessed)Monday 10:14:00 AM90 EUR90 EURDebit amount: 10 EUR, Processing timestamp: 10:14 AM
6Payment ReversedMonday 10:15:00 AM100 EUR100 EURPayment reversed.
7Payment Reversed Webhook (Reversed)Monday 10:15:05 AM100 EUR100 EUROriginal payment status changed to "reversed."

Closing Balances

DayClosing Available BalanceClosing Booked Balance
Monday100 EUR100 EUR
Tuesday100 EUR100 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.

StepEventTimestampAvailable BalanceBooked BalanceDetails
1Initial Balances-100 EUR100 EUR-
End of Day Process Starts-100 EUR100 EUREOD starts
2Outgoing Payment Instruction CreatedMonday 7:00:00 PM100 EUR100 EURPayment of 10 EUR instruction created.
3Outgoing Payment ProcessedMonday 7:00:05 PM100 EUR100 EURPayment of 10 EUR processed.
4Outgoing Payment Processed Webhook (OutgoingPaymentProcessed)Monday 7:13:00 PM100 EUR100 EURDebit amount: 10 EUR, Value date: Monday (T), Processing: 10:05 AM
End of Day Process EndsMonday 7:30:00 PM100 EUR100 EURSystem day rolls over to Tuesday
5Outgoing Payment Booked Webhook (OutgoingPaymentBooked)Monday 7:35:00 PM90 EUR90 EURTransaction date: Tuesday (T+1), Value date: Monday (T)

Closing Balances

DayClosing Available BalanceClosing Booked Balance
Monday100 EUR100 EUR
Tuesday90 EUR90 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.

StepEventTimestampAvailable BalanceBooked BalanceDetails
1Initial Balances-100 EUR100 EUR-
2Incoming Payment ProcessedMonday 10:00:05 AM100 EUR100 EURPayment of 10 EUR processed.
3Incoming Payment Processed Webhook (IncomingPaymentProcessed)Monday 10:00:10 AM100 EUR100 EURCredit amount: 10 EUR, Value date: Monday (T), Processing: 10:05 AM
4Incoming Payment Booked Webhook (IncomingPaymentBooked)Monday 10:00:15 AM110 EUR110 EURTransaction date: Monday (T), Value date: Monday (T)

Closing Balances

DayClosing Available BalanceClosing Booked Balance
Monday110 EUR110 EUR
Tuesday110 EUR110 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).

StepEventTimestampAvailable BalanceBooked BalanceDetails
1Initial Balances-100 EUR100 EUR-
2End of Day Process EndsMonday 7:30:00 PM100 EUR100 EUREOD closes Monday, system day moves to Tuesday
3Incoming Payment ProcessedMonday 8:00:05 PM100 EUR100 EURPayment of 10 EUR processed.
4Incoming Payment Processed Webhook (IncomingPaymentProcessed)Monday 8:00:10 PM100 EUR100 EURCredit amount: 10 EUR, Value date: Tuesday (T+1), Processing: 8:05 PM
5Incoming Payment Booked Webhook (IncomingPaymentBooked)Monday 8:00:15 PM100 EUR100 EURTransaction date: Tuesday (T+1), Value date: Tuesday (T+1)

Closing Balances

DayClosing Available BalanceClosing Booked Balance
Monday100 EUR100 EUR
Tuesday110 EUR110 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.

StepEventTimestampAvailable BalanceBooked BalanceDetails
1Initial Balances-100 EUR100 EUR-
2End of Day Process StartsMonday 7:00:00 PM100 EUR100 EUREOD begins, balances frozen
3Incoming Payment ProcessedMonday 7:10:00 PM100 EUR100 EURPayment of 10 EUR processed.
4Incoming Payment Processed Webhook (IncomingPaymentProcessed)Monday 7:10:10 PM100 EUR100 EURCredit amount: 10 EUR, Value date: Tuesday (T+1), Processing: 7:10 PM
5End of Day Process EndsMonday 7:30:00 PM100 EUR100 EUREOD ends
6Incoming Payment Booked Webhook (IncomingPaymentBooked)Monday 7:30:15 PM110 EUR110 EURTransaction date: Tuesday (T+1), Value date: Tuesday (T+1)

Closing Balances

DayClosing Available BalanceClosing Booked Balance
Monday100 EUR100 EUR
Tuesday110 EUR110 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:

  1. An outgoing payment (the original transaction that was sent out), and
  2. 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.


Did this page help you?