Core guides

Integrate OUSD on OpenPay Network

List OpenPay like another network: deposit and withdraw OUSD via Partner Transfer API, credit Pro wallets with inbound, and reconcile on the public ledger.

Partners · Exchanges · Apps
Create partner appConnect & payments docsRaw MD
Network
openpay
Asset
OUSD (~$1 USD)
Decimals
8 ledger · 2 display
Contract
None (ledger API)
Partner portal
openpy.space/partner-api
Explorer
https://openpaypro.space/ledger

Step 1

How OpenPay maps to a listed network

OUSD lives on OpenPay’s open network ledger (custodial balances). There is no public ERC-20 / SPL mint for partners to scrape. Treat OpenPay as network + REST, like integrating a ledger chain via API.

Exchange conceptOpenPay / OUSD
Networkopenpay
Native assetOUSD
Deposit address@user · OP… · Pro 0x…
ConfirmationsIdempotent API receipt
Hot walletPartner OpenPay account (API key)
ExplorerPublic Ledger API + /ledger

Full JSON listing metadata (decimals, address patterns, API URLs) is in /api/public/docs/exchange.

Step 2

API base URLs

Partner Transfer API
https://araojncyittkahvvpdrn.supabase.co/functions/v1/partner-transfer-api

Auth: Authorization: Bearer opk_live_…— endpoints: /me, /balance, /transfers, /charges, /accounts/:id

Pro inbound (credit Pro wallets)
POST https://openpaypro.space/api/public/openpay/inbound
Public Ledger API
https://openpaypro.space/api/public/ledger

Never put opk_live_ in browsers or mobile apps — key = hot wallet.

Step 3

Deposit (user → your exchange)

Recommended: create a charge, send the user to OpenPay checkout, poll until paid, then credit their exchange balance (idempotent on charge id / reference).

curl -X POST "https://araojncyittkahvvpdrn.supabase.co/functions/v1/partner-transfer-api/charges" \
  -H "Authorization: Bearer opk_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 100.00,
    "currency": "OUSD",
    "description": "Deposit to ExchangeAccount#42",
    "reference": "dep_42_abc",
    "success_url": "https://your.exchange/deposits/openpay/success",
    "cancel_url": "https://your.exchange/deposits/openpay/cancel"
  }'

Also supported: users send OUSD to your published @partner / OP… hot wallet, or credit Pro users via OpenPay → Pro inbound.

Step 4

Withdraw (your exchange → user)

Debit the user on your books, then POST /transfers from your partner hot wallet. Always send an Idempotency-Key. Validate destinations with GET /accounts/:id.

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: withdraw_user42_batch9" \
  -d '{
    "to": "@satoshi",
    "amount": 50.00,
    "note": "Withdraw from YourExchange #9001"
  }'

Step 5

Swap / convert

On your exchange: hold OUSD inventory and list pairs (e.g. OUSD/USDT) on your matching engine.

On OpenPay Pro: users swap in-app at /swap; movements appear on the ledger as type: swap.

There is no public partner endpoint that runs OpenDEX swaps for arbitrary users yet — use transfers + your order book, or deep-link to Pro.

Step 6

Ledger & reconciliation

Poll GET https://openpaypro.space/api/public/ledger/entries with asset=OUSD. Auth with x-api-key or Bearer (Ledger keys from admin). See Ledger section and docs/LEDGER_API.md.

Step 7

Launch checklist

  • ✓Partner app registered; opk_live_ in secrets / KMS
  • ✓Hot wallet funded with OUSD
  • ✓Deposit: charges or transfer + idempotent credit
  • ✓Withdraw: /transfers + account validation
  • ✓Listing UI: network openpay · asset OUSD
  • ✓Optional: Pro inbound + Ledger API monitoring

Full reference

Markdown: /api/public/docs/exchange · Connect guide: /docs/openpay

Partner portal