EIGENN.
docsguidesapichangelogpricingsign in
EIGENN.

Errors

Interpret Eigenn API statuses, optional error fields, request IDs, and safe retry signals.

Public REST errors use an object whose fields are optional because individual operations can return narrower error shapes.

{
  "error": "Unauthorized",
  "message": "Invalid API key",
  "description": "Authentication failed.",
  "requestId": "req_01HXYZ1ABCD23EFGH456JK",
  "retryAfterSeconds": 60
}

Do not make a client fail to parse an error when one of these fields is absent.

Status Codes

StatusMeaningTypical action
400Missing, malformed, or semantically invalid requestCorrect the request before retrying.
401Missing or invalid authenticationReplace or refresh the credential.
403Valid credential without a required scopeChange the grant; repeating the request will not help.
404Resource missing or inaccessible to the teamVerify the ID and team.
409Conflict with current state or an in-flight idempotent requestInspect state and Retry-After when present.
422Request structure failed validationCorrect the fields named in the description.
429Rate limit exceededWait for Retry-After.
500Unexpected server errorRetry a safe operation with backoff.

Individual operations can document more specific 400 or 409 shapes. For example, invoice creation can return a message-only conflict when an invoice number is already used.

Request IDs

Normalized REST errors include X-Request-ID and can include the same value in requestId. Log it with:

  • HTTP method
  • endpoint
  • status
  • operation ID
  • safe resource IDs
  • client timestamp

Never log the bearer token or sensitive customer payload merely to preserve debugging context.

Rate-limit middleware can return a minimal body before a request ID is attached. Treat headers as the primary retry signal for 429.

Validation Errors

Structural validation can return 422 with:

  • message set to Request validation failed
  • description containing field paths and validation messages

Route-specific business validation can return 400 instead. Handle the status and documented operation schema rather than assuming every input problem is 422.

Idempotency Errors

Authenticated writes documented in OpenAPI accept an optional Idempotency-Key of at most 128 characters.

Idempotent requests can return:

  • 400 for a key longer than 128 characters
  • 409 with Retry-After: 1 when another request using the same key is still processing
  • 503 with Retry-After: 1 when the replay guard cannot be established

The current OpenAPI standard response list does not enumerate 503, even though the idempotency guard can return it. Treat this as an operational response and retry the same request with the same key after the specified delay.

Successful idempotent responses can include:

  • Idempotency-Status: created
  • Idempotency-Status: replayed
  • Idempotency-Status: waited

Retry Policy

Safe automatic retry candidates:

  • GET after 429 or transient 5xx
  • a documented write with the same Idempotency-Key after a connection failure, 429, or idempotency 503

Require review before retrying:

  • an unkeyed write after an unknown network outcome
  • a 409 caused by business state
  • a 400 or 422
  • a 401 or 403

Use exponential backoff with jitter and cap attempts. Preserve the original method, URL, query, payload, credential, and idempotency key for a replay.

Related Pages

  • Authentication
  • Rate Limits
  • Developer API Setup

Customers API

Create, find, update, and delete team-scoped customer records through public API v1.

Forecasts and Stress Tests API

Compute forecasts, save stress-test scenarios, and read runway through the public metrics and reports contract.

On this page

Status CodesRequest IDsValidation ErrorsIdempotency ErrorsRetry PolicyRelated Pages

Eigenn docs

current product

Overview
Overview
OverviewAccount PreferencesAssistant AutomationAssistant Command CenterBank ConnectionsBilling and UsageBudgets and ForecastCommand CenterCustomer LifecycleCustomer RecordsCustomersDeveloper PlatformDocument Processing and ExtractionDocument VaultFinancial Analytics and ReportsFinancial OverviewInvoice InsightsInvoice ProductsInvoicesMarketplace IntegrationsNotifications and BrandingOnboarding and SupportOverviewReceivablesReceivables AnalyticsReceivables ControlsSecurity and AccessSettings OverviewStress TestsTeams and OrganizationsTone Profiles and ExperimentsTransaction Categories and RulesTransactionsWeekly Finance RitualWorkflow ExecutionsWorkflow PausesWorkflowsWorkspace Inbox and Approvals
OverviewBuild and Review a ForecastBuild Your First WorkflowConfigure Assistant OperationsConfigure Notifications and BrandingConfigure Receivables ControlsConnect Transaction RecordsCreate and Manage CustomersCreate and Send InvoicesDeveloper API SetupFirst Cash ReviewInvoice Collection WorkflowMaintain Transaction RulesManage Security and BillingManage Team AccessManage the Invoice LifecycleMCP WorkflowsMonitor and Recover WorkflowsOrganize and Share DocumentsProcess Inbox ItemsReconcile and Categorize TransactionsReview a Customer Finance RecordRun a Finance Operating ReviewRun a Receivables Tone ExperimentRun a Runway Stress TestRun Your First Command Center ReviewSet Up a WorkspaceTroubleshoot Account AccessWebhook DeliveryWeekly CFO Review
OverviewIntegrationsMCPSDKsWebhooks
OverviewAuthenticationBank Accounts APICustomers APIErrorsForecasts and Stress Tests APIInvoice Payments APIInvoices APIPaginationRate LimitsTransactions APIWebhooks API StatusWorkflows API Status
Overview
Overview