Core guides
Money rails
Send, receive, deposit, withdraw, and swap — how third-party platforms move value on OpenPay Pro and the OpenPay network.
01
Send & receive
Partner payouts / sends — debit your partner OpenPay balance and credit any @username, OP…, or email:
curl -X POST "https://araojncyittkahvvpdrn.supabase.co/functions/v1/partner-transfer-api/transfers" \
-H "Authorization: Bearer opk_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"to":"@alice","amount":10.00,"note":"Payout"}'Pro receive — users share QR / receive links from /receive. Camera-friendly /pay links open cleanly from phone scans.
OpenPay → Pro inbound — when funds should land in a Pro wallet, use the pro_xfer note convention and call:
POST https://openpaypro.space/api/public/openpay/inbound
Authorization: Bearer <partner-or-service-key>
{ "openpay_tx_id": "...", "amount": 10, "note": "pro_xfer:..." }Full inbound guide: /docs/openpay#openpay-to-pro · raw markdown.
02
Deposit (fund Pro / credit users)
Partners typically implement deposit as: user pays your OpenPay tag or PayButton charge → you credit their account in your DB.
- OpenPay Balance / payment link —
POST /charges+ checkout_url (see API reference). - Pro in-app deposits (user opens Pro): OpenPay Balance, Pi Network, Wallet USDT/USDC/SOL, MoonPay Commerce USDC/crypto, Solana Pay, Circle Mint, Banxa, multi-chain scan-to-pay.
- Deep-link users into Pro top-up:
https://openpaypro.space/topup
# Merchant-style deposit: create charge, redirect user, poll until paid
GET https://araojncyittkahvvpdrn.supabase.co/functions/v1/partner-transfer-api/charges/CHARGE_ID
# status: created | paid | canceled | expired03
Withdraw (pay out)
Exchange-style withdraw: debit the user on your platform, then POST /transfers from your funded partner OpenPay account to their @username / OP… / Pro destination.
- Always send
Idempotency-Keyon payouts. - Fund the OpenPay account that owns the API key (your hot wallet).
- Pro-native withdraw UI lives at
/withdraw— for end users inside the app, not a public partner HTTP swap of chains.
Step-by-step for listings: Exchange · OUSD.
04
Swap
There is no partner OpenDEX HTTP swap endpoint today. Integrate swap by:
- Deep-link users into Pro:
https://openpaypro.space/swaporhttps://openpaypro.space/trade - Or hold OUSD on your books and let users swap inside Pro; reconcile with Ledger
type=swap
# Ledger filter for swaps
GET https://openpaypro.space/api/public/ledger/entries?type=swap&limit=50
x-api-key: YOUR_LEDGER_KEY05
Integration checklist
- ✓ Partner app +
opk_live_key at https://openpy.space/partner-api - ✓ Deposit: charges or inbound transfers with idempotency
- ✓ Withdraw: Partner Transfer out with Idempotency-Key
- ✓ Send/receive UX: QR, @username, or your own payment screens
- ✓ Reconcile via Ledger API or charge polling
- ✓ Never ship API keys to browsers or mobile binaries