# Customer ERP → CFO DEV/UAT acceptance report

> Sanitized evidence only. No client secret, token, Authorization header, cookie or PII.

- Customer / reference runtime:
- ERP/runtime version:
- Origin attestation (runtime that sent the HTTP requests):
- Target zone: `dev` / `uat`
- CFO base URL:
- Client ID (non-secret):
- Grant-manifest SHA-256:
- Schema/catalog versions:
- Capability grant mode: `subset` / `complete_catalog`
- Supported capability inventory fingerprint/count:
- Granted capability inventory fingerprint/count:
- Exact set equality: YES / NO / NOT APPLICABLE
- Test window:
- Customer technical owner:
- CFO approver:

## Mandatory prerequisite

- Odoo/reference local proof: PASS / FAIL
- If target is UAT — Odoo-to-CFO DEV acceptance report: PASS / FAIL / evidence pointer
- DEV and UAT credentials/identities confirmed separate: YES / NO

## Coverage result

| Facility | Reporting period | Scope | Activity | Catalog item | Unit | Dry run | Persist | Same-key replay | Business duplicate | UI reconciliation |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| | | | | | | | | | | |

## Runtime resilience and negative tests

| Case | Result | Sanitized evidence |
| --- | --- | --- |
| Lost accepted response → same-key retry | | |
| Odoo restart → durable identity recovery | | |
| Supported-but-ungranted capability authorization | | `403 AUTHORIZATION_DENIED` / `not_applicable` |
| Unsupported capability input validation (complete catalog only) | | `422 ACTIVITY_CAPABILITY_UNAVAILABLE` / `not_applicable` |
| Ungranted facility/period denied | | `403 AUTHORIZATION_DENIED` or `404 RESOURCE_NOT_FOUND` |

## Job and reconciliation evidence

Record only request/idempotency SHA-256 fingerprints, `job_id`, correlation ID, terminal counters,
sanitized row outcome, and CFO UI values.

## Result

- Exercised tuples / manifest tuples:
- PASS tuples:
- FAIL tuples:
- Residual failures and trace IDs:
- Decision: PASS / FAIL

This report proves only the named ERP/runtime, target zone and exercised grant. It does not prove
untested authority, another customer's ERP, PRD readiness or production cutover.
