-
-
Voucher integration
-
Voucher page
-
Voucher category
-
AI reasoning
-
Voucher details
-
Voucher map
-
Location-based notification
-
Dynamic QR payment
-
QR scan
-
Sign up
-
Merchant AI assistant
-
OCR menu
-
Merchant knowledge base
-
Campaign auto-fill
-
AI recommendation
-
Campaign projection
-
Campaign details
-
Payment page
-
Revenue dashboard
SOL-AI: Merchant-Funded Smart Loyalty
Inspiration
Shinhan Bank Vietnam has built a strong digital foundation with the SOL app — but the loyalty ecosystem remains fragmented. Promotions on Shinhan Zone are static and require slow, manual B2B negotiations. Local SME merchants have no way to independently reach Shinhan's massive user base. And users are stuck juggling multiple apps: one for vouchers, another for payments.
We saw an opportunity to turn Shinhan SOL into a self-serve, AI-driven marketing engine — one that shifts the cost of rewards from the bank to merchants, empowers small businesses with GenAI, and delivers a seamless "One-Scan" checkout experience for users. No separate app needed.
What it does
SOL-AI is a B2B2C loyalty infrastructure built natively into the Shinhan SOL ecosystem. It creates a closed-loop system where merchants fund their own campaigns, Shinhan earns platform fees, and users receive hyper-personalized value — turning loyalty from a cost center into a profit center.
Our solution has three pillars:
The Merchant Campaign Builder (B2B): A self-serve portal where merchants describe campaigns in natural language. A café owner types "Giảm 20% cho dân văn phòng uống cafe buổi sáng" (20% off for office workers who drink morning coffee), and our AI generates the complete campaign — targeting rules, discount logic, budget estimation, ROI projection, and push notification copy. The AI draws on the merchant's own knowledge base (uploaded menus, space photos, brand voice) to make context-aware suggestions.
Geo-Triggered Personalized Feed (B2C): Inside the simulated SOL app, users see an AI-ranked offer feed. Each offer carries a propensity score reflecting how relevant it is to that specific user. When a user enters a merchant's geofence, they receive a contextual push notification. An "ℹ️ Why am I seeing this?" tooltip provides an AI-generated explanation of the match.
One-Scan Dynamic QR: A single, time-sensitive QR code combines payment and voucher data. The merchant scans it with the POS interface, and the system atomically settles the payment and applies the discount. One scan — payment done, voucher redeemed.
How we built it
We are a team of 4 — 3 AI/Dev engineers and 1 Cloud Architect — and we built the entire working prototype in two weeks.
NLP to Campaign Logic (Qwen-Plus & Model Studio): We use Qwen-Plus as a zero-shot extraction engine. The merchant's unstructured prompt is transformed into a strict JSON payload with targeting parameters, discount configuration, budget, and push message. In our POC, this runs through a CopilotKit + LangGraph agent pipeline: the merchant chats in a sidebar, the agent orchestrates tool calls (knowledge base lookup, merchant profile context, ROI analysis), and auto-populates a structured campaign form. Changed fields flash to show the AI's work. The agent supports both English and Vietnamese.
Real-Time Propensity Scoring (PAI-EAS & DashVector): We calculate an AI-Match score per user-campaign pair. User behavioral embeddings are stored in DashVector. Our scoring model on PAI-EAS computes cosine similarity between user and campaign vectors, then combines this with contextual weights (time of day, proximity) to output a propensity probability between 0.0 and 1.0. The feed gracefully degrades — if PAI-EAS is unavailable, offers fall back to creation-date sorting with a visible fallback indicator.
Geofencing & Push Triggers (Function Compute): Serverless functions on Function Compute evaluate the user's live coordinates against merchant geofence boundaries. On match, the API Gateway fires a push notification to the SOL App. We implemented per-campaign de-duplication to prevent notification spam.
Dynamic QR Generation (Function Compute + HMAC-SHA256): Each QR encodes merchant ID, payment amount, and voucher logic into an HMAC-SHA256 signed payload with a 60-second expiry. The POS scanner verifies the signature server-side, then atomically settles the payment and increments the campaign's redemption count.
Merchant Knowledge Base (RAG): Merchants upload menus, space images, and brand voice documents. Our AI extracts text via vision models and stores it as retrievable context. When creating a campaign, the agent queries this knowledge base — so a café's AI knows its menu items, price range, and ambiance.
VietQR Payment (EMV-compliant): We implemented VietQR generation with CRC-16/CCITT checksums using Shinhan Bank's NAPAS BIN. The POS supports product catalog browsing, cart management, and automatic discount application (percentage, fixed amount, buy-X-get-Y, free shipping) before generating the payment QR.
Tech stack: Next.js 15 + React 19 + Tailwind CSS (3 frontend apps), CopilotKit + LangGraph (AI orchestration), Qwen-Plus via Model Studio (LLM), PAI-EAS + DashVector (scoring), PolarDB for MySQL (data), Function Compute (serverless QR & geofence), API Gateway (routing), Clerk (auth), fast-check (26 property-based tests).
Challenges we ran into
Taming the LLM for strict JSON. Getting Qwen-Plus to consistently return valid, structured JSON instead of conversational text required rigorous prompt engineering. We enforced strict output via system prompts and built regex fallback logic to catch and repair malformed responses.
Low-latency AI matching at the geofence. Scoring offers for users walking into a geofence demanded sub-second latency. We solved this by caching user embeddings in DashVector and pre-computing campaign vectors, reducing the scoring call to a single vector similarity lookup.
Dynamic QR payload engineering. Encoding merchant ID, payment amount, voucher logic, and a cryptographic signature into a single QR string — while maintaining a 60-second expiry — took several iterations of our HMAC-SHA256 signing scheme on Function Compute.
VietQR EMV compliance. Vietnam's VietQR standard requires precise EMV TLV encoding with CRC-16/CCITT checksums. Getting the byte-level encoding right for Shinhan's NAPAS BIN, while handling Vietnamese Unicode diacritics in merchant names, required careful ASCII normalization and extensive property-based testing.
Coordinating three modules in two weeks. Three independent Next.js apps, a Node.js backend, and multiple AI service integrations — keeping data contracts aligned was a constant challenge. Property-based testing with fast-check became our safety net: 26 properties covering campaign uniqueness, QR round-trip integrity, single-use enforcement, sort order, ROI calculation, and settlement atomicity.
Accomplishments that we're proud of
A complete B2B2C loop in 14 days. We connected the full cycle: merchant intent → AI campaign generation → user matching → geo-triggered notification → dynamic QR checkout → payment settlement. Every step works end-to-end.
Deep Alibaba Cloud integration. We architected around 6 Alibaba Cloud services — Model Studio (Qwen-Plus), PAI-EAS, PolarDB, DashVector, Function Compute, and API Gateway — with a clear migration path from our POC stand-ins to production.
AI that actually does the work. The agent doesn't just suggest — it fills out the entire campaign form, queries the merchant's knowledge base for context, calculates ROI projections, and publishes the campaign. A merchant with zero marketing experience can launch a targeted promotion in under 2 minutes.
26 property-based correctness tests. We wrote 26 fast-check properties covering: campaign ID uniqueness, JSON schema completeness, form round-trip integrity, QR payload signing and verification, single-use enforcement, settlement atomicity, sort order correctness, ROI calculation accuracy, VietQR EMV compliance, distance sorting, proximity notification de-duplication, and more.
Production-ready on-premises architecture. We documented a complete deployment path mapping every cloud service to self-hosted equivalents — Kong Gateway, Keycloak, Qwen via vLLM, Milvus, MySQL InnoDB Cluster, OpenFaaS — ready for Shinhan's private data center.
A real business model, not a tech demo. Merchants self-fund campaigns, Shinhan earns platform fees, users get personalized value. Loyalty becomes a profit center.
What we learned
GenAI's biggest value for SMEs is operational automation. Translating "messy human intent" into "strict database logic" democratizes marketing for small businesses. A phở shop owner who has never written a marketing brief can launch a geo-targeted campaign by chatting in Vietnamese.
Alibaba Cloud's event-driven agility. Function Compute let us go from concept to production-ready serverless functions in a single afternoon. The QR signing function, the geofence evaluator — each deployed and scaling independently.
Property-based testing is a hackathon superpower. With three modules and tight timelines, fast-check caught edge cases we never would have written manual tests for — like QR payloads that round-trip correctly even with maximum-length Vietnamese merchant names containing diacritics.
Ruthless prioritization wins. Every feature we shipped works end-to-end for the demo scenario. We deferred edge cases and admin tooling to focus on the core loop that tells the story.
What's next for SOL-AI: Merchant-Funded Smart Loyalty
Core banking integration. Transitioning from mock ledgers to Shinhan's actual core banking APIs and CMS for real payment settlement and account management.
Multi-language support for FDI businesses. Expanding Qwen templates to natively support Korean for Korcham SME members operating in Vietnam — a natural fit for Shinhan's Korean business network.
On-premises deployment. We've documented the full cloud-to-on-prem migration path (Kong, Keycloak, Qwen via vLLM, Milvus, MySQL InnoDB Cluster). Next step: containerized deployment inside Shinhan's private data center with full observability (Prometheus, Grafana, ELK, Jaeger).
Advanced ML scoring. Upgrading from cosine similarity to a trained propensity model incorporating transaction history, time-of-day patterns, weather data, and merchant category affinity for even more precise offer matching.
Merchant analytics marketplace. Aggregated, anonymized spending insights sold back to merchants — creating a third revenue stream beyond campaign fees and transaction commissions.

Log in or sign up for Devpost to join the conversation.