Join our Discord for support and the latest updates → discord.gg/M48jfjrykS
PayNow Gateway for Paymenter
Accept payments through PayNow.gg inside your Paymenter billing panel — fully automatic, no webhook setup needed.
- Paymenter — https://paymenter.org (latest version recommended)
- PayNow.gg account — https://paynow.gg (free to create)
- PHP 8.1 or higher
- Your Paymenter instance must be publicly accessible (required for webhook delivery)
Step 1 — Create your PayNow store
- Go to paynow.gg and create a free account
- When creating your store, select Third Party as the store type — this is required for API-based integrations like Paymenter
- Complete the store setup and take note of your Store ID
Step 2 — Upload the files
Extract the downloaded zip and upload the PayNow folder into your Paymenter installation at:
extensions/Gateways/PayNow/
The folder must contain both PayNow.php and routes.php.
Step 3 — Get your PayNow credentials
- Log in to your PayNow dashboard at dashboard.paynow.gg
- Store ID — found in the URL when you open your store, or under Settings → General
- API Key — go to Integrations → API Keys and create a new key. It will start with pnapi_v1_
Step 4 — Enable the gateway in Paymenter
- Log in to your Paymenter admin panel
- Navigate to Admin → Gateways
- Find PayNow Gateway in the list and click Enable
- Enter your Store ID and API Key in the provided fields
- Leave Webhook Secret completely blank — it is created and saved automatically on the first payment
- Click Save
That's it. The gateway is fully active and ready to accept payments.
From the customer's perspective:
- Customer views an unpaid invoice in Paymenter and clicks Pay Now
- They are redirected to a secure PayNow hosted checkout page
- Customer completes payment on the PayNow checkout
- PayNow sends a webhook to your server confirming the payment
- The invoice in Paymenter is automatically marked as Paid
- Customer is redirected back to the invoice page showing the paid status
Behind the scenes:
- On first payment, a webhook is automatically registered with PayNow — no manual setup required
- A unique PayNow product is created for each invoice at checkout time
- A PayNow customer profile is created or reused for each buyer (matched by email)
- After payment is confirmed, the temporary product is automatically deleted from your PayNow store to keep it clean
- If a customer abandons a checkout and returns, any leftover product from before is cleaned up first
Zero-config webhook setup
The gateway automatically registers, configures, and stores the webhook secret on first use. You never touch the PayNow webhook settings manually.
Triple-fallback invoice matching
Payments are matched to invoices using three independent methods in sequence:
- Order metadata (primary)
- Product name prefix parsing (secondary)
- Cache lookup (tertiary)
100% coupon / free order support
If a coupon reduces the invoice total to $0, the gateway uses the subtotal amount to correctly mark the invoice as paid in Paymenter — no manual intervention needed.
Secure webhook verification
All incoming webhook requests are verified using HMAC-SHA256 with Base64 encoding, exactly matching PayNow's signing specification. Any request that fails verification is rejected with a 401 response.
Automatic store cleanup
Temporary products created at checkout are deleted after payment completes or after an abandoned session. Your PayNow product catalog stays clean at all times.
Webhook not receiving payments?
- Make sure your Paymenter URL is publicly accessible (not localhost or behind a private firewall)
- Check that the webhook was registered: go to PayNow → Integrations → Webhooks — you should see an entry pointing to your Paymenter domain
- If the webhook secret appears blank in Paymenter settings, trigger a test payment to auto-register it
Invoice not being marked as paid?
- Check your Paymenter Laravel log under storage/logs/ for any PayNow log entries
- Ensure your API Key is correct and has not been revoked in PayNow
- Confirm the webhook is subscribed to order completion events
Getting a 500 error after installing?
- Verify both PayNow.php and routes.php are present inside extensions/Gateways/PayNow/
- Run the following from your Paymenter root:
php artisan route:clear && php artisan cache:clear - Check that your PHP version is 8.1 or higher by running:
php -v
| Field | Required | Description |
|---|---|---|
| Store ID | Your PayNow Store ID — found in the dashboard URL or under Settings → General | |
| API Key | Your PayNow API Key starting with pnapi_v1_ — create under Integrations → API Keys | |
| Webhook Secret | Auto-generated and saved on first payment. Never fill this in manually. |
Need help? Join our Discord!
discord.gg/M48jfjrykS
Compatible with Paymenter latest · Powered by PayNow.gg · Built by CrownPlugins
discord.gg/M48jfjrykS
Compatible with Paymenter latest · Powered by PayNow.gg · Built by CrownPlugins
