Verify Payment
API Reference
Verify Payment
Verify an EIP-3009 payment authorization
POST
Verify Payment
Endpoint
Verify that an EIP-3009transferWithAuthorization signature is valid and meets expected criteria.
Key principle: Customer authorizes payment to merchant address (not facilitator).
Verification is FREE. Only successful settlements incur the $0.01 fee.
Request Parameters
Payment payload containing EIP-3009 authorization and signaturepayment.payload.authorization:
from: Customer addressto: MERCHANT address (where customer payment goes)value: Payment amount in token’s smallest unitvalidAfter: Unix timestamp (usually “0”)validBefore: Unix timestamp (expiry)nonce: Unique random bytes32
Payment requirements from merchant’s 402 response
scheme: “exact”price: “$0.02” (or atomic amount)network: “eip155:84532” (CAIP-2 format)payTo: Merchant addresstoken: USDC address (optional if using price)
Request Examples
Response Examples
Response Fields
Whether the payment authorization is valid
Human-readable verification result
details.verification_id: Use this for settlementdetails.verified_amount: Confirmed payment amountdetails.merchant_address: Merchant receiving paymentdetails.payer_address: Customer making paymentdetails.verified_at: ISO 8601 timestamp
Verification Process
What Gets Verified
Recipient Validation
Critical: Authorization
to address must match merchant address from requirements.payTo✅ authorization.to == requirements.payTo (merchant address)❌ authorization.to == treasury_address (wrong!)Important Notes
Verification is FREE - unlimited verifications at no cost. Only successful settlements incur the $0.01 fee (collected from merchant’s approved balance).
Common Use Cases
USDC Payment on Base Sepolia
USDC Payment on Base Sepolia
USDC Payment on Base Mainnet
USDC Payment on Base Mainnet
Error Prevention
Next Steps
Settle Payment
Execute settlement after verification
Error Handling
Handle verification failures
Architecture
Understand payment flow
Integration Guide
Complete setup guide
Verification complete! Use the
verification_id to settle the payment.