There is no sandbox. Vibepay charges real wallets holding real employer money, so a fake
environment would be a fake test. Use a small amount and reverse it — see
Environments for why.
1
Create a terminal in the merchant dashboard
Sign in to merchant.vibepay.mn, open Terminals, and create
one. Name it after the till it belongs to.You will get back a username and a password:
2
Check the credentials work
There is no ping endpoint, so ask for one transaction instead. A A
200 means you are
authenticated.401 means the pair is wrong, unknown, or the terminal is suspended — the response is
identical in all three cases, on purpose.3
Scan the cardholder's QR code
Ask the customer to open their Vibepay pass in Apple Wallet or Google Wallet. Scan the QR code
with whatever scanner your POS already uses and take the decoded string exactly as it comes
off the scanner. It looks like this:Do not trim it, parse it, or store it. It is single-use and it is about to be spent.
4
Charge ₮100
201 Created
id. It is the only handle you will ever have for refunding this payment.vatStatus: "pending" is normal and expected — the receipt is being minted in the background.5
Refund it
204 No Content and an empty body. The ₮100 is back in the customer’s wallet.Call it a second time and you get 409 — the charge is already reversed. That is not a
failure; it means the refund landed.Try the same thing wrong
Two failures worth causing on purpose before you ship, because both will happen in production:Next
Handle declines properly
The full status and code map, and which failures are worth retrying.
Never double-charge
How to make a timeout safe to retry.

