PaybytokenDocs
Checkout
Guide · Checkout

Wallet and manual payment

Support connected browser wallets and manual stablecoin transfers.

Embedded and hosted checkout offer the same two stablecoin payment paths. With Custom checkout, your interface renders the confirmed payment address, QR code and network warning while Paybytoken remains the source of truth for the transfer details.

Send from wallet

By default, the browser SDK uses an injected EIP-1193 provider from window.ethereum. This supports MetaMask and compatible injected wallets. Checkout:

  1. requests wallet access;
  2. asks the wallet to switch to the selected checkout network when necessary;
  3. derives the token contract, destination and exact amount from the authenticated session; and
  4. requests the ERC-20 transfer.

The customer always reviews and approves the transaction in the wallet.

If your application already manages wallet selection with WalletConnect, RainbowKit, wagmi or another connector, pass the selected provider:

const checkout = await initEmbeddedCheckout({
  fetchCheckoutSession: createSessionOnMerchantServer,
  walletProvider: selectedConnectorProvider,
})

The provider must implement:

interface WalletProvider {
  request(args: {
    method: string
    params?: readonly unknown[] | Record<string, unknown>
  }): Promise<unknown>
}

Do not construct wallet transaction fields from messages sent by the iframe. The SDK fetches the authenticated session and derives the chain, contract, amount and one-time address itself.

Send manually

The manual option lets the customer copy the one-time address or scan its QR code. The address and QR are hidden until the customer expands the option.

Remind customers to:

  • send the exact token and amount on the selected network;
  • make one transfer only;
  • use a wallet they control; and
  • avoid exchange or bridge deposit wallets because a refund can return only to the original sender.

The merchant frontend does not need to render or copy the destination address. Paybytoken checkout owns that UI and obtains its data from the authenticated Checkout Session.

Mobile wallets

Test wallet connections in the mobile browsers and wallet handoff paths your customers use. Always keep manual transfer available as the fallback when an injected provider is unavailable.

On this page

API Workbench

Full Explorer

Open in new tab