Guide · Replit
Sell event tickets from a Replit app
Last updated
To sell tickets from a Replit app, use the Vihaya Events API as the backend. Store your Vihaya key in Replit Secrets and let your server forward the booking calls. Vihaya handles payment, the QR ticket, the ticket email and the payout.
Key facts
- Replit apps can use Vihaya Events as a complete ticketing backend.
- The Vihaya API key belongs in Replit Secrets, never in client code.
- Buyers pay through Razorpay Checkout; no gateway account is needed.
- Every confirmed booking gets a QR ticket by email.
- Works with any stack Replit Agent picks, including Node, Python and Next.js.
Step by step
- 1
Create an API key and store it as a secret
Sign up at Vihaya Events, open Developer → API keys and create a test key. Add it in the Replit Secrets tool as VIHAYA_API_KEY. Secrets are exposed to your server as environment variables. Never put a full key in browser code.
- 2
Create your event
Create the event in the Vihaya dashboard, or through the API. Set the price, ticket tiers and seats there. Your site only displays it and takes bookings.
- 3
Paste this prompt into Replit Agent
Replit Agent builds the pages, a server route for bookings and the Razorpay Checkout code.
replit-prompt.txtAdd real event ticket sales to this project using the Vihaya Events API. Do not add Stripe, Razorpay keys, a tickets database table, or buyer accounts. API docs: https://events.vihaya.app/docs OpenAPI: https://events.vihaya.app/api/v1/openapi.json Key: read VIHAYA_API_KEY from the environment. Never send it to the browser. Make the API calls from a server route (for example /api/book) that forwards to Vihaya with the key attached. 1. Events page: GET https://events.vihaya.app/api/v1/events with header x-api-key. Show each item in data[] as a card: title, date, venue, price. 2. Event page: GET https://events.vihaya.app/api/v1/events/{id} plus a form for name, email, phone. 3. Booking: POST https://events.vihaya.app/api/v1/events/{id}/register with { name, email, phone }. - No orderId in the response means it is confirmed (free event). - Otherwise load https://checkout.razorpay.com/v1/checkout.js and open Razorpay Checkout with key = response.key, order_id = response.orderId. 4. In the Razorpay handler, POST register again with { registrationId, orderId, paymentId, signature } taken from the Razorpay response. 5. On success show "You're booked. Your ticket is in your email." - 4
Test, then switch to a live key
With a test key nothing is charged and no email is sent. When the flow works, swap in a live key and publish the event.
Questions
Can I build it in Python on Replit?
Yes. Install the official Python SDK with pip install vihaya-events, or call the REST API with requests. The Vihaya Events API works from Flask, FastAPI, Django or any Python server.
Does it work after deploying on Replit?
Yes. Check that VIHAYA_API_KEY is set in the deployment’s secrets as well as the workspace, then redeploy. The Vihaya Events API is plain HTTPS and works from any server Replit runs.
Do I need my own Razorpay account?
No. Vihaya Events creates the Razorpay order and verifies the payment. Your Replit app only opens Razorpay Checkout with the public key and order id Vihaya returns, so no gateway secret ever lives in your code.
Can I try it without taking real money?
Yes. Create a Vihaya test key. Test keys only work on test events: no payment gateway is called, no email is sent, no fee is charged and nothing is public. Swap in a live key when you launch.
What does it cost?
Free events cost nothing. Paid tickets carry a 1.75–4.5% Vihaya platform fee plus Razorpay's 3% gateway charge. The rate is fixed when the event is created and larger events get a lower rate. There is no monthly fee and API access is free.
Build the site. Skip the plumbing.
Start with a free test key. Switch to a live key when you are ready to sell.