Case study · Product engineering

Single sign-on and rewards for a credit union

Credit union members needed to go from online banking to a travel booking site already signed in, with their rewards balance ready to spend. We built the identity bridge, the rewards and payment services, and SDKs for the credit unions' mobile apps.

Client
US credit union rewards program
Service
Fintech product engineering
Duration
7 months (December 2025 to July 2026)
Team
4 engineers: tech lead, two backend engineers, one mobile engineer
Stack
.NET, Angular, MySQL, SAML 2.0, OIDC, Stripe, Kotlin and Swift SDKs, AWS

01

Context

The client runs a travel booking and rewards program that credit unions offer to their members. Members reach it from their credit union's online banking, and bookings are fulfilled through a travel partner's white-label booking site.

Members originally signed in to the program with a separate email and password. Credit unions wanted members to arrive from online banking already signed in, and to offer the same experience inside their own mobile apps.

02

Constraints

Regulatory
Credit unions are regulated financial institutions, and they review any vendor that handles member data. The design keeps identity with each credit union and makes every change to a member's rewards balance traceable.
Data
Payments run through Stripe subscriptions, so card details stay with Stripe. The platform stores subscription status and booking references.
Integration
Credit unions' digital banking platforms as SAML and OIDC identity providers; white-label travel booking sites that call back in real time; third-party loyalty and rewards partners; and Stripe for subscriptions.
Timeline
The mobile SDKs had to be ready for credit union app releases. Both were built in 8 days in May 2026.

03

What we built

We built an SSO bridge that accepts SAML and OIDC sign-ins from each credit union, creates the member's account on first visit and starts a session, so members arrive already signed in.

When a member starts a booking, the bridge creates a short-lived rewards session (two-hour expiry) carrying their balance and conversion rates, and hands them to the travel partner's white-label site. The partner calls back in real time to read the balance and redeem points. Around that sit Stripe subscriptions and webhooks, partner webhooks for rewards and bookings, and admin tools for refunds, manual adjustments and reconciliation.

  • SAML and OIDC single sign-on with just-in-time member provisioning
  • Short-lived rewards sessions with real-time balance and redemption callbacks for the travel partner
  • Stripe subscriptions, promotion codes and webhook handling
  • Admin tools for refunds, manual adjustments, member tier and profile syncs, and billing-period reconciliation
  • Android and iOS SDKs that embed the rewards experience in credit union mobile apps
  • Partner documentation site and member help center

04

Architecture

Sign-in and rewards flow between credit unions, the platform and its partners. Client, partner and internal service names have been removed.

Sign-in and rewards flow between credit unions, the platform and its partners. Client, partner and internal service names have been removed.

Sign-in and rewards flow between credit unions, the platform and its partners. Client, partner and internal service names have been removed.

05

Results

single sign-on standards supported for credit unions
SAML + OIDC
lifetime of each rewards session handed to the travel partner
2 hours
to build the Android and iOS SDKs
8 days
external integrations across digital banking, travel booking, loyalty and payment providers
6

Members now go from online banking to booking travel without a second sign-in, with their rewards balance ready to spend. Credit unions can add the same experience to their own apps with the SDKs, and the operations team handles refunds, adjustments and reconciliation in purpose-built admin tools.

Figures are as measured and approved by the client. We don't publish numbers we can't verify.

Next step

Tell us what has to pass audit.

Book a 30-minute call with an engineer, not a salesperson. If we're not the right fit, we'll say so.