syntheticcfo - Python client
Generate forensic-grade synthetic ERP data (SAP ECC, SAP S/4HANA, Oracle Cloud) from a script or notebook. Every dataset ships with a complete labelled fraud answer key, articulated financial statements and a reproducibility certificate: the same seed and configuration reproduce the package byte for byte. No language model ever generates the numbers.
The client has no dependencies beyond the standard library. Install it straight from the platform (this is version 0.2.0, which carries the one-line command):
pip install https://app.syntheticcfo.com/sdk/syntheticcfo-0.2.0-py3-none-any.whl
The package index copy (pip install syntheticcfo) is the earlier 0.1.0 until
0.2.0 is published there; it has the same client but no command line. Or, since
it is one file, take it directly and drop it anywhere:
curl -O https://app.syntheticcfo.com/sdk/syntheticcfo.py
Quickstart
Create an API key at https://app.syntheticcfo.com under Account, API access. The key carries your plan and monthly allowance. It cannot manage your account, read your chats or create more keys.
from syntheticcfo import Client
c = Client(api_key="scfo_...") # or set the SCFO_API_KEY env var
print(c.me()["plan"]) # your plan and remaining generations
job = c.generate(
platform="ORACLE", # SAP_ECC | SAP_S4HANA | ORACLE
industry="RETAIL", # TMT PHARMA MANUFACTURING FINANCIAL_SERVICES RETAIL
fraud="high", # none | low | medium | high
rows=600,
modules=["P2P", "O2C"], # subset of P2P O2C CE R2R HR MM FA
jurisdiction="ZA",
seed=42,
wait=True, # poll until the package is built
)
package = job.download("out/") # the four-layer audit package (zip)
lab = job.lab_export("out/") # JSONL tables + answer_key.jsonl + dataset card
print(job.insights()) # what was planted, by control
For model evaluation, add evaluation_mode=True: the shipped database then
withholds the ground-truth marker columns so nothing in the data betrays the
answer key, while the labels still ship separately in 01_Audit_Evidence.
Notes
- Plan limits apply exactly as in the app: over-plan requests are refused with an honest message, and row counts above your plan are clamped with a note in the package, never silently.
- A failed or interrupted generation refunds the metered credit automatically.
- Free-plan datasets and the public sample may not be redistributed, resold, or used to train or evaluate a competing product (see the Terms in the app).
Metadata
Release files for syntheticcfo 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| syntheticcfo-0.2.0.tar.gz | 7.9 kB | With provenance | Details for syntheticcfo-0.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| syntheticcfo-0.2.0-py3-none-any.whl | Python 3 | none | any | Details for syntheticcfo-0.2.0-py3-none-any.whl |
Total release size: 16.6 kB
Release files / syntheticcfo-0.2.0.tar.gz
| Download URL | syntheticcfo-0.2.0.tar.gz |
|---|---|
| Size | 7.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bad673bddbef10be036836c39f09ed2fd9eae5c8e26d518e99f1e05aea8e2962
|
|
BLAKE2b-256 checksum How to use checksums |
35ef7c9eb301117c26b428fdab3ea943f1c66303a67b2f69dc72d3b2c9a9dbae
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 7, 2026.
Transparency logRelease files / syntheticcfo-0.2.0-py3-none-any.whl
| Download URL | syntheticcfo-0.2.0-py3-none-any.whl |
|---|---|
| Size | 8.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9ba051f07ed135c131e00c7793f9d58408852e5f4460da4591708b3660d4c92c
|
|
BLAKE2b-256 checksum How to use checksums |
d6567ce61ec5b925531a45824714ff0d4a9947ea51282fffb2754042414b212a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 7, 2026.
Transparency logSecurity for syntheticcfo 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
Both files in this release have been uploaded with provenance metadata.
Attestation for syntheticcfo-0.2.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 7, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.