Appearance
Player and provider API
Endpoints exposed by the player-backend Fastify services — what the player site calls, and where provider callbacks land. See conventions.
Provenance
This list was extracted from the Fastify route registrations across the services. Paths and fields are quoted as registered; request-body field lists are the fields each handler reads. Treat the provider services as the more volatile part and confirm against source before integrating.
player-management — transactions
Service management-services/player-management, routes under /player/... (src/routes/transactionsRoute.js).
Deposits
| Method | Path | Purpose |
|---|---|---|
| POST | /player/transactions/deposit | Create a deposit (fiat or crypto) → status: "pending" |
| GET | /player/transactions/deposit/:playerId | A player's deposits (paginated, currency filter) |
| GET | /player/transactions/deposit/by-external-id/:transactionId | Look up by provider tx id |
| GET | /player/transactions/deposit/address/:playerId/:currency | Latest crypto deposit address |
| POST | /player/transactions/deposit/address | Save a crypto deposit address mapping |
| PUT | /player/transactions/deposit/tx-hash/:playerId | Attach a crypto tx hash |
| PUT | /player/transactions/deposit/update | Update a deposit (status, ids, metadata) |
| PUT | /player/transactions/deposit/update-callback | Generic deposit callback (credits wallet on success) |
| PUT | /player/transactions/deposit/update-callback/tektikpay | TektikPay deposit callback |
| POST | /player/transactions/deposit/manual-bank/callback | Manual bank deposit callback |
| POST | /player/transactions/yumgo/callback | YumGo deposit callback |
| POST | /player/transactions/sans/callback | SANS deposit callback |
| POST | /player/transactions/alphapo/callback | AlphaPo deposit callback |
POST /player/transactions/deposit body: amount, walletId, transactionId, provider, method, idempotency_key, playerId, paymentType, paymentSystemName, metadata.
Withdrawals
| Method | Path | Purpose |
|---|---|---|
| POST | /player/transactions/create-withdrawal/:playerId | Create a withdrawal (debits wallet) → pending |
| POST | /player/transactions/withdrawal/alphapo/:playerId | AlphaPo crypto withdrawal |
| POST | /player/transactions/withdrawal/bancosants/:playerId | Banco SANTS PIX withdrawal |
| POST | /player/transactions/withdrawal/crypto/:playerId | SANS crypto withdrawal (debits USD wallet) |
| POST | /player/transactions/withdrawal/tektikpay/:playerId | TektikPay withdrawal (awaits admin approval) |
| GET | /player/transactions/all-withdrawal/:playerId | A player's withdrawals (paginated) |
| GET | /player/transactions/withdrawal/:id | One withdrawal |
| GET | /player/transactions/withdrawal/by-payout-id/:payoutId | Look up by provider payout id |
| GET | /player/transactions/withdrawal/rollback-status/:transactionId | Has the rollback finished? |
| PUT | /player/transactions/withdrawal/update | Update status / rejection / retry count |
| POST | /player/transactions/withdrawal/external-id | Attach provider payout id |
| POST | /player/transactions/withdrawal/alphapo/rollback | Roll back a failed AlphaPo payout |
| PUT | /player/transactions/withdrawal/update-rollback-status | Mark failed + rollback complete |
| POST | /player/transactions/alphapo/withdrawal/callback | AlphaPo withdrawal callback |
| POST | /player/transactions/sans/withdrawal/callback | SANS withdrawal callback |
| POST | /player/transactions/withdrawal/bank-payment/callback | Manual bank withdrawal callback |
POST /player/transactions/create-withdrawal/:playerId body: addressData, walletId, method, provider, idempotency_key, bankAccountId, amount. The wallet is debited as part of creation; the transaction moves created → pending, or created → error if the debit fails.
Config, addresses and saved accounts
| Method | Path | Purpose |
|---|---|---|
| GET | /player/payment-config | Read-only display config: enabled methods + toggles |
| POST/GET/DELETE | /player/withdraw-address[...] | Saved crypto withdrawal addresses |
| POST/GET/PUT/PATCH/DELETE | /player/withdraw-bank-accounts[...] | Saved bank accounts for manual bank withdrawal |
GET /player/payment-config returns configured, enableCryptoDeposit, enableLocalCurrencyDeposit, enableManualBankDeposit, enableCryptoWithdraw, enableLocalCurrencyWithdraw, and the available provider lists — the player-facing projection of the admin payment settings.
wallet-management
Service management-services/wallet-management, routes under /wallet/.... The single source of truth for balances. Deposit callbacks call credit; withdrawal creation calls debit.
| Method | Path | Purpose |
|---|---|---|
| POST | /wallet/credit | Add funds. Body walletId, amount, type |
| POST | /wallet/debit | Remove funds. Body walletId, amount, type |
| POST | /wallet/undo-debit | Reverse a debit (credit back). Body walletId, amount |
| POST | /wallet/balance | Balance for a player. Body playerId |
| POST | /wallet/get-wallet-by-currency | Body currency, playerId |
| POST | /wallet/create / /wallet/update / /wallet/delete | Wallet lifecycle |
| POST | /wallet/set-active/:playerId | Set the active wallet |
| GET | /wallet/get-active/:playerId | Active wallet + bonus balances |
| GET | /wallet/get-all-wallets/:playerId | All non-bonus wallets + bonus balances |
| GET | /wallet/get-bonus-wallets/:playerId | Bonus wallets only |
| GET | /wallet/:id | One wallet |
credit / debit carry a type (e.g. deposit, withdrawal, rollback) describing why the balance moved. debit fails on insufficient funds rather than going negative. There is also a GetActiveWallet gRPC method for internal callers.
Provider services
Each provider is its own service under payment-management/, registering routes under its own prefix. The shape is consistent: a create/payin endpoint, a status check, and a webhook/callback the provider calls to confirm. The callback is what ultimately drives the transaction to success or failed and triggers the wallet credit.
PayZeasy — /payzeasy
| Method | Path | Purpose |
|---|---|---|
| POST | /payzeasy/payin | Create a payin. payment_method ∈ upi-qr, upi-collect, upi-imps, upi-intent |
| POST | /payzeasy/payout | Create a payout. Body tx_id |
| POST | /payzeasy/webhook | Webhook (event + data) |
| POST | /payzeasy/status-check/:playerid | Status check. type ∈ deposit, withdrawal |
| POST | /payzeasy/logs-query, GET /payzeasy/logs/:eventId | Event logs |
YumGo — /yumgo
| Method | Path | Purpose |
|---|---|---|
| POST | /yumgo/payment-request/:playerId | Create a payment request |
| GET | /yumgo/order-status/:orderId | Order status |
| PATCH | /yumgo/order-cancel/:orderId | Cancel |
| PATCH | /yumgo/order-reverse/:orderId | Reverse |
| POST | /yumgo/payin | Callback |
AlphaPo — /alphapo
| Method | Path | Purpose |
|---|---|---|
| GET | /alphapo/currencies, /alphapo/currency-pairs | Reference data |
| POST | /alphapo/payment-request/:playerId | Create a deposit request |
| POST | /alphapo/withdrawal-request/:playerId | Create a withdrawal request |
| POST | /alphapo/callback / /alphapo/payin | Deposit callback |
| POST | /alphapo/withdrawal-callback | Withdrawal callback |
| GET | /alphapo/transaction-status | Status |
TektikPay — /tektikpay
| Method | Path | Purpose |
|---|---|---|
| POST | /tektikpay/banks | Bank list |
| POST | /tektikpay/deposit/:playerId | Create a deposit |
| POST | /tektikpay/withdraw/:playerId | Create a withdrawal request |
| POST | /tektikpay/withdrawal/execute/:playerId | Execute an approved withdrawal |
| POST | /tektikpay/callback | Callback (transid, amount, status, hashcode) |
| POST | /tektikpay/status-check/:transactionid | Status |
Banco SANTS — /bancosants
| Method | Path | Purpose |
|---|---|---|
| POST | /bancosants/deposit/:playerId | Create a deposit |
| POST | /bancosants/withdrawal/:playerId | Create a PIX withdrawal (pix_key, pix_key_type) |
| POST | /bancosants/deposit-callback / /bancosants/withdrawal-callback | Callbacks |
| GET | /bancosants/balance, /bancosants/transaction/:transactionId | Reference |
SANS Getirsin — /sans-getirsin
| Method | Path | Purpose |
|---|---|---|
| POST | /sans-getirsin/list-wallets/:playerId | List wallets, cache a token (20 min) |
| POST | /sans-getirsin/deposit/:playerId | Create a deposit |
| POST | /sans-getirsin/create-withdraw | Create a withdrawal |
Bank payment (manual bank) — /bank-payment
The player-side counterpart of the admin manual bank service.
| Method | Path | Purpose |
|---|---|---|
| POST | /bank-payment/deposit/:playerId | Create a manual bank deposit |
| GET | /bank-payment/bank-accounts/:playerId | Bank accounts available to the player |
| GET/PUT/PATCH/DELETE | /bank-payment/bank-account/:accountId[...] | Account detail / status / delete |
| POST | /bank-payment/callback | Deposit callback (approve / reject / refund) |
| POST | /bank-payment/withdrawal-callback | Withdrawal callback |
| POST | /bank-payment/withdrawal-confirm / /bank-payment/withdrawal-reject | Withdrawal resolution |
Two /bank-payment services
There is a /bank-payment service on both backends. The admin one (Admin panel API) manages the brand accounts and takes operator actions; this player-side one creates player deposits and serves accounts to the player app. They are different services with overlapping path prefixes — don't conflate them.