Customer API / Troubleshooting

Resolve Customer API errors

Start with the status and visible problem response, correct the request or access policy, and retry only when appropriate.

In this article

Read the response

Validation and rate-limit failures use a JSON problem response with title, status, and detail. Authentication and authorization responses can contain less detail by design. Use the status first, then apply the customer action in this table.

Status Meaning Action
400 The request is malformed or its parameters conflict. Read detail; check required timestamps, hierarchy combinations, repeated-filter count, positive numeric values, and cursor use.
401 The credential could not be accepted. Renew an expired JWT or OAuth token, or verify the registered client certificate.
403 The credential does not permit the requested scope, source, site, line, filter, or interval. Rerun discovery and compare the request with the returned hierarchy, capabilities, and limits.
404 The route is unavailable. Confirm the production base URL and documented endpoint path. Escalate if a previously working route remains unavailable.
429 The daily request allowance is exhausted. Honor Retry-After and RateLimit-Reset; do not retry continuously.
500 The request could not be completed. Retry a bounded number of times with exponential backoff.
503 A required service is temporarily unavailable. Retry with exponential backoff and jitter.

Resolve a 403 response

Call discovery with the same credential. Confirm that the requested resource is listed, the site and narrower hierarchy identifiers are returned together, the source and filters are supported, and the time range is within the effective limits. Do not guess identifiers from Dashboard URLs or another integration.

If discovery itself returns 403, review the integration's active state, authentication method, scopes, customer ownership, site and line restrictions, and enabled data sources with your Wavac account administrator.

Retry safely

Retry only 429, 500, and 503 responses unless the problem detail explicitly states otherwise. Keep the same query and cursor, apply the server's delay when provided, and stop after a bounded number of attempts. Surface the failure instead of retrying indefinitely.

Correct 400, 401, 403, and 404 conditions before sending the request again. Repeating an unchanged permanent failure consumes allowance without changing the outcome.

Escalate without exposing secrets

When requesting help, include the UTC timestamp, method and endpoint without sensitive query values, HTTP status, problem title, and response correlation identifier. Never include a bearer token, private key, client certificate package, generated Postman ZIP, or customer payload.