When you integrate with the Universal Commerce Protocol (UCP), Google servers send server-to-server HTTP requests to your API and OAuth 2.0 endpoints. To allow this traffic, configure your:
- Perimeter firewall
- Content Delivery Network (CDN)
- Web Application Firewall (WAF)
- Rate limiter
- Bot management rules
This configuration prevents false-positive blocks on live customer checkouts, profile discovery, and account linking requests.
Recommended request verification
Google routes outbound requests dynamically across global data centers and doesn't guarantee static egress IP ranges or country-specific source IPs. As an alternative to static IP allowlists or geographic IP filtering, authenticate incoming Google traffic at the transport and application layers:
- Mutual TLS (mTLS): Configure your perimeter load balancer, CDN, or API
gateway to verify Google client certificates signed by Google's UCP Root
Certificate Authorities (
CN=Google UCP Root CA, O=Google LLCfor production andCN=Google UCP Root CA (stg), O=Google LLCfor staging). For Root CA downloads and gateway configuration examples, see Mutual TLS (mTLS) and the Partner Security & mTLS Integration Guide. - Application-layer credentials: Verify the OAuth 2.0
Authorization: Bearer <token>header orX-API-Keyheader on every checkout and order request. See Application-layer authentication. - Cryptographic request signatures (RFC 9421): Verify
ES256message signatures in theSignatureandSignature-Inputheaders (andContent-Digestwhen a request body is present). Verify signatures against Google's public JSON Web Key Set (JWKS) in https://ucp.goog/.well-known/ucp.json or the versioned URL in theUCP-Agentheader. Always fetch keys dynamically from the published JSON URL. For signature verification details, see the UCP Signatures Specification.
Traffic profiles by subsystem
Google uses separate outbound subsystems for UCP checkout and discovery requests versus OAuth 2.0 Account Linking requests. Configure your network and WAF rules to allow all applicable traffic profiles in the following sections.
1. UCP checkout, cart, and order API requests
Outbound requests to your UCP checkout, cart, and order endpoints have the following network and HTTP characteristics:
- Source Autonomous System Number (ASN):
AS15169(Google LLC), published in https://www.gstatic.com/ipranges/goog.json. User-Agentheader: Matches one of the following values:Google-Shopping-Merchant-Integration(default outbound client)Google/UCP*(sent when origin user-agent propagation is enabled)Google-UCP-Prober/1.0(periodic endpoint health checks)
UCP-Agentheader: Present on UCP checkout, cart, and order calls in the formatprofile="https://ucp.goog/..."(for example,profile="https://ucp.goog/profiles/2026-04-08/ucp.json").- HTTP headers by method:
POSTandPUTrequests sendContent-Type: application/json,Request-Id(UUID),Idempotency-Key(UUID),Payment-Environment(liveorsandbox), andAuthorization: Bearer <token>(orX-API-Key). They also sendContent-Digest(sha-256=:...:on RFC 9421 signed bodies) andX-Forwarded-For(when an origin shopper IP is present).POSTandPUTrequests don't send anAcceptheader. Don't requireAccept: application/jsononPOSTorPUTcheckout rules.GETrequests sendAccept: application/json,Request-Id(UUID),Payment-Environment(liveorsandbox), andAuthorization: Bearer <token>(orX-API-Key).
- OAuth 2.0
client_credentialstoken requests: If you use machine-to-machine OAuth 2.0, Google sendsPOSTrequests withgrant_type=client_credentialsfromAS15169withUser-Agent: Google-Shopping-Merchant-Integration(Content-Type: application/x-www-form-urlencodedorapplication/json). These token requests don't includeUCP-AgentorUser-Agent: OpenAuth.
2. UCP profile discovery (GET /.well-known/ucp)
Google periodically fetches your business profile at GET /.well-known/ucp to
discover your endpoints, capabilities, and public keys. See
Prepare your UCP profile.
- Source ASN:
AS15169(Google LLC). User-Agentheader:Google-Shopping-Merchant-Integration,Google/UCP*, orGoogle-UCP-Prober/1.0.- Standard HTTP headers:
Accept: application/jsonandRequest-Id. - No
UCP-Agentheader: Profile discovery requests don't include theUCP-Agentheader. Don't requireUCP-AgentonGET /.well-known/ucp.
3. Google Account Linking (OAuth 2.0) requests
If you support
Identity Linking - OAuth 2.0,
Google's Account Linking infrastructure sends server-to-server requests to your
OAuth 2.0 token, revocation, and JWKS endpoints for user-delegated
authorization_code and refresh_token grants.
Account Linking runs on a separate Google infrastructure pool from UCP checkout:
- Source ASNs:
AS15169(Google LLC) andAS396982(Google Cloud). BecauseAS396982also hosts Google Cloud customer workloads, always pair ASN rules forAS396982with OAuth 2.0 client authentication. User-Agentheader:OpenAuthorGoogle-AccountLinking-Fetcher/1.0(match*OpenAuth*orGoogle-AccountLinking-Fetcher*).- No UCP headers: Account Linking requests don't send the
UCP-Agentheader and don't use UCP RFC 9421 message signatures. They authenticate with your configured OAuth 2.0 client credentials.
CDN, WAF, and bot management checklist
Enterprise CDNs (for example, Akamai, Cloudflare, Fastly, or AWS CloudFront) evaluate traffic across multiple independent security modules. An IP or header allowlist in a network firewall rule frequently doesn't exempt the request from downstream rate limiters or bot management challenges.
Verify that your CDN and WAF configuration satisfies all four requirements in the following list:
- Exempt from geographic IP blocking (Geo-Firewall):
Don't block non-domestic source IPs on your UCP API paths,
/.well-known/ucp, or OAuth 2.0 endpoints. Google routes UCP and Account Linking requests from global data centers (AS15169andAS396982). Source IPs frequently resolve to countries outside your primary market. - Exempt from consumer per-IP rate limits (Rate Controls):
Consumer rate-limiting policies typically cap requests per client IP (for
example, 15 to 20 requests per second per IP). Google multiplexes requests
from many concurrent shoppers over a small number of shared outbound NAT
IPs. Per-IP rate limiters trigger HTTP
429or403blocks as traffic scales. Exempt verified Google UCP and Account Linking traffic from per-IP rate limits. As an alternative, apply rate limits per user token or checkout session. - Exempt from browser-based bot challenges (Bot Management):
Bot management modules (for example, Akamai Bot Manager or Cloudflare Bot
Management) frequently enforce browser checks on checkout and login
endpoints. Configure a bot-management exception for your UCP API paths,
/.well-known/ucp, and OAuth/tokenendpoints. Don't require the following browser checks on these endpoints:- Browser JavaScript challenges or CAPTCHAs
- Browser telemetry cookies (for example, Akamai
_abckorbm_sz) - Browser TLS / JA3 / JA4 fingerprint matching
- Don't use Google web crawler IP lists for UCP allowlisting:
Don't use Google web crawler or fetcher IP range files for your UCP or
Account Linking firewall allowlists. This restriction applies to
googlebot.json,common-crawlers.json,special-crawlers.json,user-triggered-fetchers.json, anduser-triggered-fetchers-google.json(see Verifying Requests from Google). Those IP lists cover web and search crawlers, not the full outbound pool used by UCP and Google Account Linking.