QR Ph
Powered by QRPh — instant bank & e-wallet payments

Accept payments with a single QRPh code

A developer-friendly payment gateway for the Philippines. Create a payment, share a hosted checkout link, and get paid the moment your customer scans with GCash, Maya, BPI, BDO, and more.

Works with your favorite banks & e-wallets

GCash • Maya • BPI • BDO • UnionBank

Everything you need to get paid

Built on Laravel with a clean merchant API, hosted checkout, and real-time status updates.

Unique payable amounts

Every payment reserves a unique centavo suffix so incoming transactions match automatically — no manual reconciliation.

Hosted checkout page

Share a secure /pay/{token} link. Customers scan the QRPh code and pay from any partner app.

Real-time confirmation

Live status via Laravel Reverb with automatic polling fallback — the success screen appears the instant payment lands.

Simple merchant API

Create, list, and retrieve payments over a versioned REST API with API-key auth and idempotency built in.

Automatic reconciliation

A scheduled reconciler matches provider transactions to pending payments and settles them without lifting a finger.

Secure by design

Money is stored as integer centavos, return URLs are validated, and only safe fields are ever broadcast.

How it works

Three steps from checkout to confirmed payment.

1

Create a payment

Call the merchant API with an amount and description to generate a hosted checkout link.

2

Customer scans QRPh

The buyer opens the link and scans the QR with any partner bank or e-wallet to pay the exact amount.

3

Get confirmed instantly

Reconciliation matches the transaction and the checkout flips to a success screen in real time.

Developer API & SDK Quickstart

Integrate QRPh in minutes

Everything you need to initiate and track QRPh payments. Use your preferred language or HTTP client with standard Bearer authentication.

1 Console

Get your API Key

Sign in to the Merchant Portal to generate a test or live Secret Bearer Key (sk_test_*).

One-time raw key reveal
2 REST Call

Create Payment

Post amount and order reference to /v1/payments with Bearer header and optional idempotency key.

Auto-assigned unique centavos
3 Customer UX

Hosted Checkout

Redirect the buyer to the returned checkout_url or render the dynamic QR payload in your app.

Ready for GCash, Maya & Banks
4 Settlement

Confirm Payment

Query GET /v1/payments/{id} to check real-time status as bank transactions reconcile automatically.

Automated matching engine
POST /v1/payments
Request Snippet cURL CLI
curl -X POST https://zer0-gateway-production-eneime.laravel.cloud/v1/payments \ -H "Authorization: Bearer sk_test_YOUR_SECRET_KEY" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -H "Idempotency-Key: idemp_order_1001" \ -d '{ "amount": 250.00, "currency": "PHP", "reference_id": "ORDER-1001", "description": "Payment for Order #1001", "metadata": { "customer_email": "buyer@example.com" } }'
Sample Response 201 Created
{
  "data": {
    "id": "pay_01j7abc123456789xyz",
    "object": "payment",
    "status": "pending",
    "amount": 25000,
    "payable_amount": 25014,
    "currency": "PHP",
    "description": "Payment for Order #1001",
    "reference_id": "ORDER-1001",
    "checkout_url": "https://zer0-gateway-production-eneime.laravel.cloud/pay/chk_01j7abc123456789xyz",
    "qr_string": "00020101021228150011ph.ppmi.p2m...",
    "metadata": {
      "customer_email": "buyer@example.com"
    },
    "paid_at": null,
    "expires_at": "2026-09-29T18:45:00.000000Z",
    "created_at": "2026-09-29T18:00:00.000000Z"
  }
}

Request Parameters (`POST /v1/payments`)

All JSON body parameters accepted by the QRPh payment creation endpoint.

Content-Type: application/json
Parameter Type Requirement Description
amount numeric Required Payment amount in PHP decimal (e.g. 250.00, minimum 1.00).
currency string Optional Three-letter ISO currency code. Defaults to PHP.
reference_id string Optional Your internal invoice or order identifier (e.g. ORDER-1001).
description string Optional Customer-facing checkout description displayed on the hosted payment page.
metadata object Optional Key-value JSON metadata dictionary for custom merchant tracking.

Ready to integrate or test?

Open the interactive checkout demo or sign in to your merchant console to generate API keys.