Skip to main content
GET
/
v2
/
payment-sessions
/
{paymentSessionId}
/
authorizations
/
wallet
/
options
Get wallet authorization options
curl --request GET \
  --url https://api.cdp.coinbase.com/platform/v2/payment-sessions/{paymentSessionId}/authorizations/wallet/options \
  --header 'Authorization: Bearer <token>'
{
  "options": [
    {
      "optionId": "opt_a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "source": {
        "address": "0xAbC1234567890aBcDeF1234567890AbCdEf123456",
        "network": "base",
        "asset": "usdc"
      },
      "amount": "1.00",
      "asset": "usdc",
      "network": "base",
      "payloads": [
        {
          "payloadId": "payload_af2937b0-9846-4fe7-bfe9-ccc22d935114",
          "type": "eip3009",
          "data": {
            "types": {
              "EIP712Domain": [
                {
                  "name": "name",
                  "type": "string"
                },
                {
                  "name": "version",
                  "type": "string"
                },
                {
                  "name": "chainId",
                  "type": "uint256"
                },
                {
                  "name": "verifyingContract",
                  "type": "address"
                }
              ],
              "TransferWithAuthorization": [
                {
                  "name": "from",
                  "type": "address"
                },
                {
                  "name": "to",
                  "type": "address"
                },
                {
                  "name": "value",
                  "type": "uint256"
                },
                {
                  "name": "validAfter",
                  "type": "uint256"
                },
                {
                  "name": "validBefore",
                  "type": "uint256"
                },
                {
                  "name": "nonce",
                  "type": "bytes32"
                }
              ]
            },
            "primaryType": "TransferWithAuthorization",
            "domain": {
              "name": "USD Coin",
              "version": "2",
              "chainId": 8453,
              "verifyingContract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
            },
            "message": {
              "from": "0x1111111111111111111111111111111111111111",
              "to": "0x2222222222222222222222222222222222222222",
              "value": "1000000",
              "validAfter": "0",
              "validBefore": "1767225600",
              "nonce": "0x8f5c2d6f4b9a1e3c7d2f8a6b5c4e3d2f1a0b9c8d7e6f5a4b3c2d1e0f9a8b7c6d"
            }
          }
        }
      ]
    }
  ]
}

Path Parameters

paymentSessionId
string
required

The unique identifier of the payment session. The ID of the payment session, a UUID prefixed by paymentSession_.

Pattern: ^paymentSession_[a-f0-9\-]{36}$
Example:

"paymentSession_82c879c1-84e1-44ed-a8c2-1ac239cf09ad"

Query Parameters

address
string
required

The payer's wallet address to generate authorization options for. A blockchain address. Format varies by network (e.g., 0x-prefixed for EVM, base58 for Solana).

Required string length: 1 - 128
Example:

"0x742d35Cc6634C0532925a3b844Bc454e4438f44e"

network
enum<string>

Optional filter to restrict options to a specific blockchain network. The blockchain network supported for payment session sources. Testnet networks are only available in sandbox environments.

Available options:
arbitrum,
arbitrum-sepolia,
base,
base-sepolia,
ethereum,
ethereum-sepolia,
optimism,
optimism-sepolia,
polygon,
polygon-amoy
Example:

"base"

asset
string

Optional filter to restrict options to a specific asset. The symbol of the asset (e.g., eth, usd, usdc, usdt).

Required string length: 1 - 42
Example:

"usd"

Response

Successfully retrieved wallet authorization options.

The available wallet authorization options for a payment session. Each option describes one way the payer can authorize the payment from their wallet. Present the options to the payer and let them choose one.

options
Wallet Authorization Option · object[]
required

The available wallet authorization options.

Example:
[
{
"optionId": "opt_a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"source": {
"address": "0xAbC1234567890aBcDeF1234567890AbCdEf123456",
"network": "base",
"asset": "usdc"
},
"amount": "1.00",
"asset": "usdc",
"network": "base",
"payloads": [
{
"payloadId": "payload_af2937b0-9846-4fe7-bfe9-ccc22d935114",
"type": "eip3009",
"data": {
"types": {
"EIP712Domain": [
{ "name": "name", "type": "string" },
{ "name": "version", "type": "string" },
{ "name": "chainId", "type": "uint256" },
{
"name": "verifyingContract",
"type": "address"
}
],
"TransferWithAuthorization": [
{ "name": "from", "type": "address" },
{ "name": "to", "type": "address" },
{ "name": "value", "type": "uint256" },
{ "name": "validAfter", "type": "uint256" },
{ "name": "validBefore", "type": "uint256" },
{ "name": "nonce", "type": "bytes32" }
]
},
"primaryType": "TransferWithAuthorization",
"domain": {
"name": "USD Coin",
"version": "2",
"chainId": 8453,
"verifyingContract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
},
"message": {
"from": "0x1111111111111111111111111111111111111111",
"to": "0x2222222222222222222222222222222222222222",
"value": "1000000",
"validAfter": "0",
"validBefore": "1767225600",
"nonce": "0x8f5c2d6f4b9a1e3c7d2f8a6b5c4e3d2f1a0b9c8d7e6f5a4b3c2d1e0f9a8b7c6d"
}
}
}
]
}
]