Skip to content
Live in production, in shadow mode: FingerTrackID recommends, your system decides.Status →

Integration checklist

  • Named administrator account activated through the invitation (or Esqueceu sua senha?); verified email and authenticator completed.
  • Each Início step is actually Concluída, not merely sent or Aprovada.
  • Current membership/role and exact application/environment match the integration.
  • Allowed website origins are exact HTTPS origins, without paths, ports or wildcards.
  • Configurar a coleta web uses one of the application’s origins and the owned base domain; its generated collector is collect.<base-domain>.
  • Integração e saúde › Origens das páginas lists every page origin that collects (for example the apex and www), all under the collection domain, at most 10.
  • The automatic release/policy/admission and technical retention steps are complete in Início; Aguardando revisão is not done.
  • Other members use named accounts and the least role required for their work.
  • Issued inputs are complete and come from actual configuration/verified handoff.
  • DNS/ownership/certificate/health proof for collect.<your-domain> is current; preparing records is not activation.
  • The HMAC secret was received once in the console and stored in the backend’s secret manager; no credential request remains Aguardando você receber o segredo.
  • Actual client permissions and the server client’s rate limit in force (standard tier: 5 requests per second, burst 10; see limits) match the backend configuration.
  • Your server credential is installed with active admission and your collection domain is active; the signed API is live in production in shadow mode and Web SDK collection is deployed there (status).
  • Applicable security/isolation, applied technical retention/disposal and operational/recovery proofs are confirmed.
  • Active qualified release, policy, admission and explicit application activation are recorded before real data.
  • HMAC uses the 32 decoded bytes from the backend secret manager, never the 64-character hex text.
  • Apart from its single reveal in the console, no actual secret appears in chat, browser, email, command arguments/output, local files or repository.
  • The signature self-check reproduces its public synthetic vector on the backend’s Node.js (24.16.0 or later on the 24 line; on Vercel, Node.js 24.x).
  • Backend clock is synchronized; X-FTID-Timestamp is in seconds.
  • Every attempt has a new UUIDv7 request_id, timestamp and signature, including after 429/503.
  • Closed request serialized once with JSON.stringify; retries use the exact same bytes and token, including null.
  • Logical idempotency_key/external_event_id are unique, retained and never regenerated after an uncertain result.
  • A definitive 410 assessment-result-expired stops reconciliation and never creates a replacement historical operation.
  • Exact Content-Type, route and headers; no Content-Encoding, Expect, tenant/client selector or nonce alias.
  • Trusted identity/event time come from the backend; references are opaque, stable keyed pseudonyms with no personal data, account_ref always travels with the same subject_ref, and the HMAC key and prefix never change silently (person and account references).
  • New integrations send the v1.1 request, accepted in production, with one tag per call site; an integration that stays on v1 uses only LOGIN, WITHDRAWAL and TRADE, unchanged.
  • Tags contain no personal data and at most ten digits; a retry repeats the same tag.
  • Login placement follows completed server authentication/required MFA; on v1, registration/recovery do not invent journeys.
  • Response/Problem validated against the downloaded contract of the profile sent; expected event and tag (v1.1) or journey (v1) checked.
  • Null score handled as no score; returned recommendation, basis and effective versions preserved.
  • Your system executes its own decision/fallback; initial SHADOW does not automatically block users.
  • Rotation can hold two credentials, switch to the new one and retire the old one within the approved overlap.
  • Ordinary rotation preserves current permissions/rate and never exceeds a 24-hour overlap; changing permissions requires a separate reviewed configuration.
  • Support correlations retained without tokens, cookies, personal data or full payloads in logs.
  • Backend origin configured as https://api.fingertrackid.com, exactly as written.
  • Every completed login is assessed, including with event_context_token: null and for social/OAuth logins (integration guidance).
  • Integration failures never block the login, and configuration errors (authentication-failed, forbidden, validation-failed, invalid secret encoding) produce a clear error log or alert.
  • A 409 binding-conflict logs an error and alerts, and the login continues.
  • The integration is behind your own feature flag, enabled first for internal accounts.
  • Exact approved private SDK version downloaded in the dash, and its SHA-256/SHA-512 checked against the dash before installation.
  • One SDK copy, initialized only in browser code for the current document/account lifecycle.
  • Exact active collection origin in CSP connect-src; no assumed script URL or fallback collector.
  • No page instrumentation (Sentry, Datadog, OpenTelemetry or another fetch wrapper) adds headers to requests to the collection origin; its OPTIONS requests ask only for the SDK’s own headers and get 204 (tracing headers).
  • Both issued CNAMEs remain DNS-only and the ownership TXT keeps its issued value; if the verification lapsed, Verificar agora renewed it.
  • The page uses createActionContextHelper (recipe): prefetch() on the first intent of the assessed action’s form (focusin/pointerdown, never at page load) after applicable consent, one take() per action, and no form values/passwords/recovery codes reach the SDK; minRemainingMs stays above your backend’s margin (lifecycle).
  • A login that redirects to Google or another OAuth provider collects before the redirect or on a page after the callback (login with redirects); the backend logs when a login arrives without a token, and why.
  • Every collecting page is on one of those allowed origins; any other origin gets TRANSPORT_ERROR. Device continuity is per origin: the same browser on www and on the apex counts as two installations.
  • The browser sends the token with its expiresAt; the backend sends null when too little time is left, and on 400 event-context-invalid assesses once more as a new operation with null.
  • At submit the page waits for the context with take(), which resolves within its waitMs ceiling and never aborts the SDK; a classic form holds its navigation until then, and a single-page app keeps the SDK out of components that unmount at submit.
  • The SDK prepares only on pages with an assessed action, and close() follows the backend’s business response, so unclosed sessions do not hold the 1000-session limit.
  • The installed SDK is the version the dash offers (0.3.0 or later for the helper), and your application’s collection is set up for that version; with 0.1.1, a new collection uses a new client, closed only when no token of the old one is pending (SDK 0.1.1).
  • Your privacy policy describes the collection (data collected and processing), validated by your DPO.
  • One retained handle/context per new assessed action; retries keep the captured result including null.
  • Initialization, collection, synchronous context and network failures leave normal authentication functional.
  • Client remains alive through the bounded first assessment attempt; a pending page teardown does not extend token validity.
  • Logout/account switch calls close() and discards handles without delaying normal logout.
  • Requested feedback capabilities are actually active before action/outcome calls.
  • Feedback signs the exact assessment path/ID and validates its own request/receipt/Problem contract.
  • Reported action reflects what your product actually did; a block/score is not fraud truth.
  • Shadow evaluation records assessment IDs, recommendations and your own decisions, and keeps the feedback receipts’ alignment.
  • Outcome correction references the current leaf and appends a fact without rewriting history.
  • Console Acessos and Integração e saúde reflect the intended scope; unavailable, truncated or expired results stay explicit.
  • With account_ref sent, an account’s first login with a completed browser collection shows Primeira vez: ainda sem histórico in Contexto do acesso (without one, Sem coleta concluída do navegador), and a later login of it with browser context, within 90 days of an earlier login that also had a browser collection with a linked browser installation, shows Dispositivo novo para esta conta evaluated (Sim or Não) instead of Conta não informada pelo sistema da empresa; no 409 binding-conflict appears in your logs.
  • Revoked membership, crossed origin/key and unknown request state have been exercised with synthetic inputs.
  • A pending request can be cancelled with Cancelar a solicitação pendente; existing artifacts remain and an uncertain result is checked with Recarregar o estado on the same request.
  • Uso interpreted as estimates and exports as scoped/redacted/expiring data, not invoices or raw collection.