Payments & gateways
Yatra's free plugin includes PayPal and Pay Later as fully-working gateways. The other seven gateways — Stripe, Razorpay, Mollie, Paystack, Square, Authorize.Net, Bank Transfer — are part of Yatra Pro.
What's included
| Gateway | Free | Pro | Notes |
|---|---|---|---|
| PayPal | ✅ | ✅ | Simple (email + IPN) and REST modes. |
| Pay Later | ✅ | ✅ | Customer pays on a deposit + balance flow, manually managed. |
| Stripe | — PRO | ✅ | One-time + scheduled balance payments. |
| Razorpay | — PRO | ✅ | India: cards, UPI, netbanking, wallets. |
| Mollie | — PRO | ✅ | Europe: iDEAL, Bancontact, SEPA, cards. |
| Paystack | — PRO | ✅ | Africa-first; cards, transfers, mobile money. |
| Square | — PRO | ✅ | North America / UK / AU / JP cards. |
| Authorize.Net | — PRO | ✅ | US-centric cards. |
| Bank Transfer | — PRO | ✅ | Manual settlement, with bank details on the booking. |
Where to configure
Open Yatra → Settings → Payment.
The screen has three sections:
- Currency & test mode — currency, decimals, test mode master switch.
- Gateway list — every gateway as a row you can toggle on / off and reorder by drag.
- Gateway details — expand the row to see fields specific to that gateway.
Pro-gated gateways display a PRO badge until you have an active license.
Currency
Set under Settings → Currency:
- Currency — code (USD, EUR, INR, NPR, AUD, …).
- Currency position —
$199,199$,$ 199, or199 $. - Thousand separator —
,or.or space. - Decimal separator —
.or,. - Number of decimals — usually 2 (or 0 for JPY).
PayPal (free)
Two modes:
Simple mode
Easy setup — just an email address.
- Tick Enable PayPal.
- Set Mode to Simple (email + IPN).
- Paste your PayPal email.
- Tick Test mode (sandbox) until you've tested.
- Save.
Advanced (REST) mode
Full webhook support, scheduled payments. Requires PayPal developer credentials.
- In your PayPal developer dashboard, create an app and copy Client ID and Secret.
- Set up a webhook on the PayPal app pointing to
https://yoursite.com/wp-json/yatra/v1/webhooks/paypal. - Copy the Webhook ID.
- In Yatra, set Mode to Advanced (REST), paste the three values.
- Save.
Pay Later (free)
For travel agents who confirm with a deposit + remainder workflow, or who collect cash / wire / cheque outside the site.
- Tick Enable Pay Later.
- Type the Instructions customers see at checkout.
- Optionally tick Auto-confirm booking on Pay Later selection.
When customers pick Pay Later at checkout, Yatra creates a Pending booking. Once you've received the money, mark the payment Completed in Yatra → Payments.
Stripe PRO
Yatra Pro includes Stripe with first-class checkout integration plus support for the Scheduled Payments module — auto-charge the balance on a future date.
Unlock Stripe →Setup (after activating Pro):
- Tick Enable Stripe.
- Paste Publishable key and Secret key from your Stripe dashboard.
- Create a webhook in Stripe pointing to
https://yoursite.com/wp-json/yatra/v1/webhooks/stripe. - Copy the webhook signing secret (
whsec_...) into Webhook secret. - Tick Test mode, save, run a test booking with card
4242 4242 4242 4242. - Switch to live keys and run one tiny live transaction, then refund it via the Stripe dashboard to verify the full loop.
Razorpay PRO
Popular in India.
- Key ID + Key Secret from the Razorpay dashboard.
- Webhook URL:
https://yoursite.com/wp-json/yatra/v1/webhooks/razorpay. - Optional Webhook secret.
Mollie PRO
Strong in Europe (Netherlands, Belgium, Germany, France).
- API key (one key for live or test, prefixed
live_/test_). - Optional list of Payment methods (iDEAL, Bancontact, etc.).
- Optional Webhook secret.
Paystack PRO
Africa-first.
- Public key + Secret key.
- Optional Payment channels.
- Optional Webhook secret.
Square PRO
US, UK, Canada, Australia, Japan.
- Application ID, Access token, Location ID, Webhook signature key.
- Sandbox has its own credentials.
Authorize.Net PRO
US-centric; popular with established merchants.
- API Login ID, Public client key, Transaction key, Signature key.
- Sandbox URL:
https://sandbox.authorize.net.
Bank Transfer PRO
Fields:
- Bank name, Account name, Account number, Routing / SWIFT, Instructions.
These details show on the booking confirmation page. The booking is Pending until you mark it paid.
Stripe, Razorpay, Mollie, Paystack, Square, Authorize.Net, and Bank Transfer all unlock with a single Yatra Pro license.
Compare Yatra Pro plans →Deposits & flexible payments PRO
The Flexible Payments module lets you collect a deposit at booking time. Combine with Scheduled Payments to auto-charge the balance on a future date (e.g. 30 days before travel).
Unlock deposits →To configure:
- Open Yatra → Settings → Payment.
- Find the Partial / Deposit Payment section.
- Set the Deposit type (percentage or fixed) and the Default balance due (e.g. 30 days before travel).
Per-trip overrides are available in the trip's Pricing section.
The Payments admin
Open Yatra → Payments.
You'll see every payment record across all bookings, with:
- Search by payment number, customer, or transaction ID.
- Status filter — Completed, Pending, Partial, Failed, Refunded, Cancelled.
- Method filter — by gateway.
- Sort — by Date, Number, Customer, Amount, Method, Status.
Default columns: Payment, Customer, Booking, Amount, Method, Status, Date.
Add a payment manually
Click + Add New Payment to record an offline payment (cash, wire, cheque):
- Booking — searchable dropdown (search by booking code, customer name, or email).
- Payment Amount.
- Payment Method — Credit Card, Debit Card, PayPal, Bank Transfer, Cash, Check, Other.
- Payment Date — picker (can't be future).
- Transaction ID (optional).
- Notes (internal).
- Sidebar: Payment Status — Pending, Completed, Partial, Failed, Refunded.
Click Save Payment. The booking's Due Now updates instantly.
Refunds
Three patterns depending on the gateway:
| Gateway | Recommended refund flow |
|---|---|
| PayPal / Stripe | Refund in the gateway dashboard first, then mark refunded in Yatra. |
| Razorpay / Mollie / Paystack / Square / Authorize.Net | Same — gateway dashboard first, then mark refunded. |
| Pay Later / Bank Transfer | Refund manually via your bank, then mark refunded. |
To mark refunded:
- Single payment — open Payments, click the row → Edit → set Status to Refunded.
- Bulk — tick rows in the Payments list → bulk action Mark as Refunded.
When you mark refunded:
- The payment status changes.
- The booking's payment status updates accordingly.
- An invoice download is still available (now marked refunded).
- The
yatra_payment_refundedaction fires for downstream automations.
Test mode workflow
A safe way to test any gateway:
- Toggle Test mode on.
- Paste sandbox / test keys.
- Set up the gateway webhook in sandbox mode pointing to your staging URL.
- Book a trip as a fresh test customer with the gateway's test card or sandbox account.
- Verify: booking shows Confirmed, payment shows Completed, and the receipt email arrives.
- Switch to Live mode, paste live keys, change the webhook to live mode, and run one small live transaction with a real card. Refund it via the gateway dashboard.
Webhook URLs (cheat sheet)
https://yoursite.com/wp-json/yatra/v1/webhooks/paypal
https://yoursite.com/wp-json/yatra/v1/webhooks/paypal-ipn
https://yoursite.com/wp-json/yatra/v1/webhooks/stripe
https://yoursite.com/wp-json/yatra/v1/webhooks/razorpay
https://yoursite.com/wp-json/yatra/v1/webhooks/mollie
https://yoursite.com/wp-json/yatra/v1/webhooks/paystack
https://yoursite.com/wp-json/yatra/v1/webhooks/square
https://yoursite.com/wp-json/yatra/v1/webhooks/authorize-netWhat's next
- Email & notifications — what fires after confirmation.
- Pro modules — every Pro feature, including Dynamic Pricing and Flexible Payments.
- Troubleshooting.