Scopes

OAuth scopes control what actions a token is authorized to perform. The RSA Platform uses both coarse scopes (bundles) and granular scopes (individual operations).

ScopeAccessIncludes
platform.readRead-only Platform APITenant list, retailer status, audit log
platform.writeWrite access Platform APICreate tenant, provision retailer, update features
admin.readRead-only Admin APIStores, offers, campaigns, users, vendors
admin.writeWrite access Admin APICreate/update/delete all Admin API resources
shopper.readRead-only Shopper APIProfile, offers, loyalty balance, campaigns
shopper.writeWrite access Shopper APIUpdate profile, enroll campaigns, redeem points
pos.readRead-only POS APIMember lookup, offer resolution, basket read
pos.writeWrite access POS APICreate baskets, earn/redeem points, finalize

Granular Scope Examples

Granular scopes are prefixed with the resource: offers:read, loyalty:points:redeem, pos:baskets:create, pos:receipts:read.

Use coarse scopes unless you need minimal-privilege grants for specific capabilities.

Scope Selection by Integration Type

IntegrationRecommended Scopes
POS terminal (full)pos.read pos.write
POS terminal (read-only, e.g. display)pos.read
Shopper mobile appshopper.read shopper.write openid
Backend reporting serviceadmin.read
Admin portaladmin.read admin.write openid
Platform management serviceplatform.read platform.write
ETL / data pipelineadmin.read or granular offers:read

Requesting Scopes

Specify scopes in the scope parameter of your token request:

# Client credentials
curl -X POST http://localhost:5000/connect/token \
  -d "grant_type=client_credentials" \
  -d "client_id=YOUR_ID" \
  -d "client_secret=YOUR_SECRET" \
  -d "scope=admin.read admin.write"

Your OAuth app registration must have the scope pre-authorized. Requesting a scope not registered for your app will result in the scope being silently excluded or a 400 Bad Request.

Feature-Gated Scopes

Some granular scopes are only included in tokens when the corresponding feature flag is enabled for the retailer. For example, pos:receipts:read is only emitted when the digital-receipts feature is active. See Feature Entitlements.