PaybytokenDocs
Checkout
Guide · Checkout

Supported stablecoins and networks

Discover enabled assets and safely add Polygon USDC or USDT0 to checkout.

Paybytoken resolves each checkout option from the intersection of the merchant's mode-specific Payment Method Configuration and the operational token catalog. Your integration selects a currency and chain; it must not provide a contract address, chain ID, or decimals.

Polygon support

ModeAPI pairNetworkContractNotes
TestUSDC + polygonPolygon Amoy (80002)0x41E94Eb019C0762f9Bfcf9Fb1E58725BfB0e7582Circle's official test USDC.
LiveUSDC + polygonPolygon PoS (137)0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359Native USDC; bridged USDC.e is not accepted.
LiveUSDT + polygonPolygon PoS (137)0xc2132D05D31c914a87C6611C10748AEb04B58e8FThe existing Polygon USDT contract upgraded in place to USDT0.

The API keeps the stable asset code USDT across networks. Customer interfaces may label the Polygon option USDT0 (USDT) so the network-specific implementation is clear without changing merchant accounting keys.

Paybytoken deliberately excludes Polygon's old bridged USDC.e contract 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174. It also excludes Polygon USDT from test mode until a Paybytoken-controlled mock asset is deployed and documented on Amoy.

See Circle's USDC contract directory and Polygon's USDT0 migration announcement for the underlying network contracts.

Discover before creating a Session

Call the Tokens API from your server and build an allowlist from enabled results:

const tokens = await paybytoken.tokens.list({ chain: 'polygon' })

const supportedTokens = tokens.data
  .filter((token) => token.enabled)
  .map(({ currency, chain }) => ({ currency, chain }))

Configure the merchant allowlist in Portal or through the Payment Method Configurations API. Normally, omit supported_tokens when creating a Session so it uses the full configuration. Pass a subset only when an individual order needs fewer choices:

const session = await paybytoken.checkoutSessions.create({
  currency: 'usd',
  line_items: order.items,
  supported_tokens: [
    { currency: 'USDC', chain: 'polygon' },
    { currency: 'USDC', chain: 'base' },
  ],
  ui_mode: 'hosted',
  success_url: 'https://shop.example.com/orders/complete',
  cancel_url: 'https://shop.example.com/cart',
})

An unconfigured or disabled pair fails Session creation. Never silently replace it with a token that has the same symbol on another contract or network. Render custom checkout from the Session's immutable payment_method_options instead of querying current settings again.

Customer-facing rules

  • Show the network name and token together, for example USDC · Polygon PoS.
  • For Polygon USDT, show USDT0 (USDT) while sending the API asset code USDT.
  • Ask wallets to switch to chain ID 80002 in test mode or 137 in live mode.
  • Display the exact destination address and contract returned by the confirmed Session.
  • Do not treat USDC, USDC.e, or same-symbol assets on different networks as interchangeable.

Continue with Hosted checkout, Embedded checkout, or Custom checkout.

On this page

API Workbench

Full Explorer

Open in new tab