When to use them
Wallets and a handle can also be passed as
wallets and handle on POST /v2/accounts, which provisions them in the same transaction. See Universal Payment Account.
The connected wallet
There is no wallet list endpoint:
GET /v2/accounts/{accountId} returns the account’s wallets as connectedWallets.
Link wallets
To change only the payment source afterwards, use
PUT /v2/accounts/{accountId}/payment-source; see Sending payments. To pick a different settlement destination, see Settlement destinations.
Ownership verification
Linking a wallet never verifies it, and the Partner API has no call that submits a proof. Partner-managed KYC treats a wallet address as verified information only when the wallet is
verified. Show unverified to your users as exactly that.
The payment handle
The full address is
handle@namespace, for example alice@partner.
Claim a handle
Resolve a handle
GET /v2/payment-handles/{handle} returns { accountId, paymentHandle }, where accountId is the account to use on account-scoped calls. An unknown handle returns 404 not_found.
You can pay another partner’s qualified handle but cannot look it up first, so confirm it with your customer before sending. The resolved account comes back on the payment as destination.accountId; see Stablecoin transfers.
Public payment acceptance
paymentAcceptance on the account is { publicReceiveEnabled, version }. publicReceiveEnabled starts false. When it is true, payers can open the account’s public payment page by its qualified handle and create a receive payment to it from a browser.
Payers’ browsers read the page with
GET /v2/public/payment-recipients/{paymentHandle} and create the payment with POST /v2/public/apps/{appId}/payments. Public send is never allowed.
The display profile
displayProfile on the account is { displayName, logoUrl, version }: the recipient identity payers see, separate from your app’s branding. Every payment copies it into recipientDisplay at creation, and a later update affects only future payments.
displayProfile can also be set on POST /v2/accounts.
Errors
Webhooks
Linking wallets, claiming a handle, and changing payment acceptance or the display profile each emitaccount.updated. The event says the account changed: read GET /v2/accounts/{accountId} for the current record. See Webhooks.
Related
Universal Payment Account
The account wallets and handles attach to.
Settlement destinations
Choose which linked wallet collected value lands in.
Stablecoin transfers
Send to a wallet, an account or a handle, across partners.
Sending payments
Set a payment source and send from it.