This page covers the custodial
wallet resource of the Payments API. If your product needs users to control their own keys onchain (consumer apps, agentic flows), use OMS non-custodial wallets. The two models can be combined in a single product.Object
address field is the wallet’s onchain address on Polygon Chain. It is read-only and assigned at creation. Read the wallet’s current balance with GET /wallets/{walletId}/balance.
Funding a wallet
A wallet can receive funds in three ways:| Method | How it works |
|---|---|
| Direct crypto transfer | Send crypto to the wallet’s address |
| Virtual account | Fiat deposited to the customer’s bank account number auto-converts to USDC (currently early access, provisioned by Polygon) |
| Deposit address | Crypto sent to a monitored address auto-routes to the wallet (currently early access, provisioned by Polygon) |
address field fire a wallet.depositDetected webhook but do not trigger an automatic conversion. Virtual accounts and deposit addresses are the flows where OMS acts on incoming funds; both are currently provisioned by Polygon.
Key operations
| Operation | Endpoint |
|---|---|
| Create a wallet for a customer | POST /customers/{customerId}/wallets (body: asset + chain) |
| List a customer’s wallets | GET /customers/{customerId}/wallets |
| Get balance | GET /wallets/{walletId}/balance |
Related
- Virtual accounts: assign a bank account number that auto-funds this wallet
- Deposit addresses: set up a monitored crypto address that routes to this wallet
- Transactions: move funds out of a wallet via crypto, bank transfer, or cash