Skip to content

How to Set Up the Payment Portal

Give your subscribers a self-service payment page where they can check their balance and pay via GCash QR, bank transfer, or other channels. ISP-OS automatically allocates payments and reconnects suspended service within 30 seconds.

How NextPay works

NextPay is a Merchant of Record (MoR) provider. This means NextPay is the legal payment processor, not your ISP. Your ISP operates as a sub-merchant under NextPay's account.

What this means in practice:

  • NextPay collects the payment from your subscriber, takes a processing fee (default 2% for QRPh P2M), and settles the net amount to you.
  • You don't handle PCI compliance or payment regulations. NextPay does.
  • Your subscriber sees the fee. The payment page shows a transparent fee breakdown: base amount + processing fee = total charged. Your ISP receives exactly the base amount.
  • NextPay v1 API is used. Payment notifications are delivered automatically with retries if your server is temporarily down.

TIP

The processing fee is paid by the subscriber on top of their bill. If a subscriber wants to pay ₱1,000, they'll be charged ₱1,020.41 (with a 2% fee). Your ISP receives exactly ₱1,000. This is called the "reverse-split" algorithm.

Prerequisites

  • A NextPay merchant account with v1 API access
  • At least one subscriber in ISP-OS

Steps

1. Configure NextPay credentials

Navigate to Settings > Payments. Enter your NextPay credentials:

  • API Key -- Your NextPay v1 API key
  • Secret Key -- Your NextPay v1 secret key
  • Webhook Secret -- Used to verify incoming payment notifications (generated by NextPay)

Click Save and then Test Connection to verify. ISP-OS will fetch your merchant fee rate and create your sub-merchant account if it doesn't exist yet.

NextPay API key configuration

2. Configure the webhook endpoint

ISP-OS needs real-time payment notifications from NextPay. In your NextPay dashboard:

  1. Go to Settings > Webhooks
  2. Add a new webhook endpoint: https://your-domain.com/api/webhooks/nextpay
  3. Select the payment.completed event
  4. Copy the Webhook Signing Secret and paste it into the ISP-OS Webhook Secret field from Step 1

NextPay automatically retries failed notifications. If the same payment notification arrives more than once, ISP-OS handles it safely without double-counting.

3. Enable the payment portal

Back in Settings > Payments, toggle Payment Portal to enabled. Click Save.

Payment portal settings

Each subscriber has a unique, permanent payment portal URL:

https://your-domain.com/c/{shortId}

The shortId is a 12-character identifier assigned when the subscriber is created. It never changes.

Find this link on the subscriber's detail page under Payment Link. Ways to distribute it:

  • SMS -- Include {payment_link} in collection notification templates. It's sent automatically with reminders and warnings.
  • Printed receipt -- Add the short link or QR code to receipts.
  • Direct share -- Copy the link and send it via Viber, Messenger, or text.

Subscriber detail page showing payment link

5. Verify the subscriber experience

Open a subscriber's payment link in a browser to see what they see:

  1. Account page shows the subscriber's name, plan, status (active, overdue, or suspended), and outstanding balance.
  2. If the subscriber is suspended, the default payment amount is the restoration amount (only overdue invoices past grace period, the minimum to get back online). Otherwise, it defaults to the full outstanding balance.
  3. The subscriber enters an amount and clicks Pay Now. A QR code is generated by NextPay.
  4. The fee breakdown is shown transparently: base amount + processing fee = total charged.
  5. The subscriber scans the QR code with their GCash or banking app and completes payment.
  6. After payment, the page shows a green "Payment Successful" confirmation.

Subscriber payment portal view

INFO

The QR code expires after 5 minutes. If it expires, the subscriber can generate a new one. There is also a "Check Payment Status" button to poll for confirmation if they completed payment but the page hasn't updated.

What happens after a subscriber pays

Once the subscriber completes payment, everything is automatic:

  1. ISP-OS receives the payment confirmation from NextPay.
  2. The payment is applied to the subscriber's oldest unpaid invoice first. If it covers more than one invoice, it continues down the list.
  3. If the subscriber overpays (e.g., pays ₱2,000 on a ₱1,500 bill), the extra goes to their credit balance and applies to next month's bill.
  4. If the subscriber was suspended and the payment covers what they owe, their internet is reconnected automatically.

Payment to reconnection takes under 30 seconds. No manual intervention from your team.

Cash and in-person payments

For payments made in cash, check, or in person at your office, you can record them manually from the subscriber's detail page. Click Record Payment, enter the amount and reference, and ISP-OS handles the rest. Manual payments trigger the same auto-reconnect if the subscriber was suspended.

Result

Subscribers visit their personal payment link to view their account and pay. NextPay collects the payment and settles to your ISP after deducting the processing fee. Payments are automatically recorded, invoices are updated, and suspended subscribers are reconnected without manual intervention.

Was this helpful?

Built for Philippine ISP resellers.