Pin a company. Everyone replays the same data.
If the data can change between runs, every test built on it is a coin flip. Fictix stores the company you save, so the data your tests read can't drift.
What a pinned company actually pins
Save or publish a company and it gets a short ID like fix-7kq. Fictix stores the generated company itself: the same customers and vendors, the same invoices and payments down to the cent, the same identifiers, the same planted needles in the same places. Anyone who opens that ID reads exactly the same data. Regenerating from the same seed gets close, but not identical — so pin the ID, not the seed.
The publish-ID handoff
A PM builds and tunes a company in the console and publishes it. An engineer reads the same company by ID — in the console, or over the REST API with a project key:
# the PM's exact company, read from your laptop or CI
GET https://api.fictix.ai/api/v1/orgs/{slug}/native/qbo/v3/company/{id}/query?query=SELECT * FROM Invoice
X-API-Key: <project key>One ID moves a complete environment between people and stages. The demo the AE saw is the company the SE debugs is the fixture CI runs. A packaged CLI is coming.
Replay, checkpoints, and variants
Replay reads the stored company, so it's exact. Checkpoints save the simulation's state so you can restore it before each run. Variant runs regenerate the company with one setting changed, so you can compare against a pinned baseline.
Why this kills flaky CI
Pin the company ID in the pipeline and the only variable between two runs is your code. If your tests write data, restore a checkpoint first. A red build means a real regression, every time — no retries, no quarantine, no “just run it again.”
Questions
Is a seed the same as a saved company?
No. A seed is the input a company is generated from; regenerating from it gets close, but not identical. The saved company, pinned by its ID, is the reproducible artifact — that's what you hand to CI.
Does a pinned company reproduce across machines and CI?
Yes. Fictix stores it, so your laptop, CI and the demo all read exactly the same data by ID.
Can I change one thing and keep the rest fixed?
Variant runs regenerate the company with one setting changed, so you can compare against a pinned baseline.