Core guides

Money rails

Send, receive, deposit, withdraw, and swap — how third-party platforms move value on OpenPay Pro and the OpenPay network.

Mental model: Partner Transfer API moves OUSD on OpenPay (openpy.space). OpenPay Pro is the money app ledger (OUSD + majors + OpenTokens). Use Exchange docs when listing OUSD like a network asset.

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 | expired

03

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-Key on 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:

  1. Deep-link users into Pro: https://openpaypro.space/swap or https://openpaypro.space/trade
  2. 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_KEY

05

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