Providers & Validation
Reference for eligibility providers and how validation feeds benefits.
Supported providers
| Code | Purpose | Notes |
|---|---|---|
SAGA_NETWORK | Core reciprocity network (default) | Uses MCA validation; home club lookup via mapping |
GOLFRSA | Association data (courses/tees) | Validation optional; no direct pricing discount today |
DOTGOLF | Association data (courses/tees) | Same as GolfRSA |
NEDBANK_GREENTIME | Corporate benefit | Pricing rules live in benefits.service (non-reciprocity) |
DISCOVERY_VITALITY | Corporate benefit | Pricing rules live in benefits.service (non-reciprocity) |
Unknown providers are logged and ignored (pricing falls back to visitor rates).
Validation flow
- SAGA: calls
fetchSagaValidation(MCA) to verify active membership and read home club. Active membership ⇒ roleRECIPROCAL; if home club resolves to the target club, roleMEMBER. - Corporate providers: rely on provider-specific validation in
BenefitsService(outside reciprocity). Eligibility snapshot is stored when available. - Snapshots persist to
BenefitMembershipwith status, tier/handicap, expiry, and raw payload (when available).
Request shape to enable benefits
{
"tenantId": "tenant-uuid",
"membershipNumber": "ABC123",
"providerCode": "SAGA_NETWORK",
"homeClubCode": "HOME123", // optional hint for home-club resolution
"handicap": 9, // optional, gates some reciprocity configs
"validationSnapshot": {} // optional cached provider validation
}
Forward this payload to pricing/stream/search calls; without it, benefits are skipped.
Error handling
- Provider unavailable or validation failure ⇒ log warning, continue with visitor pricing.
- Missing
membershipNumber⇒ reciprocity short-circuits withMISSING_MEMBERSHIP. - Policy fetch failure ⇒ reciprocity assumed enabled (warns) to avoid false negatives.
Audit & reconciliation
BenefitApplication: one row per applied discount (booking/slot context, amount/percent, provider, membership, snapshot).BenefitMembership: last-known validation snapshot per provider/member.- Use these tables to reconcile applied rates vs. provider entitlements.