Overview
bKash Personal accounts do not have access to the bKash Tokenized Checkout merchant API, so they cannot be wired into Timetics AI as a direct payment gateway like the bKash Merchant integration. Instead, you can accept bKash Personal payments using the Custom Payment question type (internally called Advanced Radio) combined with the Pay On-Site integration. The guest sends money to your personal bKash number, enters the transaction ID into the booking form, and you verify the payment manually before confirming the booking. This is the recommended pattern for hosts in Bangladesh who run a personal practice and have not been issued a bKash Merchant account.
Important: Pay On-Site Must Be Enabled
This flow only works when the Pay On-Site integration is connected on your workspace. Custom Payment is a data-collection question, not a payment processor — it does not place a charge, does not produce a transaction record, and does not let the booking reach a “paid” state on its own. Pay On-Site is the integration that lets a paid event accept booking confirmation without an automated gateway charge, treating the amount as a due balance until you mark it paid. Without Pay On-Site enabled, a paid event will require Stripe, PayPal, or bKash Merchant to be selected at checkout and the guest will not be able to complete the booking using a Custom Payment option. Enable Pay On-Site first; only then attach the Custom Payment question to the event.
Step-by-Step Instructions
Step 1: Enable Pay On-Site
Navigate to Dashboard → Integrations and connect the “Pay On-Site” integration. Set a clear display name (e.g. “bKash Personal — Send Before Booking”) and, optionally, brief default instructions. Decide whether bookings should auto-confirm or stay Pending until you approve them — for personal bKash, “Pending” is safer so you can verify the transaction ID before the slot is reserved.
Step 2: Open the Event’s Questions Tab
Navigate to Dashboard → Calendar Setup → select the paid event you want to collect bKash Personal payments for → open the “Questions” tab.
Step 3: Add a New Question
Click “Add Question” to open the question dialog.
Step 4: Choose “Custom Payment” as the Question Type
From the question type dropdown, select “Custom Payment”. The dialog switches into the advanced radio builder.
Step 5: Set the Question Label and Required Toggle
Enter a clear label for the guest, for example “How did you pay?”. Turn on the “Required” toggle so the booking cannot be completed without an answer.
Step 6: Add the bKash Personal Option
Click “Add payment option” and configure it as follows:
- Option label — “bKash Personal”.
- Instructions (shown to guest) — Write a step-by-step note, for example:
> Send the full amount to **+8801XXXXXXXXX** (bKash Personal) using the Send Money option. After sending, copy the bKash Transaction ID (TrxID) from your SMS or bKash app and paste it into the field below. - Guest input fields — Add at least one required field:
- Label: “bKash Transaction ID (TrxID)”
- Placeholder: “e.g. 9F7C2L3K8M”
- Required: ON
- Optionally add a “Sender Number” field for cross-verification, and/or a screenshot uploader marked required for stronger proof of payment.
You can add more options to the same question (Nagad, Rocket, Bank Transfer, etc.) if you want guests to choose between several manual methods.
Step 7: Save the Question
Click “Save” to attach the question to the event. From now on, any guest booking this paid event will see the bKash Personal option, read your instructions, and submit a transaction ID with their booking.
How the Booking Flow Works
- Guest opens the public booking page for the paid event.
- Guest fills in the Custom Payment question — selects “bKash Personal” and enters the transaction ID after sending money to your personal bKash number.
- At the payment step, the guest selects **Pay On-Site** as the payment method, since Pay On-Site is what allows the paid booking to complete without an automated gateway charge.
- Timetics AI creates the booking with the transaction ID stored against it. If auto-confirm is off, the booking lands in Pending; if on, it lands in Confirmed with a due balance.
- You open the booking from the admin dashboard, read the submitted TrxID, verify it in your bKash app or via bKash USSD/SMS, and either approve the booking (if Pending) and/or mark the Pay On-Site balance as paid.
Where to View the Transaction ID
Open the booking from the admin dashboard. The booking detail panel displays the Custom Payment question with the selected option (“bKash Personal”) and the value the guest entered for the transaction ID, sender number, and any uploaded screenshot. The selected option label is also included in webhook payloads sent to Slack, Discord, and Zapier, so notifications carry the chosen method into your downstream tools.
Verifying the Transaction ID
bKash Personal does not expose a public lookup API, so verification is manual:
- Open your bKash app → Transaction History (or dial \*247# → My bKash → Statement).
- Match the transaction ID submitted by the guest against your incoming Send Money records.
- Confirm the amount equals the event price and the sender number matches what the guest provided.
- In Timetics AI, mark the Pay On-Site balance as paid on the booking detail view, and (if Pending) approve the booking.
Important: This Is Not an Automated Gateway
Custom Payment plus Pay On-Site only collects information and lets the booking complete — it does not charge the guest, does not call any bKash API, and does not appear as a processed transaction on a Timetics AI invoice. Verification and reconciliation of the actual money movement are entirely the host’s responsibility. If you want Timetics AI to charge the guest at booking time without manual steps, you must upgrade to a **bKash Merchant** account and use the bKash Merchant integration instead — see [bkash-integration.md](bkash-integration.md).
Best Practices
- Mark the Transaction ID field as **Required**. A guest who submits without a TrxID has given you nothing to verify.
- Keep auto-confirm **off** on Pay On-Site for personal-bKash events, so bookings stay Pending until you confirm payment in your bKash app. This prevents slot squatting.
- In the instructions, spell out the exact bKash number, the exact amount, and the **Send Money** (not Payment) flow — guests using bKash for the first time often pick the wrong option.
- Add a sender-number sub-field even when the TrxID is required — it makes manual cross-checks faster and catches typos in the TrxID.
- Use one Custom Payment question per event. Multiple advanced-radio questions on the same form work, but the booking page becomes harder to scan.
Prerequisites
- Active Timetics AI account with permission to manage Integrations and event Questions
- Pay On-Site integration connected on the workspace — this is mandatory; the flow will not work without it
- A bKash Personal number you control and can check transactions on
- A paid event in Calendar Setup with the price you want to collect
Notes
Custom Payment answers are stored permanently on the booking record, so even after the guest reschedules or you mark the booking as paid, the original choice and submitted TrxID remain intact for your records. Because Pay On-Site treats the amount as a due balance instead of a gateway charge, Timetics AI’s revenue analytics will show the payment as off-platform until you mark it paid — which is the correct behaviour for bKash Personal, since the funds never pass through Timetics AI.