Under Maintenance
kx-pay is currently undergoing scheduled maintenance. We'll be back shortly. Thank you for your patience.
Admin sign in
kx-pay is currently undergoing scheduled maintenance. We'll be back shortly. Thank you for your patience.
| Action | Brand | Created | Ticket | Username | Name | ✓ | Bank | Account | Amount | Fee | Bal. Before | Bal. After | Status Transfer | Ticket Status | Transfer Completed | Engine Handler | Runtime | Provider | Provider Acct | Prov. Bal. Before | Prov. Fee | Prov. Bal. After | Profit | Internal Ref | Provider Ref |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Loading… | |||||||||||||||||||||||||
| Bank | Min (IDR) | Max (IDR) | Max Process | Player Fee | Fee |
|---|
Not in use. They cannot take work and are not counted in the balance totals above. Press Restore to move one back to the list above — it comes back switched OFF, so you decide when it starts working again.
| Action | Receipt / Log | Created | Type | Brand | Ticket | Username | Name | Bank | Account | Amount | Fee | Device | Balance Before | Balance After | Status | Completed | Agent | Note |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Loading… | ||||||||||||||||||
When a leased account's balance drops below this, the agent lets it go and leases the next best account. An agent can override this with its own value.
| Date / Time | Account | Provider | Status | Expired at | Origin | Source | KX-PAY Bank | Amount | Note | Added by | Actions |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Loading… | |||||||||||
| Date/Time | Type | Bank | Net Amount | Fee | Total Amount | After Balance | Counterparty | Note | By | |
|---|---|---|---|---|---|---|---|---|---|---|
| Loading… | ||||||||||
One price list for every provider. These fees are charged to the brand whether the payout goes through PKXPAY (myBCA) or a regular provider (PJVID etc.). Other banks (BNI, MANDIRI, BRI, SEABANK, JAGO, BSI, ALLOBANK) are always charged BI-Fast 2,500 + the add-on; only PKXPAY during an RTOL maintenance window bills 6,500 + add-on instead. Margin protection still guards routing for the regular providers. Per-brand overrides keep winning over these defaults.
Used only if a transaction's destination bank is missing from the per-bank table above (which shouldn't happen for the 5 standard e-wallets).
Daily IDR ceiling enforced per provider account. When today's spent reaches 90% of this limit, the account stops claiming new transactions for the rest of the day (resets at midnight Asia/Jakarta) and other accounts pick up the slack. One value is applied to every account of that provider — no per-account override.
Note (mig 192+): since the Request Top-up modal
now has a per-request Provider picker, that picker overrides this setting.
This value only kicks in as a fallback — used when a request routes to
Old flow (provider VA) AND no specific provider was picked in the modal.
It has no effect on the New flow (KX-PAY Direct) deposits — those always
go to your KX-PAY BRI regardless of what's selected here.
DGFID uses unique-amount transfers (server-to-server).
CPID uses Virtual Accounts (handled by the provider browser userscript).
Flipping this only affects requests submitted after the change — in-flight requests keep
their original provider.
Loading…
Controls the deposit flow for brands set to "Auto (use global setting)" on the Brands page.
Old flow (Provider VA): brand deposits go to PDGFID/PJVID VA. Provider saldo auto-funds from brand deposits.
New flow (KX-PAY Direct): brand deposits go to KX-PAY BRI. Provider saldo is NOT auto-funded — top up manually via the 🏦 PDGFID Top-up button.
Brands pinned to a specific flow on their Brand page ignore this setting. Flipping only affects NEW requests.
Loading…
Most providers have a nightly cut-off, but PKXPAY (the myBCA bot) does not. With Force PKXPAY window ON: new transactions pause at Pause starts, intake resumes at PKXPAY takes over with every payout and name check handled by PKXPAY alone (queued), and at All providers back normal routing resumes by itself. With it OFF: everything simply pauses from Pause starts to All providers back — the original behavior.
Loading…
Loading…
When ON, every 5 minutes a Cloudflare cron checks
how many transactions have been in pending longer than
the configured age. If the count is at or above the threshold, a
Telegram message is sent to the configured chat. Re-alerts every
repeat minutes while the issue persists. A
recovery message is sent automatically when the queue clears.
Editable by super_admin only.
To get started: create a bot via
@BotFather
on Telegram (it gives you a bot token), then start a chat with
@userinfobot
to get your chat ID. Paste both below and click Test.
Loading…
The largest value staff may type in the MAX (IDR) column on the Automation page. One cap for all e-wallets, one for all banks. (MAX PROCESS is unaffected.)
When ON, any transaction that has been in
pending status for longer than the configured number
of hours will be automatically cancelled by a job that runs
every hour at the top of the hour. Only
pending transactions (never claimed by any engine)
are touched — processing, pending_approval,
and manual_check are left alone. No brand wallet refund
is needed because pending transactions have NOT been
debited yet.
Loading…
Loading…
Loading…
When the manual primary provider's active accounts collectively have their highest balance below this number, routing fails over to the Manual secondary picked in the per-wallet table below (or to auto-cheapest if no secondary is set). Set to 0 to disable this check entirely.
Banks the myBCA bot is allowed to pay for PKXPAY (myBCA → other bank, plus BCA→BCA). The myBCA term is what the bot types into myBCA's “Select Bank” box — it must match how myBCA labels that bank. Disable a bank to stop PKXPAY handling it. This list does not switch routing on — a bank only pays through PKXPAY once its Payout Routing points to PKXPAY.
Audit trail of changes to the values above.
Which provider sends each payout, and which provider verifies each name — moved out of Settings so routing lives in one place.
For each wallet, choose how kx-pay decides which provider sends the transfer. Auto cheapest = use the provider with the lowest current fee (auto-failover to the next-best if the cheapest one is offline / over-margin). Manual = pin a specific primary provider; if that primary becomes unhealthy or its active accounts drop below the minimum balance (set on the Settings page), routing tries the Manual secondary next, then falls back to auto-cheapest. Weighted = split successful transfers across providers by the percentages you set (e.g. PDGFID 60% / PJVID 40%) using a smooth round-robin. On failure, the transaction cascades to the next provider in the weighted pool. Optional daily success ceiling per provider caps how many transfers each one can complete per day. Amount split + volume = amounts up to the limit you set (e.g. Rp 300,000) are shared by rupiah volume using the weights (same as Weighted by volume); bigger amounts go only to the provider you pick — if it is offline or out of balance, big withdrawals wait for it.
Banks are routed separately from e-wallets because each bank can only be paid by the providers that actually support it. The Manual primary dropdown therefore shows only that bank's valid providers. Every bank can be paid by PJVID or PKXPAY (the myBCA bot). Auto = let kx-pay pick the default supported provider (PJVID). Manual = pin a specific provider (and an optional secondary that is tried if the primary is offline).
A bank announced BI-Fast maintenance? Add a window here: while it is
active, every brand's PKXPAY payout to that bank is forced to the chosen
method (normally Online/RTOL, fee Rp 6,500 follows automatically).
When the window ends, payouts return to each brand's own method by themselves, and the
finished window disappears from this list. You can add several windows (e.g. SEABANK
02:00–05:00 and BRI 03:00–05:00 on the same day). Times are WIB.
Transfers already running keep the method they started with.
★ ALL BANKS (first in the Bank list) is for when myBCA takes BI-Fast
down for everything — one window instead of twenty. It covers
every bank except BCA; BCA transfers and e-wallet top-ups (DANA, GOPAY,
OVO, ShopeePay, LinkAja) have no BI-Fast/RTOL method at all, so they are never affected.
If an ALL BANKS window and a single-bank window are active at the same
time, the ALL BANKS window wins — so remove it first if you need
one bank to behave differently.
Loading…
PKXPAY (myBCA) checks the name through your own myBCA bot (no money moves, free). Because the bot can be closed or waiting for an OTP, PKXPAY as Main needs a Backup: when the bot is not ready, new checks go straight to the Backup, and any check the bot does not pick up within 3 minutes is moved to the Backup automatically.
Live product status, prices and active product codes for every payout provider — moved out of Settings to keep both pages easy to scan.
Live status of every product at the JVID provider: OPEN = working, GANGGUAN = provider-side disturbance, KOSONG = out of stock. The engine refreshes this automatically every ~10 minutes. Products used by your transfer wallets are listed first. If transfers fail, check here first — and if the Active product is closed, switch the Active code on the product-codes settings.
Loading…
Live status and price (harga) of POKID's open-denom products: OPEN = working, TUTUP = closed / disturbed. The engine refreshes this automatically every ~10 minutes. The products your DANA / GOPAY / OVO wallets use are listed first (highlighted red if closed).
Loading…
PZONA (ZonaMaster) "Bebas Nominal" products and the amount range each one accepts. The Min–Max here is exactly what the claim gate enforces: a withdrawal outside the active product's range is routed to another provider instead of being handed to PZONA. The product marked ACTIVE is the one each wallet currently uses. Transfer products show their amount range; CEK NAMA products are free name-check lookups (no amount range).
Loading…
Live status and price of PINDOT's Dompet Digital products: OPEN = available, TUTUP = closed / disturbed. The engine refreshes this automatically every ~10 minutes. The codes your DANA / GOPAY / OVO / SHOPEEPAY / LINKAJA wallets use are listed first; use Set ACTIVE to switch which code a wallet sends with.
Loading…
Loading SKUs…
| Brand | Total Tx | Success | Failed | Manual | Volume | Charges | Provider Fees | Profit | Success Rate |
|---|---|---|---|---|---|---|---|---|---|
| Pick filters and click Refresh. | |||||||||
| Wallet | Tx | Success | Failed | Volume | Charges | Provider Fees | Avg Fee/Tx | Profit | Profit/Tx |
|---|---|---|---|---|---|---|---|---|---|
| — | |||||||||
| Provider | Tx | Success | Volume | Charges | Provider Fees | Avg Fee/Tx | Profit | Share % (Tx) | Share % (Vol) |
|---|---|---|---|---|---|---|---|---|---|
| — | |||||||||
| Date | Tx | Success | Failed | Volume | Charges | Provider Fees | Profit | Success Rate |
|---|---|---|---|---|---|---|---|---|
| — | ||||||||
| Provider Account | Provider | Opening | + Top-ups | − Withdrawals | ± Adjust | + Refund | − Transferred | − Fees | − Check Name Cost | = Expected | Actual now | Difference | Status |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| — | |||||||||||||
| Date | Transactions | Opening balance | + Top-ups | − Withdrawals | − Fee charges | ± Adjustments | Closing balance | Detail |
|---|---|---|---|---|---|---|---|---|
| Select a brand to view its report. | ||||||||
The price counted per name-check in reports. Set 0 for a free provider (e.g. PKXPAY reads your own myBCA account, so it costs nothing). A provider shown as Default still uses the built-in price until you set one here.
| Time | Action | Details | By |
|---|---|---|---|
| Loading… | |||
Loading…
Loading…
Every saldo movement recorded by the PJVID provider, matched against our transactions by refid.
The engine pulls the last 3 days every 10 minutes — very recent transfers can take a few minutes to appear here.
Loading…
1. Install Google Authenticator on your phone.
2. Open it and scan this:
Two-factor is on. From now on you will need a code from your phone every time you sign in.