Your First Request

Hello-world examples for each RSA API. Replace tokens and IDs with real values.

POS API — Look up a member

GET/pos/api/v1/members/lookup?phone=5551234567
curl "http://localhost:5003/pos/api/v1/members/lookup?phone=5551234567" \
  -H "X-Api-Key: rsa_live_your_key_here"

Response:

{
  "memberId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "firstName": "Jane",
  "lastName": "Smith",
  "phone": "5551234567",
  "tier": "Gold"
}

Admin API — List stores

GET/admin/api/v1/stores
curl "http://localhost:5002/admin/api/v1/stores?limit=10" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

Response:

{
  "items": [
    { "id": "...", "name": "Store #001", "city": "Los Angeles", "state": "CA" }
  ],
  "cursor": null,
  "total": 1
}

Shopper API — Get loyalty balance

GET/api/v1/loyalty/balance
curl "http://localhost:5001/api/v1/loyalty/balance" \
  -H "Authorization: Bearer YOUR_SHOPPER_JWT"

Response:

{
  "points": 1250,
  "tier": "Silver",
  "nextTierPoints": 2500
}

Platform API — List tenants

GET/platform/api/v1/tenants
curl "http://localhost:5004/platform/api/v1/tenants?limit=5" \
  -H "Authorization: Bearer YOUR_PLATFORM_JWT"

Response:

{
  "items": [
    { "id": "...", "name": "Cardenas Markets", "slug": "cardenas", "status": "Active" }
  ],
  "cursor": null
}

Troubleshooting

StatusMeaning
401 UnauthorizedMissing or expired token. Check Authorization: Bearer ... header.
403 ForbiddenToken lacks required scope. Re-issue token with correct scope.
402 Payment RequiredTenant is in suspended or churned lifecycle state.
429 Too Many RequestsRate limit exceeded. Wait and retry.

All errors return ProblemDetails RFC 9457 with a traceId extension for support.