Deposits and payouts for online sites

Take deposits, pay withdrawals. One system.

P2P matching of depositors and withdrawers.
Thai QR, bank transfer or USDT.
Back office ready. API ready.

  • Separate or shared pool
  • One integration, every channel
  • Test before real money
  • Automatic slip checks
Sample
  • 5channels one API integration supports
  • 2USDT networks
    TRC20 and ERC20
  • 3ways to pay your fee bill
  • 0minutes of downtime when we update

Features

Everything for money in and out of your site

P2P matching

Depositors pay withdrawers directly. We confirm it.

No match? We move on

Straight to QR or bank transfer.

Back office, ready

Transactions, reports, , bills, team and roles.

API, ready to connect

Automatic result callbacks. Test first.

How it works

  1. You create it

    By API, then use our deposit page or your own.

    You request a withdrawal

    Send the player's account by API.

  2. We match at once

    We find a withdrawer waiting for that amount.
    No match? QR or bank transfer.

    We find the money

    Depositors pay it,
    or we pay through our payment channel.

  3. Confirm and notify

    The player pays and we confirm.
    A webhook tells you how much to credit.

    Clear numbers at the end

    Full or partial, you see what was paid and what is left.

Matching models

Choose: a separate pool or a shared pool

Every site sits in a pool: the place its deposits and withdrawals are matched.
The more waiting in a pool, the sooner and fuller the matches.

Separate pool

Your site is the only one in its pool.
Your depositors match your withdrawers.

Best for: a single site, or starting separate

Shared pool

Several of your sites share one pool.
1Your site gets the first chance, 2then other sites in the pool.

Best for: owners of several sites, or sister sites

Both: no match, and we move on to QR or bank transfer.

We set it up. Switch later, no re-integration.

The “group” model is the shared pool.

  • Inside your site: exact amount first, then longest-waiting
  • Near amounts can match, if enabled
Not sure? Talk to us

Channels

Every way to pay in and out, one integration

Connect the API once.
The channels open for your site work straight away.
New channels arrive without new integration work.

P2P matching

Available

A depositor pays a withdrawer directly. We confirm the amount.

  • Quick deposit: players tap an amount waiting to be matched and get credited sooner
  • One withdrawal can be paid by several depositors
  • Automatic slip checks that stop a slip being used twice

Payment channels

Available

Thai QR (PromptPay) and bank transfer
through several providers in one system.

  • We pick a channel that is ready to take the payment
  • Pay withdrawals into the player's account
  • Bring your own merchant account, by agreement

USDT

Available

Deposits and withdrawals in USDT
TRC20ERC20

  • Players see the baht amount too
  • Coins sit in their own wallet, apart from baht
  • USDT in and out through our own wallets Coming soon

Company bank account

Coming soon

Players transfer into our registered company account.

  • An amount unique to each deposit, no slip needed
  • We see the money arrive and notify your site
  • Withdrawals paid to players automatically, one by one

TrueWallet

Coming soon

Players deposit through TrueWallet with a phone number.

  • Already in the API: no new integration when it opens
  • For deposits
Channels side by side
ChannelDepositWithdrawUnitStatus
P2PYesYesTHBAvailable
Payment channelsYesYesTHBAvailable
USDTYesYesUSDTAvailable
Company accountYesYesTHBSoon
TrueWalletYesNoTHBSoon

Automatic fallback

No P2P match? Straight to QR or bank transfer.
Nothing available? The player sees a message set up for your site.

Depends on the channels enabled for your site.

Withdrawals keep flowing

If a payout fails, we look for another way.

Ready-made deposit page, 0msPayment-branded

  • Send the player the link the API returns.
  • Account or QR, countdown, slip upload and status.
  • Thai and English.
  • Easy slip upload from a phone. Slips are checked and reuse is caught.

Already have a merchant account with a payment provider?
Connect it, by agreement.

Platform

The whole system in one back office

What your team does every day, in one place.

  • Automatic slip checks

    Checks the amount and stops reused slips.
    Players can send a new slip while one is checked.

  • Quick deposit

    Your site shows amounts waiting to be matched.
    Players tap one and get credited sooner.

  • Split withdrawals

    Several depositors pay one withdrawal.
    See what is paid and what is left.

  • Ban list

    Add an account that causes trouble.
    We stop matching it.

  • Central credit

    Every site holds its balance with 0msPayment.
    No chasing balances with other sites.

  • A wallet per channel

    P2P, payment channels and USDT
    each show their own balance.

  • Fee bills

    Weekly or monthly, with a due date.
    Three ways to pay.

  • Multi-site managers

    See the credit of every site you manage and export it.
    Pay bills for several sites at once.

  • Reports and dashboard

    Charts and sortable tables.
    Export to CSV and Excel.

  • Team and roles

    Ready-made roles you can make your own.
    Everyone sees only the menus they are given.

  • Create from the back office

    Let chosen staff create deposits and withdrawals.
    Each one records who made it.

  • Updates without downtime

    We update the system while your site keeps taking money.
    No maintenance windows to plan.

Resellers

Pass it on, tier after tier, and every tier keeps its margin

We give you a cost rate; you give a rate to the next tier.
Each tier's margin = the rate it gives below − its own cost.
Split on every transaction, with no limit on tiers.

Made-up names and figures, not real rates

0msPaymentGives A 1.00%
A1.00%A's cost
B1.30%A gets 0.30%
C1.40%A gets 0.40%
B's site1.80%B gets 0.50%
C's site2.00%C gets 0.60%

B and C can pass it on further

Sample deposit of 10,000 baht

Who getsVia BVia C
The site pays180200
B / C gets5060
A gets3040
0msPayment100100

A gets 70 baht in all, from both

  • No tier runs at a loss

    A rate given below can never be under your own cost.
    The same goes for site fees.

  • Set the rates below you

    The next reseller's rate and your sites' fees,
    in your own back office.

  • Every wallet on its own

    P2P, payment channels and the company account pay margins in baht.
    Crypto pays in the coin itself.

  • Every fee is shared alike

    Deposits, withdrawals and the sites' reserve top-ups and withdrawals.

  • Margins after the bill is paid

    Ready in proportion to what the site paid.

  • As deep as you need

    Create a sub-pool for the next tier once we enable it.

Negative limits down the tree

Hand on no more than you have left, in every wallet and every tier.

  • A's sites −40,000
  • Given to B −30,000
  • Given to C −20,000
  • Left −10,000

Sample: A has a P2P limit of −100,000 baht

  • The back office shows what is used and what is left to give
  • Need more P2P limit? Buy it with USDT in fixed amounts from 10,000 to 1,000,000 baht.
    It is a purchase of limit, not refunded.
  • We open the channels you can pass on.
    Closed at a higher tier, the whole tree stops taking new transactions at once.

The pool owner's back office

Signed in with 2FA, showing only your own tree.

  • Create sites in your pool once we enable it
  • Set fees, limits and billing cycles for many sites at once
  • Schedule fees to start on a set date
  • See the transactions, reserves and bills of your sites
  • For pools you passed on: the totals and your margin
  • Choose which sub-pools of your tree are linked

Billing, ready to go

Every site gets its own bill each cycle.

  1. Bills issued for youWeekly or monthly,
    with a bill number and a due date
  2. Reminders in the back officeA reminder at every sign-in until it is paid
  3. 3 ways to payUSDT, checked for you,
    from your reserve or by bank transfer, as enabled for your site
  4. Pay for several sites at onceWe add them up: one payment.
  5. Reseller margins readyIn proportion to what was paid

Paid but stuck, say a USDT amount that does not match? Our team sees it on one page and follows it up.

Your reserve in one picture

Money your site keeps with us.
It backs payouts and pays fees.
Fees never come out of player credit.

When sites match each other, e.g. a shared pool

Site A Site B 1 2 Reserve AReserve B 3No transfers between your sites
  1. 1A depositor on site A pays a withdrawer on site B.
  2. 2We move that amount from B's reserve to A's.

Depositors on other sites in the pool can pay your withdrawals,
up to what your reserve covers.
Reserve empty? Your own depositors still can.

Top up

Pay by QR in your back office.

Withdraw

Enter the receiving account when you withdraw,
confirmed with 2FA.

Reserve webhooks

Sent to your systems, e.g. when the balance drops below the minimum.

Back office

A back office ready from day one

Each person sees only what their role allows.

  • OverviewDeposits, withdrawals, reserve, 7/30-day charts
  • DepositsAmount paid, credit, fee and slip
  • WithdrawalsReceived, pending or short; pay the rest
  • ReserveBalance per wallet, withdrawable and history
  • Reports and feesDashboard, daily, date ranges, bills, CSV/Excel
  • Site settingsMin/max deposit, transfer time, withdrawal expiry, within bounds
  • TeamReady-made roles you can adjust, several owners
  • IntegrationAPI keys, webhooks, status, docs and Sandbox

Ready to start? Talk to us

For developers

An API ready to connect, tested before real money

  • REST + JSON, amounts in baht with up to two decimals
  • Requests, responses and webhooks signed with HMAC-SHA256
  • Safe retries, no duplicates
  • Webhook retries, replay and test events
  • paidAmount gives the real amount to credit or deduct
  • What your site can match now, over REST and WebSocket (by agreement)
  • Name a channel in the request, or let us choose
  • Thai/English error codes, marked retryable or not

Separate live and test keys.

Full docs in Thai and English in your back office, with a PDF download.

Simulated players in Sandbox. Try exact, short and over payments, and expiry.

POST /v1/deposit

{
  : "DP-100245",
  "amount": 500.25,
  "depositData": {
    "bankCode": "<player bank code>",
    "accountNo": "<player account number>",
    "accountName": "<player account name>"
  }
}

200 OK
{
  "success": true,
  "message": "success",
  "data": {
    "transactionId": "DP-100245",
    "referenceId": "<referenceId>",
    "status": "pending",
    "amount": 500.25,
    "bankCode": "<receiving bank code>",
    "bankAccountNumber": "<receiving account number>",
    "bankAccountName": "<receiving account name>",
    "expireDate": "2026-10-01 15:30:00"
  }
}
POST /v1/withdraw

{
  : "WD-100318",
  "amount": 1000,
  "withdrawData": {
    "bankCode": "<player bank code>",
    "accountNo": "<player account number>",
    "accountName": "<player account name>"
  }
}
{
  "eventId": "<eventId>",
  "event": "deposit.success",
  "transactionId": "DP-100245",
  "referenceId": "<referenceId>",
  "status": "success",
  "amount": 500.25,
  : 500.25,
  "timestamp": "2026-10-01 15:20:11"
}

Shortened example. Full fields and signing are in the back-office docs.

transactionId
Your own order number for this transaction
paidAmount
Tells you how much to credit the player

Secure at every layer, without slowing your team

Money stays safe

  • Credit never exceeds the amount you created.
  • However many confirmations arrive, we credit once.
  • Mismatched amounts go to our staff. We never guess.
  • A payout awaiting its result is never paid twice.

2FA for every user

Require it team-wide if you choose.

Step-up for sensitive actions

Reserve withdrawals, keys, settings and exports ask for 2FA again.

Act at once, with evidence

We record who, what, when and why.
The log is tamper-evident.

Sign-in under control

See every device, sign out everywhere, new-device alerts.

Get started in 3 steps

  1. Talk to us

    Pick your pool and channels.
    We set up your back office.

  2. Build in Sandbox

    Connect the API without real money.

  3. Go live

    Pass the checklist and fund your reserve.

Contact us

FAQ

Frequently asked questions

What is P2P?

A depositor pays a withdrawer directly.
We match and tell your site how much to credit.
Credit follows only after the transfer is verified.

Which channels can I use?

P2P, payment channels from several providers and USDT are available.
A company bank account and TrueWallet are coming soon.
One API integration covers every channel open for your site.

Do other sites see my players' data?

In a cross-site match, the depositor's site gets only the bank, name
and account number for that transaction, so the transfer can be made.
The account number is hidden once it closes.
Nothing else about your players crosses sites.

Paid late, or after cancelling?

Verified within the set time, it is still credited.
After that, our team reviews it.

What are the fees?

Set per site by agreement, with separate deposit and withdrawal rates.
Every transaction shows its fee, and fees add up to a bill.
Pay it in USDT, from your reserve or by transfer, as enabled for your site.
We tell you when a rate changes. Past transactions keep their rate.

Can I run several sites in one place?

Yes. Keep a pool per site, or put several sites in one pool.
A multi-site manager sees the credit of every site they manage, exports it
and pays bills for several sites at once.

Do I need downtime to connect, or when you update?

No. Try everything in Sandbox before real money.
We update the system while your site keeps taking payments.

Which languages do the back office and docs use?

The back office, the deposit page and the API docs come in Thai and English.
The docs download as a PDF.

Contact us

Talk to our team

Ask about channels, pools, fees or API integration

Contact