| Field | What it is | How to fill it | Example |
|---|---|---|---|
| Attribute | What we check (amount, currency, time, issuer, etc.) | Select from the list (see table below) | Payment amount |
| Operation | How we compare | >, >=, <, <=, ==, !=, ranges (a-b) / [a-b] | <= |
| Value | Threshold/value for comparison | Depends on Attribute: number, currency code, range, time window | 500 |
| Attribute (UI) | Meaning | Value format | Typical business use case | Example condition |
|---|---|---|---|---|
| Payment amount | Current payment amount | Number (major units) or range | Split PSPs by amount ranges | Payment amount >= 100 |
| Payment currency | Payment currency | ISO code: USD, EUR, INR, etc. | Different PSPs for different currencies | Payment currency == USD |
| Payment created at — time | Time-of-day window | Time/range (as in UI) | “Day/night” provider, time-based SLA | time in range 10:00–17:00 |
| Payment created at — day, time | Date+time window | Two timestamps (as in UI) | Promo period / pilot on specific dates | 2026-01-01 10:00 … 2026-01-30 17:00 |
| Product code | Product/storefront code sent by the merchant | String | Split traffic by products | Product code == CASINO |
| Card issued bank | Card issuer bank | String/enum (as in UI) | PSP-A performs better for a specific issuer | Card issued bank == HDFC |
| Card issued payments processing | Card scheme (processing) | Enum/string (as in UI) | Different PSPs for Visa/Mastercard | processing == VISA |
| Card issued country | Card issuer country | Country ISO code / enum | GEO rules by issuer country | country == IN |
| Telecom operator | Telecom operator (carrier) | String/enum | Rules for mobile scenarios/methods | operator == Airtel |
| Payment details | Payment history condition (aggregation) | Separate form (see section 5) | Anti-spam, attempt/volume limits, FTD/STD | CountUnSuccess >= 3 for 1 hour |
Note on time: Payment created at — time / day, timeconditions are applied in the organization/team timezone.
| Operation | Meaning | Example (amount) | When to use |
|---|---|---|---|
> | strictly greater than | amount > 500 | VIP/high-value branch |
>= | greater than or equal | amount >= 100 | minimum threshold |
< | strictly less than | amount < 100 | micro-payments |
<= | less than or equal | amount <= 500 | upper limit |
== | equals | currency == USD | exact match |
!= | not equals | currency != EUR | exclusion |
(a-b) | between, excluding bounds | amount (100-500) | when bounds must be excluded |
[a-b] | between, including bounds | amount [100-500] | when bounds must be included |
Payment amount, and add a cascade in the overlap.amount < 100 → PSP-A100 <= amount <= 500 → PSP-A → PSP-Bamount > 500 → PSP-B| Field | Meaning (plain words) | Format/values | Example |
|---|---|---|---|
Aggregation type (aggregationType) | What exactly we calculate over history | Count* or Sum* (see table below) | CountUnSuccess |
Property (property) | Which “key” to group history by (who we consider the same payer) | payeerIdentifier, email, ip, cardToken, phoneNumber, … | payeerIdentifier |
Period (periodSeconds) | How far back to look | Seconds or a human-readable choice in UI | 3600 (1 hour) |
Direction type (directionType) | Which operations to include | Deposit, Withdrawal, Inherit | Deposit |
Entity type (entityType) | Where to search for history | Pipeline (current only) or Partner (all partner pipelines) | Partner |
Operation (operation) | How to compare the metric to the threshold | >, >=, <, <=, ==, !=, range | >= |
Value (value) | Threshold value | For Count* — number of attempts; for Sum* — amount | 3 |
0.| aggregationType | What it counts | Plain explanation | Example use case |
|---|---|---|---|
CountTotal | Count of all (success + failed + processing) | “How many times they tried to pay” | daily attempt cap |
CountSuccess | Count of successful | “How many times it worked” | FTD/STD, trust level |
CountFailed | Count of failed | “How many explicit declines” | anti-retry by declines |
CountUnSuccess | failed + processing | “How many did not reach success” | anti-spam + catching “hangs” |
SumTotal | Sum of all | “Total turnover (any statuses)” | rare scenario |
SumSuccess | Sum of successful | “How much actually went through” | 5,000 USD/week cap |
SumFailed | Sum of failed | “How much failed by amount” | risk rules |
SumUnSuccess | Sum of failed + processing | “How much is stuck/unsuccessful by amount” | degradation/risk |
callbackUrl can be passed dynamically in the request (it has priority over the static one);created, processing, success, failed) and payment amount change (relevant in some cases)CountUnSuccess is convenient.CountSuccess == 0.Sum* rules, avoid mixing currencies.