Getting started
What is PAYWISE?
PAYWISE is a payment gateway for accepting QRIS (every bank and e-wallet) and USDT on BEP20 on your website or app. Payment statuses update automatically, and funds can be withdrawn to a bank account or a BEP20 wallet.
How do I start?
1) Sign up as a merchant. 2) Complete your business profile. 3) Add your website. 4) Create an API key (start with sandbox to test). 5) Set up your webhook. 6) Once the integration works, create a live key and start taking payments.
What is the difference between sandbox and live?
Sandbox is for testing: its payments cannot really be paid, and you choose the outcome (paid / failed / expired) yourself, with the same webhooks as live. Live processes real payments. Sandbox (pw_test_…) and live (pw_live_…) keys are separate and never see each other's transactions.
How much does it cost?
QRIS 2% and USDT 3% of each successful payment, deducted automatically before it becomes available to withdraw. No setup fee and no monthly fee. Each withdrawal has a flat fee (see Withdrawals).
Which apps can my customers pay with?
QRIS: any mobile banking or e-wallet app that can scan a QRIS code, such as GoPay, OVO, DANA, ShopeePay, LinkAja and the banks' own apps. USDT: any wallet or exchange that can send USDT on the BEP20 network (BNB Smart Chain).
Can I use one account for several websites?
Yes. Add each website on the Websites & webhook page. You do not need a separate account for each website.
Can I get a lower rate?
Yes, for high volumes. Tell us your expected daily or monthly volume on Telegram and we will send you our best offer.
Payments
What are the minimum and maximum QRIS amounts?
One QRIS payment is between Rp1.000 and Rp10.000.000.
How long is a QR code valid?
10 minutes by default. Through the API you can set a shorter time with expires_in (in seconds). After that the payment is expired and the QR code can no longer be paid.
What do the payment statuses mean?
Pending: waiting for payment. Paid: the payment is confirmed. Failed: the payment could not be processed. Expired: the time ran out before the customer paid.
The customer says they paid but the status is still pending. What now?
Open the payment in the dashboard and press Check status: PAYWISE asks the payment provider directly. If it stays pending, ask the customer for their proof of payment (reference, time, amount) and contact support with the payment's PW… reference.
How do USDT payments work?
The customer sends USDT on the BEP20 network (BNB Smart Chain) to the address shown, for the pay_amount shown (which includes the provider's network fee). Other networks such as TRC20 or ERC20 are not supported, and funds sent on another network can be lost.
What happens if a customer sends too little USDT?
The payment is not marked as paid. When its time runs out it expires, and our team follows up with the customer (top-up or refund). If your customer asks about it, contact support with the payment's PW… reference.
Why can I not create new payments right now?
PAYWISE sometimes pauses a payment method for a short time, for example during a provider or bank outage, or during maintenance. Payments already open are not affected. The System status page shows when it is back.
Settlement & available funds
When can I withdraw QRIS payments?
QRIS funds become available on this schedule (UTC+7): paid 19:00–06:59 → available at 10:30 (payments before midnight: the next day); paid 07:00–10:59 → available at 14:30; paid 11:00–14:59 → available at 18:30; paid 15:00–18:59 → available at 22:30. A merchant may have its own times; the exact time for your funds is on the Home and Withdrawals pages.
When can I withdraw USDT payments?
USDT funds are available as soon as the payment is paid.
Why are my available funds lower than my total payments?
Available funds are money after the transaction fee, whose settlement has arrived, and that has not been withdrawn yet. Money still waiting for its settlement batch is shown separately as "awaiting settlement".
Are QRIS and USDT funds combined?
No. Each method has its own available funds in its own currency: QRIS in rupiah (withdrawn to a bank account), USDT in USDT (withdrawn to a BEP20 wallet). They are never converted.
Does settlement also run on weekends and public holidays?
Yes. You can receive payments 24 hours a day, and the settlement schedule above applies every day, including Saturdays, Sundays and public holidays.
Withdrawals
What are the withdrawal limits and fees?
QRIS (to a bank account): Rp25.000 to Rp20.000.000 per withdrawal, fee Rp3.000. USDT (to a BEP20 wallet): 10.00 USDT to 10,000.00 USDT per withdrawal, fee 1.00 USDT. The amount you enter is what arrives; the fee is added on top and taken from your available funds. QRIS withdrawals of Rp5.000.000 or more have no withdrawal fee (with Partial withdraw: each part of Rp5.000.000 or more).
What if I want to withdraw more than the maximum?
Choose Partial withdraw on the QRIS withdrawal page. An amount above Rp20.000.000 is split automatically into several withdrawals (e.g. 50 million = 20 + 20 + 10 million), with a Rp3.000 fee per withdrawal.
How long does a withdrawal take?
QRIS withdrawals to a bank account are sent automatically, usually within minutes. You can follow the status under Withdrawals and you are notified when it is done.
Why was my withdrawal rejected or failed?
Most often: the account number or bank does not match, the destination account is inactive, or the BEP20 wallet address is wrong. A failed or rejected withdrawal always goes back to your available funds. Use Check account before submitting to make sure the account holder's name is right.
What is the withdrawal code?
A code sent to your email every time you request a withdrawal, as extra protection. Without it no withdrawal can be requested, even if someone got into your account.
Who in my team can withdraw?
Only the account owner and team members with the Finance role. Developers and view-only members cannot request withdrawals.
Why are withdrawals paused?
PAYWISE sometimes pauses withdrawals for a short time, for example during maintenance or a bank outage. A notice on the withdrawal page explains why. Your available funds are not affected, and you can withdraw again as soon as it is resumed.
My withdrawal fee is different from the fee shown here.
The fees in this Help Center are the standard fees. If you agreed a different rate with PAYWISE, your own fee applies, and the withdrawal page always shows it before you confirm.
Integration
How do I connect my website?
Use the REST API (full documentation on the Developers page), the WooCommerce plugin, or the PHP / Node.js SDK. Create a payment with POST /api/v1/transactions, send the customer to the payment page (checkout_url) or show the QR yourself, then wait for the webhook.
What is a webhook and how do I verify it?
A webhook is a notification PAYWISE sends to your server when a status changes (payment.paid, payment.failed, payment.expired and withdrawal.*). Every webhook is signed: the X-PAYWISE-Signature header is the HMAC-SHA256 of the raw body with your webhook secret. Always check it before fulfilling an order.
My webhook failed. What happens?
PAYWISE retries automatically several times. You can also resend it from the payment page. Make sure your server answers with HTTP 2xx and does not block PAYWISE's sender IP addresses.
How do I avoid duplicate orders?
Send a unique merchant_reference for every order. If a request with the same merchant_reference is sent again (for example after a timeout), PAYWISE returns the same payment instead of creating a new one.
How do I keep my API key safe?
Keep API keys on your server only, never in an app or in code visitors can see. Set allowed IP addresses on the API Keys page, and revoke keys you no longer use.
Is there a limit on API requests?
Yes: 60 requests per minute per API key by default. Above that, the API answers with HTTP 429; wait a moment and try again. Contact support if you need a higher limit.
Which IP addresses do webhooks come from?
They are listed on the Websites & webhook page. If your server or firewall only accepts known addresses, allow these.
Can I try the API without writing code?
Yes. Use the API Playground in the dashboard to send requests with your sandbox key, or download the Postman collection or OpenAPI file from the Developers page.
Notifications & reports
Which notifications will I receive?
For example: a payment received, a daily summary, funds becoming available, withdrawal results, your monthly statement, failed webhooks and announcements from PAYWISE. Each team member only receives what fits their role, and some notifications can be turned off on the Notifications page.
Can I get notifications on my phone?
Yes. Install the PAYWISE app straight from our website (no app store needed) and allow notifications. You are told the moment a payment arrives.
How do I download my transactions or a statement?
On the Transactions page, export your transactions as a CSV file. The Reports page shows your totals per period, with a CSV export and a monthly statement as PDF.
Account & security
Why am I asked for a code when I sign in?
PAYWISE uses two-step verification: a sign-in from a new device asks for a code sent to your email. You can mark a personal device as trusted so you are not asked every time.
Can my team use the dashboard?
Yes. Invite team members with the right role (for example finance, developer or view only). Each role can only do what it is allowed to.
I forgot my password.
Click "Forgot password?" on the sign-in page, enter your email and follow the reset link we send you.
What if I see suspicious activity on my account?
Change your password straight away, then on the security page sign out all other sessions and review the sign-in activity. Contact support about any payment or withdrawal you do not recognise.
No question matches. Try other words or contact support.
Still need help?
Our support team is on Telegram and by email. Signed-in merchants can also open a ticket under Support.
Follow the PAYWISE Telegram channel
News, announcements and maintenance schedules, straight to your Telegram.


