Pricing Context Rules
Creating Rules
POST /api/v1/admin/pricing-context-rules
{
"name": "Visa Partnership",
"partnerId": "VISA",
"disablePromotions": true,
"disableCoupons": true,
"allowedBankOfferIds": ["visa-offer-1", "visa-offer-2"],
"additionalMultiplier": 0.95,
"priority": 10,
"status": "ACTIVE"
}
Priority & Matching
Rules are evaluated by priority descending (highest first). First match wins.
Priority 10: partnerId=VISA ← matches Visa visitors
Priority 5: loyaltyTierMin=2 ← matches Gold+ members
Priority 1: utmMedium=cpc ← matches paid traffic
A Visa visitor who's also Gold tier → Visa rule wins (priority 10 > 5).
Time-Bound Rules
{
"name": "Summer Campaign",
"utmCampaign": "summer_2026",
"additionalOfferIds": ["summer-promo-1"],
"startAt": "2026-05-01T00:00:00Z",
"endAt": "2026-08-31T23:59:59Z",
"priority": 3,
"status": "ACTIVE"
}
Rules outside their startAt/endAt window are automatically excluded.
Caching
Rules are cached in-memory (AtomicReference) with a 15-minute refresh interval. Changes take up to 15 minutes to take effect.
pricing.context.cache.cron=0 */15 * * * *
Examples
Visa: only Visa bank offers, no promotions
{ "partnerId": "VISA", "disablePromotions": true, "disableCoupons": true,
"allowedBankOfferIds": ["visa-1", "visa-2"], "priority": 10 }
Gold members: 5% off
{ "loyaltyTierMin": 2, "additionalMultiplier": 0.95, "priority": 5 }
Paid traffic: show all offers + bonus promo
{ "utmMedium": "cpc", "additionalOfferIds": ["paid-bonus-1"], "priority": 3 }