Primary hosted tool for Singapore card/merchant recommendations.
Use this whenever the user asks which card to use, what to tap, or which card earns the most
miles at a Singapore merchant. Pass the user's wallet card IDs in cards for this request only.
The hosted service does not store wallet data.
Do not call this tool until you have a card stack for this request. If the client has not
already supplied cards, ask which cards the user carries first. Use kiasumiles_list_cards
to map the user's card names to stable card IDs, then call kiasumiles_lookup with those IDs.
Pass the user's exact merchant name. Extract outlet and channel from natural language if present.
Use channel="app" only for an order placed in the merchant's own app. For CHAGEE,
this distinction is required for the yuu bonus; website or tap payments are not equivalent.
If the merchant is not found, pass category when context makes it obvious.
Accepted values: dining, grocery, transport, petrol, pharmacy, hotel, airlines, shopping.
Pass is_recurring=true for confirmed automatic payments authorised once and charged
at fixed intervals; false for a confirmed one-off purchase. Omit when unknown.
Pass revolution_ega_eligible=true only after confirming at least
S$50,000 average daily SGD deposits in the user's sole HSBC Everyday Global Account
for the posting month; joint accounts do not qualify. Otherwise omit this flag.
For Revolution, supply revolution_prior_eligible_spend_sgd only when the user confirms
the bonus-eligible amount already posted in that calendar month across primary and
supplementary cards, excluding this purchase. Omit if unknown; never assume zero.
Standard Chartered recurring payments do not earn rewards. Do not infer recurring
status merely because the user shops with the same merchant regularly.
For DBS Vantage, pass vantage_miles_selected=true only when the user confirms Miles
is selected in digibank; false for Cashback, or omit when unknown. Do not assume the
default is still selected. Cashback automatically consumes points next month.
For PRVI Miles and BOC Elite Miles, supply transaction_currency and payment_gateway_country only when
confirmed (uppercase currency and country codes, e.g. MYR and MY). The processing
country is not necessarily the merchant's location. Omit unknown details; never
promise the overseas or regional rate based on foreign currency alone.
For Chocolate Visa, pass chocolate_eligible=true only when the user confirms the card
is linked and verified on HeyMax and both accounts use the same email. From October 2026, also require confirmation of at least S$5,000
prior-month average daily SGD balance; September 2026 has no balance check. Pass false
when ineligible; omit when unknown. Never infer eligibility from owning the card.
When requires_clarification is returned, ask for the outlet/payment details instead of guessing.
For Smart, pass smart_statement_spend_sgd only for user-confirmed total eligible spending
in this statement month, including this purchase and supplementary cards. Do not use
a forecast, calendar-month total, or the purchase amount alone. Omit when unknown.
For PPS cards, pps_prior_spend_sgd maps each card ID to its confirmed prior eligible
calendar-month SGD-equivalent spending, excluding this purchase. Use only the same
currency bucket (SGD or foreign currency); never combine cards or currency totals.
If pps_sia_group_eligible=true, use the separate qualifying SIA Group spending bucket
instead. Confirm direct SGD purchase and Singapore departure for flights; Pelago
digital-wallet purchases do not qualify. Omit the flag if uncertain. Omit unknown totals.
PPS estimates with unknown spending are lower/upper bounds, not exact awards.
The monthly calculation may complete an earlier partial S$10 block. Explain this
when the incremental miles appear large relative to a small purchase.
Present card name, earn_rate_mpd, cap_summary, and reason_summary. Use gotchas to warn about
wrong payment channel, merchant-only bonus rules, minimum spend, and cap constraints. Never show
raw card IDs, MCC codes, or technical fields unless the user asks for diagnostics.
Reuse cards and resolved names already supplied in this conversation. Ask which cards the user has only when missing; offer banks as a fallback. Fetch the supported list once for multiple banks and filter internally. Accept unambiguous named cards without reconfirming the full stack; ask the user to choose when a name has multiple variants or they supplied only banks. If payment method is unspecified, compare methods in one call and briefly show physical-card and mobile-wallet options. Ask only if missing information materially changes the answer and cannot be covered by alternatives. Treat spend progress as optional and show bonus conditions and guaranteed fallbacks when it is unknown. Lead with card, rate and essential conditions, including uncertainty and fallback where relevant. Expand only on request. Do not repeat setup or discovery for each purchase or promise memory across conversations.
kiasumiles_lookup