Skip to main content
The generated endpoint pages own the exact error schemas, status codes, and response headers. Use those Response sections when implementing wire-level handling. Branch on the machine-readable error code, not human-readable text. Messages and descriptions may become clearer without introducing a new API version.

Request IDs

Send an X-Request-Id header when you already have a correlation ID. Otherwise Watchdog creates one. Preserve the response request ID in logs and include it when contacting support. The OpenAPI document is served without caching and echoes request IDs like other API responses.

Rate limits

Watchdog applies limits before and after authentication to protect both the public edge and individual API keys. The generated endpoint pages contain the current limits and rate-limit response metadata. When Watchdog asks the client to slow down, respect the server-provided delay. Use the returned rate-limit metadata to back off before another request is rejected.

Retry guidance

  • Correct validation, authentication, and permission failures before retrying.
  • For a duplicate upload, follow the existing invoice identifier when the endpoint response provides one.
  • Respect server-provided retry delays for rate or capacity failures.
  • Use bounded exponential backoff for transient server failures.
  • Replay reads automatically only when they are idempotent. Replay uploads only when the endpoint contract confirms that no invoice resource was created.
Do not infer whether an upload created a resource from its status code alone. Follow the endpoint-specific response contract before retrying.