API Keys
API keys are the authentication mechanism against https://api.pos.lxsyscr.com. Each API key belongs to a single tenant and carries its own set of scopes and limits.
Anatomy
Every LX CloudPos API key follows this format:
lxs_live_a1b2c3d4_0011223344556677889900aabbccddeeff00112233445566
└──┬──┘ └──┬──┘ └────────────────────┬────────────────────┘
1 2 3| # | Component | Length | Purpose |
|---|---|---|---|
| 1 | Literal scope lxs_live_ | 9 | Identifies the production environment |
| 2 | Prefix (hex) | 8 | Visible in logs for identification |
| 3 | Secret (hex) | 48 | Private part — must never be shared |
Total: 64 characters + the literal scope = 73 characters.
How it’s stored server-side
LX CloudPos never stores the full API key. Only the following persist in the database:
- The prefix in plain text, to identify the API key in logs and in the CRM UI.
- A SHA-256 hash of the full value, to verify incoming requests.
If the API key is lost, it cannot be recovered: a rotation must be requested.
How to get an API key
- Contact the administrator of the LX CloudPos account.
- The admin opens the CRM → Integrations module → New API Key.
- Configures: name, tenant, scopes, and webhook URL (optional).
- When created, the system shows the full API key only once.
- The admin must deliver it through a secure channel (never plain email — 1Password Send, Bitwarden Send, Signal, etc. are recommended).
- The API key must be saved in the secrets manager before closing the CRM window.
Storage best practices
Do:
- Environment variables (
process.env.LXS_API_KEY). - Secret Manager (Google, AWS, Azure).
- HashiCorp Vault.
- Doppler, Infisical, or similar.
Don’t:
- Hardcode it in source code.
- Commit
.envfiles to Git (verify.gitignore). - Put it in public frontend configuration — the API key must live only in the backend.
- Log it in structured logs without masking the value.
Limits per API key
| Metric | Default value |
|---|---|
| Rate limit | 120 req/min |
| Maximum body size | 256 KB |
| Documents issued | No direct limit |
| Validity | Until manually revoked |