This page extends the Embedded QR Overview. If you haven’t set up embedded QR payments yet, start there first.Documentation Index
Fetch the complete documentation index at: https://docs.hitpayapp.com/llms.txt
Use this file to discover all available pages before exploring further.
What is Borderless QR?
Once your base integration is in place, Borderless QR lets you accept payments from international customers using their local payment methods. The API automatically converts the amount and returns the converted values :qr_amountqr_currencyfx_rate
Live Demo
Try the interactive demo to see Borderless QR in action — including real-time currency conversion display.What Changes From the Overview
The Overview covers same-currency payments where the merchant and customer share the same currency. Borderless QR automatically converts the amount and generates payment codes in the customer’s local currency, enabling seamless cross-border transactions.| Feature | Overview (same-currency) | Borderless QR (cross-border) |
|---|---|---|
| Currency | Merchant = customer | Merchant currency differs from payment method |
| Exchange Rate | N/A | Mid-market rate at transaction time |
| Response Fields | qr_code, qr_code_expiry | Adds qr_amount, qr_currency, fx_rate |
| Use Case | Domestic payments | International tourists and cross-border customers |
Supported Payment Methods
The following payment methods support cross-border QR payments:| Payment Method | Code | Native Currency | Country |
|---|---|---|---|
| PayNow | paynow_online | SGD | Singapore |
| QRPH | qrph_netbank | PHP | Philippines |
| GCash | gcash_qr | PHP | Philippines |
| PromptPay | opn_prompt_pay | THB | Thailand |
| TrueMoney | opn_true_money_qr | THB | Thailand |
| QRIS | doku_qris / ifpay_qris | IDR | Indonesia |
| Touch ‘n Go | touch_n_go | MYR | Malaysia |
| DuitNow | duitnow | MYR | Malaysia |
| ShopeePay | shopee_pay | Various | Multiple |
| VietQR | vietqr_zalopay | VND | Vietnam |
| ZaloPay | zalopay | VND | Vietnam |
paynow_online (SGD) will get standard QR behavior, but using gcash_qr (PHP) will trigger Borderless QR with currency conversion.How It Works
Select a cross-border payment method
gcash_qr for Philippine customers)System detects currency mismatch
Automatic currency conversion
API Request
Use the same endpoint as Domestic QR: POST /v1/payment-requests The only difference is the payment method you specify. When you use a cross-border payment method, the system automatically enables Borderless QR behavior.Request Parameters
| Parameter | Type | Description |
|---|---|---|
| amount | string | Required. The amount in your merchant currency. |
| currency | string | Required. Your merchant currency (e.g., “sgd”). |
| payment_methods[] | array | Required. Specify exactly one cross-border payment method (e.g., ["gcash_qr"]). Multiple methods are not supported for QR generation. |
| generate_qr | boolean | Required. Must be true to generate the QR code. |
| name | string | Optional. Customer name. |
| string | Optional. Customer email. | |
| phone | string | Optional. Customer phone number. |
| purpose | string | Optional. Payment purpose. |
| reference_number | string | Optional. Your reference number. |
Example Request
A Singapore merchant (SGD) accepting payment from a Philippine customer via GCash (PHP):API Response
The response includes additional fields inqr_code_data for cross-border payments:
Example Response for Borderless QR Payment Request
Example Response for Borderless QR Payment Request
Borderless QR Response Fields
Theqr_code_data object includes these additional fields for cross-border payments:
| Field | Type | Description |
|---|---|---|
qr_amount | string | The converted amount in the customer’s local currency |
qr_currency | string | The customer’s local currency code (e.g., “php”) |
fx_rate | string | The exchange rate used for conversion |
Displaying Currency Conversion
When presenting the QR code to your customer, display the currency conversion details to build trust and ensure transparency.Response Fields to Use
| Field | Example | Description |
|---|---|---|
amount + currency | ”10.00” + “sgd” | Your original charge amount (merchant currency) |
qr_code_data.qr_amount | ”455.70” | Converted amount the customer will pay |
qr_code_data.qr_currency | ”php” | Customer’s local currency |
qr_code_data.fx_rate | ”45.57” | Exchange rate used (1 merchant currency = X local currency) |
Recommended Display Format
Show customers both amounts and the exchange rate before they scan:Code Examples
qr_amount, qr_currency, and fx_rate fields only appear for cross-border payments. For same-currency payments, display only the original amount.Webhook Handling
Webhook handling is identical to the Overview. The payment amount in the webhook payload will be in your merchant currency (the original amount you requested).FAQs
Why am I getting 'The selected payment method is unavailable for your account or the currency is invalid'?
Why am I getting 'The selected payment method is unavailable for your account or the currency is invalid'?
How is the exchange rate determined?
How is the exchange rate determined?
What fees apply to Borderless QR payments?
What fees apply to Borderless QR payments?
How do refunds work?
How do refunds work?
What if my currency matches the payment method?
What if my currency matches the payment method?
qr_amount, qr_currency, and fx_rate fields.Do I need to calculate currency conversion myself?
Do I need to calculate currency conversion myself?
What is the payout period for cross-border payments?
What is the payout period for cross-border payments?
Production Checklist
Production Checklist
- Change the base URL to
https://api.hit-pay.com/v1/ - Enable cross-border payment methods in your production dashboard
- Update API keys and salt values from production
- Register webhook URLs in production
- Test the full payment flow end-to-end