Partner integration checklist
Work through this checklist before your integration relies on Fictix in a real workflow. It covers what "production-ready" means for the API contract, auth and secrets, data quality, exports, simulation and runtime, and webhooks — the areas an integration team needs to confirm before launch.
API contract
/api/v1/demo-jobsis the primary external surface.-
/api/v1/catalog/*endpoints return current service, entity, capability, and export-pack metadata. -
/api/v1/demo-jobs/{job_ref}/statusreturns generated status, company summary, dataset summary, quality summary, and simulation summary. -
/api/v1/demo-jobs/{job_ref}/qualityreturns validation checks and a certificate. -
/api/v1/demo-jobs/{job_ref}/runtime-readinessreports static, trickle, and continuous-readiness state. -
/api/v1/demo-jobs/{job_ref}/entities/{entity}supports canonical entity aliases. /api/v1/demo-jobs/{job_ref}/entities/{entity}/exportsupports JSON and CSV.-
/api/v1/demo-jobs/{job_ref}/bundlefails with413rather than returning oversized responses. - Runtime/native routes remain documented as advanced routes, not as the first integration path.
Auth and secrets
- Customer onboarding begins in the Fictix Console, where project keys are created, rotated, and revoked.
- Management auth is enabled for creating and controlling demo jobs.
- Runtime API keys are generated per project.
- Runtime API key prefixes are safe for display; full keys are not.
- API keys are never written to frontend logs.
- Webhook secrets are accepted on create and never returned.
- Staging and production use separate credentials.
- Local development credentials are not used in staging docs or examples.
- Secret values are redacted from request, response, and error telemetry.
Data quality
-
Generated counterparty domains use reserved synthetic namespaces such as
.example,.test,.invalid, or a Fictix-owned fake namespace. - Entity counts in project metadata match fetchable entities.
- Canonical ledgers do not duplicate alias ledgers in export packs.
paymentsis treated as an alias ofcustomer_payments.bill_paymentsis treated as an alias ofvendor_payments.bank_transactions.bank_account_idresolves to an exported bank account.- invoice line
item_idresolves toitems. - bill line
item_idresolves toitems. - journal entries balance within a one-cent tolerance.
- invoice totals reconcile against amount paid and balance.
- bill totals reconcile against amount paid and balance.
- payroll gross, tax, benefit, and net pay reconcile.
- validation certificates are generated and exposed.
Export readiness
- Runtime CSV export pack returns a real ZIP file.
- ZIP contains all canonical ledgers that the UI advertises.
- ZIP includes a README or schema document.
- ZIP row counts reconcile against
record_counts. - Duplicate alias files are omitted or explicitly documented.
- Normalized line files are included when available:
invoice_lines.csvbill_lines.csvjournal_entry_lines.csvpayment_applications.csv
- CSV exports preserve stable headers.
- JSON-in-CSV cells are documented when unavoidable.
- Empty ledgers are either included intentionally or excluded consistently.
Simulation and runtime
- Simulation can start from a generated job.
- Simulation status returns current simulated time, mode, and state.
- Advancing time respects maximum advance limits.
- Step, pause, resume, dials, checkpoint, and restore routes are covered by tests.
- Events are written when simulation or scenario actions mutate state.
- Runtime reads remain tenant-scoped by project.
- Native-shaped routes for supported services return deterministic data for the same seed and company state.
- Runtime writes either mutate state consistently or return a documented unsupported-operation response.
Webhooks
- Webhook creation requires the
webhooksentitlement. - Callback URLs are SSRF-guarded.
- Subscription secrets are not returned.
- Delivery payloads are HMAC-SHA256 signed when a secret is configured.
- Delivery worker is running in staging/production.
- Durable outbox tables exist and migrations are applied.
- Duplicate delivery is possible and documented.
- Test event delivery works against a known receiver.
- Delivery failures are visible in telemetry.
Observability
- Errors include request ids or trace ids when available.
- Webhook delivery failures include project id, event type, and sanitized error.
Partner launch gate
Do not launch a partner integration until all of the following are true:
- create job works in staging with management auth
- Console-created project can create/rotate a runtime key and make a server-side runtime request in staging
- status reaches
ready - quality certificate is present
- entity pagination works for every advertised canonical entity
- CSV export works for every advertised canonical entity
- full CSV export pack downloads as ZIP
- runtime API key can read native-shaped data for selected services
- webhooks can deliver a signed test event
- simulation can advance and produce inspectable events
- test matrix and test run flows complete
- the docs site points to the same contract version as the deployed API
