PSP #1 API -- PassimPay
Overview of PassimPay as an external service. What it is, what it supports, how to connect.
Setup -- what to do before development
Create account
Register at account.passimpay.io. Confirm email.
Create a platform
In the dashboard: create a new platform. Save the Platform ID (integer) and API Secret Key -- they are shown only once.
Whitelist server IP
In platform settings: add the outbound IP of your backend server. Required for /v2/withdraw to work. Without this, all withdrawal requests are blocked.
Set webhook URL
In platform settings: enter the URL where PassimPay will send deposit and withdrawal events (e.g. https://yourapi.com/webhooks/passimpay). Must be publicly accessible.
Enable withdraw webhook
In platform settings: toggle "Enable withdraw webhook" ON. Without this, you will not receive callbacks for withdrawal status changes.
Configure currencies
In platform settings: enable the cryptocurrencies you want to accept. Disabled currencies will not appear in /v2/currencies responses for your platformId.
Supported Networks & Currencies (Phase 1)
POST /v2/currencies with your platformId -- they may differ per platform. The list below is for general understanding. Full currency table: Google Sheets | Symbol | Name | Network | Min deposit | Min withdraw | Webhooks | Notes |
|---|---|---|---|---|---|---|
BTC | Bitcoin | Bitcoin | 0.0001 | 0.001 | 2 (at 1 and 2 confirmations) | UTXO |
ETH | Ethereum | EVM (Ethereum) | 0.005 | 0.01 | 1 (instant) | |
USDT | Tether | TRC20 (Tron) | 1 | 5 | 1 (instant) | |
USDT | Tether | ERC20 (Ethereum) | 10 | 20 | 1 (instant) | |
USDC | USD Coin | ERC20 / TRC20 | 10 | 20 | 1 (instant) | |
LTC | Litecoin | Litecoin | 0.01 | 0.05 | 2 (at 1 and 2 confirmations) | UTXO |
DOGE | Dogecoin | Dogecoin | 10 | 20 | 2 (at 1 and 2 confirmations) | UTXO |
DASH | Dash | Dash | 0.01 | 0.05 | 2 (at 1 and 2 confirmations) | UTXO |
BCH | Bitcoin Cash | Bitcoin Cash | 0.001 | 0.005 | 2 (at 1 and 2 confirmations) | UTXO |
XRP | Ripple | Ripple | 1 | 5 | 1 (instant) | Tag required |
TON | Toncoin | TON | 1 | 2 | 1 (instant) | Tag required |
TRX | Tron | TRC20 (Tron) | 10 | 20 | 1 (instant) | |
BNB | BNB | BSC (BEP-20) | 0.01 | 0.02 | 1 (instant) |
Two Integration Modes
H2H (Host-to-Host)
Player stays on your site. You show the crypto address in your own UI.
- Full control over UI/UX
- Player pays any amount
- No redirect
Invoice (Redirect)
Player is redirected to the PassimPay-hosted page. Fixed amount.
- Less code on your side
- Supports payment splitting
- On-ramp (fiat) -- future phase
H2H -- Player flow
Player opens the deposit page and selects a crypto method (e.g. USDT TRC20)
Backend calls PassimPay /v2/address and gets a unique deposit address (+ destinationTag if XRP/TON)
Player sees the address (and QR code) directly on YOUR site -- no redirect to PassimPay
Player copies the address and sends crypto from their personal wallet (any amount)
PassimPay detects the transaction on-chain and sends a webhook to your server
Backend updates transaction status -- player sees "Processing" in real time (via polling or WebSocket)
On final confirmation, balance is credited and player sees "Deposit confirmed"
Invoice -- Player flow
Player opens the deposit page, selects a crypto method and enters the amount
Backend calls PassimPay /v2/createorder with the fixed amount and receives a payment URL
Player is automatically redirected to the PassimPay-hosted payment page
On the PassimPay page: player sees which currencies are accepted, selects one (or splits across multiple), and sees a countdown timer
Player sends the exact amount from their wallet
PassimPay processes the payment and sends a webhook to your server
If returnUrl was set: player is redirected back to your site automatically
Backend credits the balance and player sees "Deposit confirmed"
Limitations & Future Phases
No card payments in Phase 1
PassimPay supports fiat / card payments only through the Invoice method with on-ramp enabled. This requires separate activation by PassimPay support. Not in scope for Phase 1.
Payment splitting (Invoice only)
Paying a single invoice with multiple cryptocurrencies (e.g. 50% BTC + 50% USDT) is supported only in the Invoice method. Not available in H2H.
On-ramp (fiat deposits) -- not in Phase 1
Accepting deposits via bank card (Visa/Mastercard) or bank transfer requires the Invoice method with on-ramp feature enabled. Requires contacting PassimPay support to activate. Implementation deferred.
INR bank transfers (India only)
PassimPay supports Indian Rupee bank withdrawals via /v2/inrout (IMPS/NEFT). Geo-specific feature, not relevant until India GEO is in scope.
Direct deposits (USDT TRC20 static address)
PassimPay supports a "direct deposit" mode where all players share one static USDT TRC20 address and are identified by unique amounts. Complex to implement correctly (AML, amount matching). Not in scope for Phase 1.