Skip to main content

XPAY Merchant — Driver's Guide

Who this is for

This guide is for taxi and cab drivers (and other merchant operators) who use the XPAY Merchant app to accept card payments from passengers. It covers everything from first sign-in to handling refunds, written in plain, step-by-step language.

You will need: a merchant account provided by your company admin, and the XPAY Merchant app installed on your phone.

Download the app

1. Getting started​

Signing in​

Sign-in screenLogin error

When you open the app for the first time, you will see the sign-in screen. You need three pieces of information — your company admin should have given these to you:

  1. Merchant ID — the short name for your company (e.g. vinasun, mailinh).
  2. Username — your personal login name.
  3. Password — your login password.

Fill in all three fields and tap Sign in.

note

If you see an error after tapping Sign in, double-check your Merchant ID and username — they are case-sensitive. If you still cannot sign in, contact your company admin.

Changing language

The default language follows your device's language setting. You can tap the language button in the top-right corner to switch between English and Tiếng Việt. You can also change this later in your profile settings.

Verify your driver information​

Profile — driver informationUpdate driver info

Your driver information (phone, vehicle, plate number, license) is pre-filled by your company admin when they create your account. After your first sign-in, go to the Profile tab (bottom navigation) to double-check that everything is correct.

If anything needs updating:

  1. Tap the pencil icon next to "Driver Information".
  2. Review and update the fields:
    • Phone number — your contact number.
    • Default vehicle — your car model (e.g. "Toyota Vios").
    • License plate — your vehicle plate number (e.g. "51A-123.45").
    • Driver license number — your driving license ID.
  3. Tap Save.
Why the license plate matters

Your license plate is automatically filled into every new payment you create. Make sure it is correct so you do not have to fix it on every trip.


2. Taking a payment​

This is the action you will use most — collecting payment from a passenger at the end of a trip.

Step 1 — Enter the trip charges​

Home screenCreate payment formChoose transaction type
  1. From the Home screen, tap the Create transaction card.
  2. Enter the fare — the main meter amount.
  3. If there is an extra charge (tolls, airport surcharge, waiting fee, etc.), enter it in the sub-fee field. The app adds both together automatically.
  4. Fill in the trip details:
    • Reference — your trip or booking number (required).
    • Pick-up location — where you picked up the passenger.
    • Destination — where you dropped them off.
    • Plate number — pre-filled from your profile. Change it only if you are driving a different vehicle today.

Step 2 — Read the card​

Tap the Charge button at the bottom. The app will ask you how to read the passenger's card. There are three options:

Manual card entryQR scan cameraNFC tap screen
MethodWhen to useWhat to do
Tap (NFC)The passenger has a physical card and you are using an Android phone with NFCHold the card flat against the back of your phone for 2–3 seconds until the app finishes scanning
Scan (QR)The passenger shows a QR code on their phonePoint your camera at the QR code; it reads automatically
Enter manuallyNFC is not available or the QR code will not scanType the 16-digit number printed on the card
note
  • Tap (NFC) is currently only supported on Android devices. If you are using an iPhone, use Scan or Enter manually instead.
  • If your Android phone does not have NFC or NFC is turned off, the app will tell you. Go to your phone's Settings and enable NFC, then try again.

Step 3 — Customer confirms​

After the card is read, the passenger must confirm the payment on their end. Depending on the card settings, they will either:

  • Receive an SMS code (OTP) and enter it on your screen, or
  • Enter their PIN code (a fixed secret code assigned to their card).
OTP verificationPIN verification
warning

Do not close the app or go back while waiting for the passenger to enter their code — the payment may be cancelled.

Step 4 — Done​

Payment successful

When the payment succeeds, you will see a confirmation screen showing the amount, date, time, and a booking reference. The trip is complete — you can show this screen to the passenger as a receipt.

If the payment is declined, the app will show an error message explaining why (for example: insufficient balance, card frozen, or wrong verification code). See Troubleshooting for common reasons.


3. Customer verification​

During a payment, after the card is read, the passenger must verify their identity. This section explains what happens on your screen.

OTP (one-time code via SMS)​

OTP verification
  1. The app shows a code entry screen with a countdown timer.
  2. The passenger receives a 6-digit code by SMS on their phone.
  3. They tell you the code (or enter it themselves on your screen).
  4. The app checks the code and either approves or declines.

If the code is wrong, the passenger can try again. If the timer runs out, tap Resend code to send a new one.

PIN (fixed secret code)​

PIN entryPIN invalid code
  1. The app shows a PIN entry screen.
  2. The passenger enters their secret code (the one assigned to their card).
  3. The app checks it and either approves or declines.
Limited attempts

Both OTP and PIN have a limited number of tries. If the passenger enters the wrong code too many times, the card will be locked and the payment will be declined. The passenger must contact their manager or administrator to unlock the card before they can pay again.

Abandoned verification​

If you need to leave the verification screen before the passenger has entered their code:

  • The app will ask: "Are you sure you want to leave?"
  • If you leave, the payment stays in Pending status. You can continue it later from the transaction history (see Viewing your transactions).

4. Viewing your transactions​

Tap the Transactions tab in the bottom navigation to see all your past payments.

The transaction list​

Transaction list

Each card shows:

  • Pick-up and drop-off locations (for taxi transactions), or the reference number if locations are not available.
  • A status tag (color-coded).
  • The amount and currency.
  • The date and time of the payment.

Filtering​

Use the filter bar at the top to narrow the list:

  • Tap a status chip (All, Approved, Pending, Declined, etc.) to show only that type.
  • Tap the filter icon to open advanced filters — you can choose a date range and/or a status.
  • Clear filters by tapping the "×" next to an active filter, or "Clear all".
Filtered transaction listAdvanced filters

Payment statuses​

StatusColorWhat it means
PendingAmberWaiting for the passenger to finish verification — you can continue this
ApprovedGreenPayment succeeded — money was taken from the passenger's card
SuccessGreenPayment completed and settled to the company account
Partial paymentAmberOnly part of the payment was captured (the rest is unprocessed)
DeclinedRedPayment was rejected (wrong code, insufficient balance, card frozen, etc.)
VoidedGreyPayment was cancelled before it was settled
ExpiredGreyPayment timed out and is no longer valid

Opening a transaction​

Transaction detailsPending transaction — continue verificationDeclined — per-transaction limit

Tap any transaction card to see its full details — trip information, fare breakdown, and refund history.

tip

If a payment is still Pending, this means the passenger has not yet entered the verification code and the session is still within the allowed time. You will see a "Continue payment" button. Tap it to continue the payment verification.

Declined transactions show the specific reason why the payment was rejected:

Declined — insufficient fundsDeclined — corporate balanceDeclined — verification expired
info

Refund status is not shown on the transaction list. To see refund details, tap a transaction to open its details page — the refund history is at the bottom.


5. Refunding a payment​

Sometimes you need to give money back to a passenger — for example, you charged the wrong amount, or the passenger disputes the fare.

warning

Each payment can only be refunded once, and a refund cannot be undone. Once you confirm, the money goes back to the passenger's card immediately. Double-check the amount before confirming.

How to refund​

Refund formRefund confirmation
  1. Open the transaction you want to refund (from the Transactions tab).
  2. Tap the Refund button at the bottom of the screen.
  3. Enter the refund amount:
    • For a full refund, enter the total amount.
    • For a partial refund (e.g. you overcharged by 20,000), enter only the amount to return.
  4. Optionally enter a reason (e.g. "Overcharged" or "Wrong amount").
  5. Tap Next — the app shows a confirmation screen with a summary:
    • Original amount
    • Refund amount
    • Remaining amount (what the passenger still pays)
    • Trip details (pick-up, destination, plate number, date)
  6. Review the summary. If something is wrong, tap Back to edit.
  7. Tap Confirm refund.

After the refund succeeds, you will see a refund confirmation screen. The transaction details page will now show a refund history section at the bottom.

Refund successRefund history in details

Refund rules​

  • You can only refund a payment that has been captured (completed).
  • Each payment can only be refunded once — make sure to enter the correct amount the first time.
  • The refund amount cannot exceed the captured amount.
  • If the amount is too large, the app will show an error message.

6. Your profile & settings​

Tap the Profile tab to manage your account.

Profile screen

Driver information​

Your driver details (phone, vehicle, plate number, license) appear at the top. Tap the pencil icon to update them.

License plate auto-fill

When you update your license plate here, all future payments will automatically use the new plate number — no need to type it again. If the plate number field is missing (shows an orange "Missing" badge), you will have to enter it manually every time you create a payment.

Changing your password​

Change password
  1. In the Profile tab, tap Change password under the Account section.
  2. Enter your current password.
  3. Enter your new password and confirm it.
  4. Tap Save.
note

If you forget your password, contact your company admin — they can reset it for you from the corporate portal.

Changing the language​

Language picker
  1. In the Profile tab, tap Language under the Preferences section.
  2. Choose English or Tiếng Việt.
  3. The app switches immediately.

Signing out​

Tap the Sign out button at the bottom of the Profile screen. The app will ask you to confirm before signing out.


7. Troubleshooting​

"No internet connection"​

No internet connectionUnable to connect to server

A banner appears at the top of the screen when your phone loses its data connection. You cannot create payments or load transactions while offline.

What to do: Check your mobile data or Wi-Fi, then retry your previous action.

"Session expired — please sign in again"​

Session expired

Your login session has timed out (this happens after a long period of inactivity).

What to do: The app will take you to the sign-in screen. Sign in again with your credentials. Any payment that was in progress is not lost — completed payments are already recorded, and pending ones can be resumed after you sign in.

"NFC not supported on this device"​

NFC not supported

Your phone does not support NFC.

What to do: Use Scan (QR) or Enter manually instead.

"NFC not enabled"​

NFC not enabled

Your phone has NFC but it is currently turned off.

What to do: Tap "Open Settings" on the dialog to go to your phone's NFC settings and enable it, then try again.

"Payment declined"​

Payment declinedPayment could not be processed

The payment was rejected. Common reasons:

No.ReasonWhat it meansWhat to do
1Insufficient balanceThe passenger's card does not have enough moneyAsk them to top up, use a different card, or accept a different payment method
2Card inactiveThe card has been issued but not yet activatedThe passenger needs to contact their manager or administrator to activate it
3Card frozen / blockedThe card has been temporarily blockedThe passenger needs to contact their manager or administrator to resolve this issue with their card
4Card expiredThe card is past its expiry dateThe passenger needs to contact their manager or administrator for a new card
5Per-transaction limit exceededThe amount exceeds the per-transaction spending limitSplit the amount, or ask the passenger to contact their manager or administrator to raise the limit
6Daily limit exceededThe passenger has spent their daily limitAsk them to pay another way or use a different card
7Monthly limit exceededThe passenger has spent their monthly limitAsk them to pay another way or use a different card
8Too many wrong attemptsThe card was locked after too many wrong OTP/PIN entriesThe passenger must contact their manager or administrator to unlock the card
9Wrong verification codeThe OTP or PIN was entered incorrectlyTry the payment again — the passenger will get a new code
10Verification expiredThe verification session timed outStart a new payment from the beginning
11Service errorSomething went wrong on our endWait a moment and try again. If it keeps failing, contact support

"App update available"​

Optional update — with Later buttonRequired update — Update now only

A new version of the app is available. There are two cases:

  • Required update: The app will not let you continue until you update. This usually happens when there are important security or payment changes. You must update to continue using the app.
  • Optional update: The app shows a "Later" button — you can skip and keep using the current version. However, it is recommended to update soon for the best experience.

How to update: Tap the update button — the app will open the App Store or Google Play for you to install the new version. This usually takes less than a minute.


Quick reference​

I want to...Go to...
Collect a paymentHome → Create transaction
See my past paymentsTransactions tab
Refund a passengerTransactions → tap the payment → Refund
Continue a pending paymentTransactions → tap the pending payment → Continue payment
Update my plate numberProfile → Driver Information → pencil icon
Change my passwordProfile → Account → Change password
Switch languageProfile → Preferences → Language
Sign outProfile → Sign out