Documentation for a newer release is available. View Latest
Esta página no está disponible actualmente en Español. Si lo necesita, póngase en contacto con el servicio de asistencia de Icon (correo electrónico)

Request Blocking

Overview

The Request Blocking feature provides protection against potential phishing attempts by blocking requests after a certain number of no match responses for a given IBAN or IBAN+BIC combination. This helps prevent attackers from using the Verification of Payee service to gather information about valid account details.

How it Works

The Request Blocking feature works as follows:

  1. An incoming request is received with an IBAN and BIC.

  2. The cache is checked, using the IBAN or IBAN+BIC, to see if the number of no matches is above the threshold. The message is rejected if it’s above the configured threshold.

  3. The cache counters are incremented if the response outcome is no match.

Configuration

Configuration for request blocking is defined in 2 places due to the use of the IPF Cache. Firstly, to configure the ipf cache you can modify the below default values:

Property Grouping: ipf.caching.caffeine

Key Description Default Value

ipf.caching.caffeine.enabled

Enable caching for VoP block requests

true

ipf.caching.caffeine.settings.no-match-iban-and-bic.max-size

Max number of items allowed in the cache

10000

ipf.caching.caffeine.settings.no-match-iban-and-bic.timeout

Timeout value for when items will be removed from the cache

"1h"

ipf.caching.caffeine.settings.no-match-iban.max-size

Max number of items allowed in the cache

10000

ipf.caching.caffeine.settings.no-match-iban.timeout

Timeout value for when items will be removed from the cache

"1h"

To modify the corresponding max request limit allowed within the above timeout you can modify the below default values:

Property Grouping: ipf.verification-of-payee.responder.cache.no-match

Key Description Default Value

ipf.verification-of-payee.responder.cache.no-match.iban-and-bic-matching.max-requests

The maximum number of no match responses allowed for a given IBAN and BIC before blocking requests

40

ipf.verification-of-payee.responder.cache.no-match.iban-matching.max-requests

The maximum number of no match responses allowed for a given IBAN before blocking requests

40

Important Notes

  • The counters are reset when the cache entries expire.

  • The cache has a maximum size to prevent memory issues.

  • Request blocking is applied independently for IBAN and IBAN+BIC thresholds - if either threshold is exceeded, the request will be blocked.

  • The number of blocked requests is counted in metrics for monitoring purposes.

  • Cache counters are reset if the service goes down

  • Cache counters are not distributed across nodes

  • Checking of counters is eagerly checked (as soon as the request comes in), so this could mean some requests could not be flagged even if they are above the request limit. Once the counters have been updated above the request limit, requests should start being blocked.

Metrics

The Verification of Payee service also exposes a metric property that counts the number of blocked requests. The metric is a counter with key of verification-of-payee.responder.blocked-requests. This gets pushed to Prometheus and can be used to create a dashboard to monitor the number of Phishing attempts for all accounts over a certain period of time.

Example:

image$blocked request panel

To investigate a blocked request, refer to the application logs for details on the specific cache and IBAN/IBAN+BIC combinations that led to the block.

Example:

2025-07-08T13:17:01.603+01:00  INFO 57496 --- [oundedElastic-1] c.i.i.p.v.s.p.CacheBackedPhishingService : Cache with key GB46BARC20040159395561 is above the threshold 5

Error Handling

Runtime Errors

The following errors may occur at runtime. When an error occurs, the service responds with the corresponding HTTP error code, as outlined in the table below.

Error HTTP Return Code

When too many no match responses have occurred for a particular IBAN or IBAN+BIC combination over a set time period or threshold.

Error message: Too many requests for this account

400