> For clean Markdown of any page, append `.md` to the page URL.
> For a complete documentation index, see https://docs.sarvam.ai/llms.txt.
> For full documentation content in one file, see https://docs.sarvam.ai/llms-full.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.sarvam.ai/_mcp/server.

# BFSI Voice Bots

> Architecture, model configuration, and compliance guardrails for building banking, financial services, and insurance voice agents with Sarvam AI.

Banks, NBFCs, and insurers deal with two things a generic chatbot doesn't: money and regulation. A BFSI voice bot needs to explain loan products, quote indicative numbers, and walk a customer through eligibility, all without ever sounding like it's guaranteeing an outcome the institution hasn't actually approved.

This guide covers the architecture and guardrails common to BFSI voice bots, then walks through the [Loan Advisory Agent](/api-reference-docs/cookbook/Examples/Loan_Advisory_Agent_Pipecat) example as the concrete implementation. For the collections side of BFSI (payment reminders, follow-ups), see the [Collection Agent](/api-reference-docs/cookbook/Examples/Collection_Agent_LiveKit) covered in the [IVR / Contact Center guide](/api-reference-docs/api-guides-tutorials/speech-to-text/use-cases/ivr-contact-center).

**In short:** never let the bot state a guarantee, route reasoning-heavy questions to `sarvam-105b` and routine ones to `sarvam-30b`, and add a pronunciation dictionary for financial acronyms before launch.

## Architecture

```
Customer Audio → STT (streaming) → Context Aggregator → LLM (with compliance system prompt) → TTS (streaming) → Customer
```

* **Structured extraction from the LLM step:** loan amount, tenure, product → CRM / LOS lookup

Most BFSI conversations need account or applicant context (existing customer vs. new lead, product type) before the LLM can give a specific answer. Fetch this before or during the greeting turn rather than mid-conversation. It avoids the bot promising numbers it then has to walk back.

STT, LLM, then TTS, as in any voice agent. The difference is the system prompt: it carries explicit compliance language (see [Pitfalls](#pitfalls)) and instructs the LLM to give indicative ranges, not guarantees.

When a customer wants to proceed (apply, schedule a callback), extract the structured details (product, amount, tenure) using [Structured Outputs](/api-reference-docs/chat-completion/overview#structured-outputs-json) rather than parsing free text. Hand the result off to your CRM or loan-origination system.

Anything outside the bot's scope (disputes, complex restructuring, regulatory complaints) should transfer to a human advisor immediately rather than attempting a scripted answer.

## Recommended models & params

| Layer         | Setting                                                                                                                                                                     | Why                                                                                                                                                                                               |
| ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| STT           | `saaras:v3`, `mode="transcribe"`, `language="unknown"`                                                                                                                      | BFSI customers commonly mix English financial terms into Hindi/regional speech (e.g. "EMI kitna hoga")                                                                                            |
| LLM           | `sarvam-105b` for eligibility/product-comparison questions; `sarvam-30b` for routine confirmations (balance, next due date)                                                 | `sarvam-105b`'s stronger multi-step reasoning is worth the extra latency when a customer is comparing loan products or asking "why was I rejected." Simple lookups don't need it                  |
| LLM params    | `temperature` on the low end (0.2–0.4); `reasoning_effort="low"` or `None` for routine turns                                                                                | Keeps financial explanations consistent and fast. Reserve higher `reasoning_effort` for genuinely complex eligibility reasoning, since reasoning tokens bill as completion tokens and add latency |
| TTS           | `bulbul:v3`, WebSocket streaming, `pace=1.1`, `temperature=0.3`                                                                                                             | Matches the "BFSI Notification" preset in [TTS Best Practices](/api-reference-docs/text-to-speech/best-practices#11-use-case-quick-reference): controlled and professional rather than expressive |
| Pronunciation | [Pronunciation dictionary](/api-reference-docs/text-to-speech/pronunciation-dictionary) entries for `EMI`, `SIP`, `NBFC`, and your product/brand names, per target language | Acronyms are the single most common BFSI TTS defect. See [Pitfalls](#pitfalls)                                                                                                                    |

## Latency targets

* Follow the same streaming-first defaults as every vertical here: streaming STT, streaming TTS, and [`min_endpointing_delay=0.07`](/api-reference-docs/integration/build-voice-agent-with-live-kit#4-configure-min-endpointing-delay) on LiveKit.
* Budget extra time-to-first-token whenever you route a query to `sarvam-105b` for reasoning-heavy questions. Since this is a deliberate quality/latency trade-off, tell the user something's happening: a short acknowledgement phrase ("Let me check that for you") synthesized immediately while the LLM call is in flight keeps the pause from reading as a dropped call.
* Keep routine turns (balance, due date, "what documents do I need") on `sarvam-30b` with `reasoning_effort=None` specifically so they stay fast. Don't route everything through the higher-latency model by default.

## Pitfalls

Never let the bot say a loan is approved, a rate is final, or a claim will definitely pay out. The [Loan Advisory Agent](/api-reference-docs/cookbook/Examples/Loan_Advisory_Agent_Pipecat) system prompt explicitly instructs the model to give indicative ranges and state that approval "depends on detailed assessment." Copy that pattern rather than leaving it implicit.

"EMI," "SIP," "NBFC," and your bank's own abbreviations: none of these are guaranteed to be read the way you expect out of the box. Add a [pronunciation dictionary](/api-reference-docs/text-to-speech/pronunciation-dictionary) scoped to each `target_language_code` you support before launch, not after a customer flags it.

Loan amounts and EMIs are exactly the kind of large numbers that need commas for correct pronunciation: `5,00,000` rather than `500000`. See [Key Considerations](/api-reference-docs/text-to-speech/best-practices#14-key-considerations).

Customers will ask about disputes, fraud, or complaints mid-conversation. Build an explicit, low-friction escalation branch to a human rather than letting the LLM attempt a scripted answer to something it shouldn't be resolving.

Account numbers, loan amounts, and personal financial details flow through your STT, LLM, and TTS calls. Make sure your logging, analytics, and any transcript storage follow the same data-handling standards as the rest of your BFSI stack. This is an application-layer concern: the API doesn't enforce it for you.

## Full example

The [Loan Advisory Agent](/api-reference-docs/cookbook/Examples/Loan_Advisory_Agent_Pipecat) guide has the complete, runnable code (Pipecat-based). The compliance-relevant part of the system prompt:

```python
messages = [
    {
        "role": "system",
        "content": """You are a professional and helpful loan advisory agent for a leading financial institution in India.
...
**Compliance Reminders:**
- Never make false promises about loan approval
- Always mention that loans are subject to eligibility and documentation
- Recommend customers to compare offers before deciding
- Remind about the importance of timely repayments
""",
    },
]
```

This system prompt is a starting point, not a compliance sign-off. Have your legal/compliance team review the exact language before deploying a BFSI voice bot in production.

**See also:** [IVR / Contact Center](/api-reference-docs/api-guides-tutorials/speech-to-text/use-cases/ivr-contact-center) for the collections use case within BFSI.