Polling, retries & idempotency

Build resilient asynchronous workflows without webhooks.

Polling

Account imports and recalculation can take seconds to minutes depending on history. Poll every 2–5 seconds initially, increase the interval for long jobs, and stop on completed, failed, or canceled.

StateMeaning
queuedAccepted and waiting for a worker
in_progressCurrently importing or calculating
completedSafe to continue
failedInspect failed_reason and decide whether to retry
canceledStart a new operation only when appropriate

Safe retries

GET requests are safe to retry. Treat user creation and link creation as idempotent by stable reference or input. Avoid blindly repeating account or report creation after a network timeout; read the resource first.

No public webhooks yet

The current integration contract is polling-only. Completion webhooks are on the roadmap.