Already using the official Vibepay POS app on a phone or tablet? You do not need this API — the
app talks to it for you. This is for merchants integrating Vibepay into their own software.
How a payment works
There is no card to swipe and no PIN pad. The cardholder’s card lives inside Apple Wallet or Google Wallet as a pass, and that pass displays a QR code that changes after every payment. Your terminal scans it and posts it here. The important part of that diagram is the dotted line at the bottom. The VAT receipt is issued after the payment, not during it, so the charge response can never carry a receipt number. That is a deliberate design decision and it shapes how you should build your integration — see VAT receipts.The whole API
Three endpoints. That is the entire merchant surface.Charge
POST /v1/transactions/charge-by-token — scan a code, take the money.Refund
POST /v1/transactions/{txID}/reverse — give all of it back.History
GET /v1/transactions — what this terminal has taken.What to know before you start
Amounts are whole tugrik — there are no minor units
Amounts are whole tugrik — there are no minor units
₮1,500 is
1500, not 150000. Vibepay has no concept of a fractional tugrik anywhere. If you
are porting an integration that used cents or möngö, this is the first thing to fix.This API cannot be called from a browser
This API cannot be called from a browser
It sends no CORS headers, so a web page’s
fetch() will be blocked by the browser. Call it
from your server or from native POS software. This is intentional: your terminal password
would otherwise have to live in JavaScript that anyone can read.Refunds are all-or-nothing
Refunds are all-or-nothing
You can reverse a charge in full, at any time, once. There is no partial refund, no
time limit, and no separate void.
Declines return JSON — every other error returns plain text
Declines return JSON — every other error returns plain text
This trips up most integrations on day one. A
422 gives you a JSON body with a stable
code; a 404, 409 or 500 gives you a bare line of English text. Branch on the HTTP
status first. Errors and declines has the full map.Not covered here
Vibepay’s employer-facing endpoints — creating wallets, issuing cards — live on the same host but use a completely different authentication scheme and are not part of a merchant integration. If you are a merchant, the three endpoints above are everything you can call.Take your first payment
Five steps from credentials to a live charge and a refund.

