Idempotency keys
Every write is safe to retry — a wallet is never double-charged.
नेपाली व्यवसायहरूको लागि सब्स्क्रिप्सन बिलिङ — एक API, वालेटबाट स्वतः कटौती।
Nepali banks don't support recurring card charges — so Trile flips it. Your customer funds a wallet once, via eSewa, Khalti, IME Pay, or bank, and every billing cycle deducts automatically. One API, paisa-precise, priced in रु.

THE WALLET MODEL · वालेट मोडेल
No card-on-file rail exists here. So the customer pre-funds a wallet, and every renewal is an internal ledger movement — not a charge that can decline.
ग्राहकले वालेटमा पैसा राख्छन् — हरेक नवीकरण भित्री खाता चलन हो, नयाँ कार्ड शुल्क होइन।

BUILT FOR CORRECTNESS · भरपर्दो

Every write is safe to retry — a wallet is never double-charged.
Each event is signed — verify it came from Trile before you trust it.
A durable, ordered stream you can replay to rebuild your state.
Ledger and balance reconciled every day — your books match.
Operates within Nepal Rastra Bank rules — KYC-tiered wallet caps read from the API, data localized in Nepal. No license claimed.
How Trile works →HOW IT WORKS · कसरी काम गर्छ
A Subscription draws an Invoice from the customer's wallet each cycle. That's the whole model.
cus_ owns a wal_ wallet — it funds the subscription each cycle.

DEVELOPERS · डेभलपरहरू
Amounts in integer paisa, never floats. Every write safe to retry. Responses always enveloped. Test against a sandbox with nep_test_ keys, then swap to nep_live_.
# First cycle deducts from the customer's wallet
curl $TRILE_API/v1/subscriptions \
-H "x-api-key: $TRILE_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{ "customerId": "cus_01ARZ…",
"priceId": "price_01ARZ…" }'// Every response is enveloped: { success, data, meta }
{
"success": true,
"data": {
"id": "sub_01ARZ3NDEKTSV4RR",
"status": "active",
"price": "price_01ARZ3NDEKTSV4"
},
"meta": { "requestId": "req_aBcDeFgHiJkL" }
}webhook · invoice.paid
Signed · delivered to merchant.example.com/hooks · 142ms
{
"id": "evt_01ARZ3NDEK",
"type": "invoice.paid",
"data": {
"object": "invoice",
"amount_paisa": "49900",
"currency": "NPR",
"subscription": "sub_01ARZ3NDEK"
}
}MONEY DONE RIGHT · पैसा सही तरिकाले
Integer paisa as strings — rounding can never drift your books. Figures group in lakhs and crores, each row carrying both an AD and a Bikram Sambat date.
हरेक रकम पूर्णांक पैसा हो — लाख र करोडमा अल्पविराम, दुवै पात्रोमा मिति।
INVOICE TOTAL · इनभ्वाइस रकम
रु 1,25,00,000.00

STATES YOU HANDLE · अवस्थाहरू

wallet short
top up + retry
| Customer · ग्राहक | Plan | Amount | When | Status |
|---|---|---|---|---|
Pemba Sherpa पेम्बा शेर्पा | Pathshala — Pro | रु 499.00 | 18 May 2026, 14:32 ४ जेठ २०८३, २:३२ | Paid |
Anjali Maharjan अञ्जली महर्जन | Daalcha — Business | रु 4,999.00 | 18 May 2026, 11:08 ४ जेठ २०८३, ११:०८ | Paid |
Birendra Karki बिरेन्द्र कार्की | Pathshala — Family | रु 1,250.00 | 18 May 2026, 09:47 ४ जेठ २०८३, ९:४७ | Past due |
Sapana Tamang सपना तामाङ | Pathshala — Solo | रु 2,499.00 | 18 May 2026, 08:22 ४ जेठ २०८३, ८:२२ | Paid |
Kirtipur Hotels Pvt. किर्तिपुर होटल्स | Hospitality — Suite | रु 1,00,000.00 | 17 May 2026, 23:11 ३ जेठ २०८३, ११:११ | Paid |

HOSTED CHECKOUT · होस्टेड चेकआउट
The customer confirms their number with a one-time code — no password to manage.
They fund via eSewa, Khalti, IME Pay, or bank. Settlement is verified server-side, never trusted from the redirect.
The first cycle deducts immediately; every renewal draws from the balance automatically.
PRICING · मूल्य निर्धारण
We'll match a plan to your charge volume and settlement needs — no hidden FX, no surprises in the dashboard. Start in test mode today with nep_test_ keys; talk to us before you go live.
मूल्य तपाईंको भोल्युम अनुसार — लुकेका शुल्क छैनन्।
COMMON QUESTIONS · प्रश्नहरू
त्रिलेले पुनरावर्ती भुक्तानी कसरी सम्हाल्छ?
Trile charges a prepaid wallet instead of a card. A customer tops up once through eSewa, Khalti, IME Pay, or a bank transfer, and each billing cycle deducts automatically from the balance. Failed charges retry; when the wallet runs short the subscription goes past_due and recovers on the next top-up.
कार्डको सट्टा वालेट किन?
Nepali banks don't support Variable Recurring Payments, and eSewa, Khalti, and Fonepay can't schedule auto-charges — so there's no card to pull from each month. Trile inverts the model: the customer pre-funds a wallet, and Trile deducts from that balance on every renewal.
त्रिलेले रकम कसरी राख्छ?
Every amount is integer paisa — NPR × 100 — serialized as a string, never a float. NPR 499.00 is "49900". Amounts display with South-Asian lakh and crore grouping, and transactions carry both AD and Bikram Sambat dates.
ग्राहकको वालेट सकिएमा के हुन्छ?
The renewal invoice stays open, the subscription moves to past_due, and an invoice.payment_failed webhook fires. When the customer tops up, Trile retries and the subscription returns to active. past_due is a normal, recoverable state — not an error.
के त्रिले NRB नियम अनुसार छ?
Trile operates within Nepal Rastra Bank rules. Wallet balances are capped by each customer's KYC tier, the cap is read from the API rather than hard-coded, and data is localized within Nepal. A customer raises their limit by completing a higher KYC tier.

आजै टेस्ट मोडमा निर्माण सुरु गर्नुहोस्।
Create a sandbox account, grab your nep_test_ keys, and run your first wallet-funded subscription end to end — before a single rupee moves.