Rate limits
The Hub enforces per-party rate limits on high-traffic modules:
| Module | Limit |
|---|---|
| Token authorization | 100 requests / minute |
| Commands | 50 requests / minute |
| Location list | 200 requests / minute |
When exceeded, the Hub returns status_code: 2004 (rate limit exceeded).
Implement exponential backoff and respect Retry-After if provided.
OCPI status codes
All Hub responses use the standard OCPI envelope. Check status_code in every response:
| Code | Name | Meaning |
|---|---|---|
1000 | Success | Request completed successfully |
2000 | Generic error | Client or server error — check status_message |
2002 | Unauthorized | Invalid token or suspended party |
2003 | Not found | Resource does not exist |
2004 | Rate limit | Too many requests — back off and retry |
HTTP status codes
| HTTP | Typical cause |
|---|---|
200 | OCPI success (status_code: 1000) or OCPI error in body |
401 | Missing/invalid token or suspended party |
404 | Endpoint or resource not found |
429 | Rate limit (may also appear as 200 with status_code: 2004) |
OCPI errors are often returned with HTTP 200 and a non-1000 status_code in the JSON body. Always parse the envelope, not just the HTTP status.
Common integration errors
| Error / symptom | Likely cause | Resolution |
|---|---|---|
2002 on all requests | Invalid or revoked token | Re-check credentials; see Token Rotation |
| Empty location list | No routing rules | Contact account team to enable routing |
Authorization UNKNOWN | CPO unreachable | Check CPO connection health |
Command REJECTED | EVSE busy or invalid target | Verify location/EVSE IDs |
| Session not delivered | Missing cdr_token | CPO must set eMSP identity on session |
| Async delivery failure | eMSP receiver down | Fix receiver; contact support for re-drive |
Role enforcement
The Hub enforces party roles on endpoints:
| Error | Meaning |
|---|---|
| CPO-only endpoint called by eMSP | Wrong role for this operation |
| Party mismatch | URL path {country_code}/{party_id} does not match authenticated party |
Logging for support
Include these in support requests:
X-Request-IDandX-Correlation-IDfrom request/response headers- Timestamp (UTC)
- Endpoint and HTTP method
- Request and response bodies (redact tokens)