Managing the client ID and client secret
Client ID
Secret
Authentication
App registration
Who this article is for
For developers who want to manage credentials securely after registering a ReceiptRoller app.
For developers who want to manage credentials securely after registering a ReceiptRoller app.
ReceiptRoller's OAuth authentication uses a pair of a client ID and a client secret issued per app. The client ID is an identifier that is fine to make public, but the client secret is confidential information equivalent to a password.
How to obtain them
- Developer portal → App → open the target app
- The "Credentials" tab
- The client ID is displayed (copyable)
- The client secret is shown only at initial issuance. After that, regeneration is required
The difference between the client ID and the secret
| Item | Client ID | Client secret |
|---|---|---|
| Public / private | May be public | Private |
| Role | Identifies the app | Authenticates the app |
| Client-side code | OK to include | Absolutely not (server side only) |
| URL parameter | OK to include | Absolutely not |
Storage rules
- Store in environment variables or a secret management service (AWS Secrets Manager, Azure Key Vault, GCP Secret Manager, etc.)
- Do not hard-code it into source (if it slips into git, it's game over when the repository leaks)
- Use separate secrets for production / staging / development
- Grant access permission only to production-environment service accounts
- Do not include it in log / error output
What to do on a leak
Emergency procedure: if a secret leak is suspected, regenerate it in the developer portal immediately. The old secret is invalidated.
- Developer portal → App → Credentials → "Regenerate secret"
- Store the new secret securely
- Update the production environment's environment variables and deploy
- Choose "invalidate immediately" or "invalidate after 24 hours" for the old secret
- Check the audit log for any unauthorized use
Operating across multiple environments
We recommend always registering separate apps for production and development. Overloading multiple environments onto a single app carries the risk that a development-time glitch affects production users.
Production app: MyApp Production → Client ID: prod_xxx → Secret: the production secret management service Development app: MyApp Dev → Client ID: dev_xxx → Secret: each developer's own .env
Related guides
Published: 2026-04-27
Updated: 2026-07-05
Category
Tags
API (22)
OAuth (15)
Android (10)
iOS (9)
Webhook (6)
Troubleshooting (5)
api (5)
App registration (4)
POS Integration (4)
Reference (4)