URS-031 · Record all transactions with timestamps and user IDs
Title: Record all transactions with timestamps and user IDs Date: 2026-08-03T23:03:21.163Z Duration: 107.3s Overall Status: ✅ PASS
User Requirement
Section titled “User Requirement”The system shall record all transactions (orders, edits, returns) with timestamps and user IDs.
Source: User_Requirement_Specifications_Vantis_DeviceFlow.xlsx — the run below proves the system meets this requirement.
Environment
Section titled “Environment”- Inbox URL: http://localhost:38165
- Database: localhost:44481/cc_repinbox_dev
Status: ✅ PASS
Test Steps
Section titled “Test Steps”Each step below corresponds to one Playwright test that ran sequentially. Screenshots and video recordings provide visual evidence of the UI behaviour.
1. Step 1: Logged in as Blair Bennett — ✅ PASS
Section titled “1. Step 1: Logged in as Blair Bennett — ✅ PASS”What this step proves:
Authenticates as Blair Bennett (Corveta sales rep), establishing the user identity that will be recorded against subsequent transactions.
Audit events generated by this step:
(Evidence matched by declared name — step timing not available or no events fell in window)
| Time | Type | Action | User | Org | Performed |
|---|---|---|---|---|---|
| 2026-08-03 23:03:24Z | user_log | user:login | blair.bennett@corvetasurgical.com | Corveta Surgical Group | — |
| 2026-08-03 23:03:28Z | user_log | user:login | blair.bennett@corvetasurgical.com | Corveta Surgical Group | — |
| 2026-08-03 23:04:02Z | user_log | user:login | blair.bennett@corvetasurgical.com | Corveta Surgical Group | — |
| 2026-08-03 23:04:39Z | user_log | user:login | blair.bennett@corvetasurgical.com | Corveta Surgical Group | — |
| 2026-08-03 23:04:47Z | user_log | user:login | blair.bennett@corvetasurgical.com | Corveta Surgical Group | — |
| 2026-08-03 23:04:55Z | user_log | user:login | mark.manufacturer@vantismedical.com | Vantis | — |
Screenshots:

Video recording:
2. Step 2: First order — ✅ PASS
Section titled “2. Step 2: First order — ✅ PASS”What this step proves:
Submits the first bill-only order as Blair Bennett. The system records the order in billing_orders with created_by_user_id and a server-side created_at timestamp.
Audit events generated by this step:
(Evidence scoped to step execution window: 2026-08-03T23:03:38.104Z → 2026-08-03T23:03:59.189Z)
| Time | Type | Action | User | Org | Performed |
|---|---|---|---|---|---|
| 2026-08-03 23:03:56Z | billing_order | status_change | blair.bennett@corvetasurgical.com | Vantis | — |
| 2026-08-03 23:03:56Z | decision | bill_only.link_purchase_order | blair.bennett@corvetasurgical.com | Corveta Surgical Group | no |
| 2026-08-03 23:03:56Z | decision | bill_only_order.inventory_items_decrement | blair.bennett@corvetasurgical.com | Vantis | yes |
| 2026-08-03 23:03:56Z | decision | bill_only_order.direct_po_import_on_create | blair.bennett@corvetasurgical.com | Vantis | no |
| 2026-08-03 23:03:57Z | transactional_email | new_bill_only | — | Corveta Surgical Group | — |
Emails triggered by this step:
(Evidence matched by declared name — step timing not available or no events fell in window)
Email 1: New Bill-Only Order - 8/3/2026 - Vantis BO-1
Template: New_Bill-Only_Order_-_8_3_2026_-_Vantis_BO-1

Email 2: New Bill-Only Order - 8/3/2026 - Vantis BO-2
Template: New_Bill-Only_Order_-_8_3_2026_-_Vantis_BO-2

Screenshots:





Video recording:
3. Step 3: Second order — ✅ PASS
Section titled “3. Step 3: Second order — ✅ PASS”What this step proves:
Submits a second bill-only order, demonstrating that each transaction is recorded independently with its own user ID and a distinct timestamp.
Audit events generated by this step:
(Evidence matched by declared name — step timing not available or no events fell in window)
| Time | Type | Action | User | Org | Performed |
|---|---|---|---|---|---|
| 2026-08-03 23:03:56Z | billing_order | status_change | blair.bennett@corvetasurgical.com | Vantis | — |
| 2026-08-03 23:03:56Z | decision | bill_only_order.inventory_items_decrement | blair.bennett@corvetasurgical.com | Vantis | yes |
| 2026-08-03 23:04:33Z | decision | bill_only_order.inventory_items_decrement | blair.bennett@corvetasurgical.com | Vantis | yes |
| 2026-08-03 23:04:33Z | billing_order | status_change | blair.bennett@corvetasurgical.com | Vantis | — |
Emails triggered by this step:
(Evidence matched by declared name — step timing not available or no events fell in window)
Email 1: New Bill-Only Order - 8/3/2026 - Vantis BO-1
Template: New_Bill-Only_Order_-_8_3_2026_-_Vantis_BO-1

Email 2: New Bill-Only Order - 8/3/2026 - Vantis BO-2
Template: New_Bill-Only_Order_-_8_3_2026_-_Vantis_BO-2

Screenshots:

Video recording:
4. Step 4: Billing list with recorded transactions — ✅ PASS
Section titled “4. Step 4: Billing list with recorded transactions — ✅ PASS”What this step proves:
Views the billing list as Blair, confirming that the Submitter and Created columns expose the recorded user and timestamp for each transaction in the UI.
Screenshots:

Video recording:
5. Step 5: Returns list — ✅ PASS
Section titled “5. Step 5: Returns list — ✅ PASS”What this step proves:
Views the returns list, confirming that the Created By and Created columns expose user and timestamp attribution for return transactions.
Screenshots:

Video recording:
6. Step 6a: Cross-user billing view — ✅ PASS
Section titled “6. Step 6a: Cross-user billing view — ✅ PASS”What this step proves:
Logs in as Mark Manufacturer to verify that Blair’s order transactions are visible to a different authorized user with the original user attribution intact.
Audit events generated by this step:
(Evidence matched by declared name — step timing not available or no events fell in window)
| Time | Type | Action | User | Org | Performed |
|---|---|---|---|---|---|
| 2026-08-03 23:03:24Z | user_log | user:login | blair.bennett@corvetasurgical.com | Corveta Surgical Group | — |
| 2026-08-03 23:03:28Z | user_log | user:login | blair.bennett@corvetasurgical.com | Corveta Surgical Group | — |
| 2026-08-03 23:04:02Z | user_log | user:login | blair.bennett@corvetasurgical.com | Corveta Surgical Group | — |
| 2026-08-03 23:04:39Z | user_log | user:login | blair.bennett@corvetasurgical.com | Corveta Surgical Group | — |
| 2026-08-03 23:04:47Z | user_log | user:login | blair.bennett@corvetasurgical.com | Corveta Surgical Group | — |
| 2026-08-03 23:04:55Z | user_log | user:login | mark.manufacturer@vantismedical.com | Vantis | — |
Screenshots:

Video recording:
7. Step 6b: Cross-user returns view — ✅ PASS
Section titled “7. Step 6b: Cross-user returns view — ✅ PASS”What this step proves:
As Mark Manufacturer, verifies that return transactions are also visible cross-user with Created By and Created columns showing the original submitter.
Screenshots:

8. Step 7: Combined transaction log — ✅ PASS
Section titled “8. Step 7: Combined transaction log — ✅ PASS”What this step proves:
Renders a live query from billing_orders, inventory_transactions, audit_events, and returns tables, proving every recorded transaction has a user and timestamp.
Screenshots:

Video recording:
Database Validations
Section titled “Database Validations”The following SQL queries ran against the application database after the Playwright scenarios completed. Each query asserts a specific condition that proves the feature under test persisted its data correctly.
Bill-only orders recorded with user ID + timestamp — ✅ PASS
Section titled “Bill-only orders recorded with user ID + timestamp — ✅ PASS”Assertion: At least two billing_orders created by Blair in the test window, each with created_by_user_id and created_at populated
SELECT id, order_number, status, created_by_user_id, created_at FROM billing_orders WHERE created_by_user_id = $1 AND created_at > NOW() - INTERVAL '30 minutes' ORDER BY created_at ASC| id | order_number | status | created_by_user_id | created_at |
|---|---|---|---|---|
| 019fc9de-9a8b-7494-90d5-c5a7cff862fa | BO-1 | submitted | 17b8c9d0-e1f2-3456-1234-567890123456 | 2026-08-03T23:03:56.721Z |
| 019fc9df-2a5c-7c7a-80a6-1809f426e4fe | BO-2 | submitted | 17b8c9d0-e1f2-3456-1234-567890123456 | 2026-08-03T23:04:33.587Z |
Inventory transactions recorded with timestamp — ✅ PASS
Section titled “Inventory transactions recorded with timestamp — ✅ PASS”Assertion: inventory_transactions rows exist for the bill-only orders, each with a non-null created_at
SELECT id, source_type, source_id, created_at, distributor_organization_id, manufacturer_organization_id FROM inventory_transactions WHERE source_type = 'bill_only_order' AND created_at > NOW() - INTERVAL '30 minutes' AND (distributor_organization_id = $1 OR manufacturer_organization_id = $1) ORDER BY created_at ASC| id | source_type | source_id | created_at | distributor_organization_id | manufacturer_organization_id |
|---|---|---|---|---|---|
| 019fc9de-9a9c-70be-be04-42519b0cc8d8 | bill_only_order | 019fc9de-9a8b-7494-90d5-c5a7cff862fa | 2026-08-03T23:03:56.721Z | b2c3d4e5-f6a7-8901-bcde-f12345678901 | NULL |
| 019fc9df-2a65-7357-920e-e0117fab83ca | bill_only_order | 019fc9df-2a5c-7c7a-80a6-1809f426e4fe | 2026-08-03T23:04:33.587Z | b2c3d4e5-f6a7-8901-bcde-f12345678901 | NULL |
Inventory history records each change with a timestamp — ✅ PASS
Section titled “Inventory history records each change with a timestamp — ✅ PASS”Assertion: inventory_history contains bill_only_order rows in the test window, each with created_at populated
SELECT ih.id, ih.item_id, ih.quantity, ih.info, ih.created_at FROM inventory_history ih WHERE ih.created_at > NOW() - INTERVAL '30 minutes' AND ih.info->>'reason' = 'bill_only_order' ORDER BY ih.created_at ASC LIMIT 20| id | item_id | quantity | info | created_at |
|---|---|---|---|---|
| 019fc9de-9aa3-7c23-8536-d26b4ce9fcdf | 42426acb-4574-4227-a715-c017f489f23a | 2 | {"action":"removed","reason":"bill_only_order","bestEffort":true,"billingOrderId":"019fc9de-9a8b-7494-90d5-c5a7cff862fa","shortageQuantity":0,"requestedQuantity":2} | 2026-08-03T23:03:56.721Z |
| 019fc9de-9aa3-7c23-8536-d26c4a6b82eb | b165230e-afae-4bc0-a96d-93085f92a5a4 | 3 | {"action":"removed","reason":"bill_only_order","bestEffort":true,"billingOrderId":"019fc9de-9a8b-7494-90d5-c5a7cff862fa","shortageQuantity":0,"requestedQuantity":3} | 2026-08-03T23:03:56.721Z |
| 019fc9df-2a70-7d4a-871b-0217603852b7 | 42426acb-4574-4227-a715-c017f489f23a | 1 | {"action":"removed","reason":"bill_only_order","bestEffort":true,"billingOrderId":"019fc9df-2a5c-7c7a-80a6-1809f426e4fe","shortageQuantity":0,"requestedQuantity":1} | 2026-08-03T23:04:33.587Z |
| 019fc9df-2a70-7d4a-871b-02186e6823ed | b165230e-afae-4bc0-a96d-93085f92a5a4 | 1 | {"action":"removed","reason":"bill_only_order","bestEffort":true,"billingOrderId":"019fc9df-2a5c-7c7a-80a6-1809f426e4fe","shortageQuantity":0,"requestedQuantity":1} | 2026-08-03T23:04:33.587Z |
Audit events recorded with user ID + timestamp — ✅ PASS
Section titled “Audit events recorded with user ID + timestamp — ✅ PASS”Assertion: At least one audit_events row in the test window has both user_id and created_at populated, and no row is missing created_at
SELECT id, organization_id, user_id, event_type, action, object_id, created_at FROM audit_events WHERE created_at > NOW() - INTERVAL '30 minutes' AND organization_id IN ($1, $2) ORDER BY created_at ASC LIMIT 50| id | organization_id | user_id | event_type | action | object_id | created_at |
|---|---|---|---|---|---|---|
| 019fc9de-06a2-77d5-aa48-da75ab48306e | b2c3d4e5-f6a7-8901-bcde-f12345678901 | NULL | checklist | checklists.create | 019fc9de-069b-7ae8-802a-1548f45b11c5 | 2026-08-03T23:03:18.935Z |
| 019fc9de-0714-704f-baa4-00700769a895 | b2c3d4e5-f6a7-8901-bcde-f12345678901 | NULL | decision | ensure_lot_expiration_checklist | b2c3d4e5-f6a7-8901-bcde-f12345678901 | 2026-08-03T23:03:19.061Z |
| 019fc9de-1cf0-71a0-a1c5-8339e3c61fb7 | b2c3d4e5-f6a7-8901-bcde-f12345678901 | 17b8c9d0-e1f2-3456-1234-567890123456 | user_log | user:login | NULL | 2026-08-03T23:03:24.673Z |
| 019fc9de-2a45-7e93-9702-f539bf27ab90 | b2c3d4e5-f6a7-8901-bcde-f12345678901 | 17b8c9d0-e1f2-3456-1234-567890123456 | user_log | user:login | NULL | 2026-08-03T23:03:28.081Z |
| 019fc9de-9a90-78e8-bdaa-6cfa59db0065 | a1b2c3d4-e5f6-7890-abcd-ef1234567890 | 17b8c9d0-e1f2-3456-1234-567890123456 | decision | bill_only_order.inventory_items_decrement | 019fc9de-9a8b-7494-90d5-c5a7cff862fa | 2026-08-03T23:03:56.721Z |
| 019fc9de-9aaa-78cd-a84a-08b3698b4815 | a1b2c3d4-e5f6-7890-abcd-ef1234567890 | 17b8c9d0-e1f2-3456-1234-567890123456 | decision | bill_only_order.direct_po_import_on_create | 019fc9de-9a8b-7494-90d5-c5a7cff862fa | 2026-08-03T23:03:56.721Z |
| 019fc9de-9aae-7b67-9113-f1f5704830d2 | a1b2c3d4-e5f6-7890-abcd-ef1234567890 | 17b8c9d0-e1f2-3456-1234-567890123456 | billing_order | status_change | 019fc9de-9a8b-7494-90d5-c5a7cff862fa | 2026-08-03T23:03:56.721Z |
| 019fc9de-9ab4-7cce-84f9-84b3ead1513e | b2c3d4e5-f6a7-8901-bcde-f12345678901 | 17b8c9d0-e1f2-3456-1234-567890123456 | decision | bill_only.link_purchase_order | 019fc9de-9a8b-7494-90d5-c5a7cff862fa | 2026-08-03T23:03:56.721Z |
| 019fc9de-9d9f-7c33-9270-6e47b100b926 | b2c3d4e5-f6a7-8901-bcde-f12345678901 | NULL | transactional_email | new_bill_only | 019fc9de-9a8b-7494-90d5-c5a7cff862fa | 2026-08-03T23:03:57.627Z |
| 019fc9de-aff0-76ba-b9fd-36375904db1f | b2c3d4e5-f6a7-8901-bcde-f12345678901 | 17b8c9d0-e1f2-3456-1234-567890123456 | user_log | user:login | NULL | 2026-08-03T23:04:02.324Z |
| 019fc9df-2a60-7c72-b0be-bf5f8caed54a | a1b2c3d4-e5f6-7890-abcd-ef1234567890 | 17b8c9d0-e1f2-3456-1234-567890123456 | decision | bill_only_order.inventory_items_decrement | 019fc9df-2a5c-7c7a-80a6-1809f426e4fe | 2026-08-03T23:04:33.587Z |
| 019fc9df-2a74-7a0f-b073-eab387870969 | a1b2c3d4-e5f6-7890-abcd-ef1234567890 | 17b8c9d0-e1f2-3456-1234-567890123456 | decision | bill_only_order.direct_po_import_on_create | 019fc9df-2a5c-7c7a-80a6-1809f426e4fe | 2026-08-03T23:04:33.587Z |
| 019fc9df-2a76-79fb-8020-9bd5f21d0f3b | a1b2c3d4-e5f6-7890-abcd-ef1234567890 | 17b8c9d0-e1f2-3456-1234-567890123456 | billing_order | status_change | 019fc9df-2a5c-7c7a-80a6-1809f426e4fe | 2026-08-03T23:04:33.587Z |
| 019fc9df-2a79-765a-9f66-629a4ac066ce | b2c3d4e5-f6a7-8901-bcde-f12345678901 | 17b8c9d0-e1f2-3456-1234-567890123456 | decision | bill_only.link_purchase_order | 019fc9df-2a5c-7c7a-80a6-1809f426e4fe | 2026-08-03T23:04:33.587Z |
| 019fc9df-2ec5-7488-b452-686564f3168f | b2c3d4e5-f6a7-8901-bcde-f12345678901 | NULL | transactional_email | new_bill_only | 019fc9df-2a5c-7c7a-80a6-1809f426e4fe | 2026-08-03T23:04:34.781Z |
| 019fc9df-401f-7f16-84f3-032adaa4bc34 | b2c3d4e5-f6a7-8901-bcde-f12345678901 | 17b8c9d0-e1f2-3456-1234-567890123456 | user_log | user:login | NULL | 2026-08-03T23:04:39.206Z |
| 019fc9df-5f89-71da-893a-a9430787d2a3 | b2c3d4e5-f6a7-8901-bcde-f12345678901 | 17b8c9d0-e1f2-3456-1234-567890123456 | user_log | user:login | NULL | 2026-08-03T23:04:47.250Z |
| 019fc9df-7ee5-7f98-a1fd-e1d1a0a647ec | a1b2c3d4-e5f6-7890-abcd-ef1234567890 | d4e5f6a7-b8c9-0123-def1-234567890123 | user_log | user:login | NULL | 2026-08-03T23:04:55.279Z |
Returns have created_by_user_id + created_at populated — ✅ PASS
Section titled “Returns have created_by_user_id + created_at populated — ✅ PASS”Assertion: All pre-seeded returns (and any created during the test) have non-null created_by_user_id and created_at
SELECT r.id, r.return_number, r.status, r.created_by_user_id, r.created_at, u.email AS created_by_email FROM returns r LEFT JOIN users u ON u.id = r.created_by_user_id WHERE r.return_number = ANY($1) OR r.created_at > NOW() - INTERVAL '30 minutes' ORDER BY r.created_at ASC| id | return_number | status | created_by_user_id | created_at | created_by_email |
|---|---|---|---|---|---|
| ca000003-0000-4000-8000-000000000003 | VRI-RET-2025-003 | submitted | 17b8c9d0-e1f2-3456-1234-567890123456 | 2026-07-04T22:58:16.230Z | blair.bennett@corvetasurgical.com |
| ca000002-0000-4000-8000-000000000002 | VRI-RET-2025-002 | submitted | 28c9d0e1-f2a3-4567-2345-678901234567 | 2026-07-20T22:58:16.230Z | rana.reyes@corvetasurgical.com |
| ca000001-0000-4000-8000-000000000001 | VRI-RET-2025-001 | submitted | 17b8c9d0-e1f2-3456-1234-567890123456 | 2026-07-31T22:58:16.230Z | blair.bennett@corvetasurgical.com |
Inventory transactions timestamped at or after their triggering order — ✅ PASS
Section titled “Inventory transactions timestamped at or after their triggering order — ✅ PASS”Assertion: For every bill-only order in the test window, the earliest inventory_transaction linked to it has created_at >= billing_order.created_at
SELECT bo.order_number, bo.created_at AS order_created_at, MIN(it.created_at) AS first_txn_created_at FROM billing_orders bo JOIN inventory_transactions it ON it.source_type = 'bill_only_order' AND it.source_id = bo.id WHERE bo.created_by_user_id = $1 AND bo.created_at > NOW() - INTERVAL '30 minutes' GROUP BY bo.id, bo.order_number, bo.created_at| order_number | order_created_at | first_txn_created_at |
|---|---|---|
| BO-1 | 2026-08-03T23:03:56.721Z | 2026-08-03T23:03:56.721Z |
| BO-2 | 2026-08-03T23:04:33.587Z | 2026-08-03T23:04:33.587Z |
Multiple distinct users represented across transactions — ✅ PASS
Section titled “Multiple distinct users represented across transactions — ✅ PASS”Assertion: The combined transaction set (orders, returns, audit events) contains at least two distinct user IDs
SELECT DISTINCT user_id FROM ( SELECT created_by_user_id AS user_id FROM billing_orders WHERE created_at > NOW() - INTERVAL '30 minutes' AND created_by_user_id IS NOT NULL UNION SELECT created_by_user_id AS user_id FROM returns WHERE return_number = ANY($1) UNION SELECT user_id FROM audit_events WHERE created_at > NOW() - INTERVAL '30 minutes' AND user_id IS NOT NULL ) u ORDER BY user_id| user_id |
|---|
| 17b8c9d0-e1f2-3456-1234-567890123456 |
| 28c9d0e1-f2a3-4567-2345-678901234567 |
| d4e5f6a7-b8c9-0123-def1-234567890123 |
Audit & Email Assertion Ledger
Section titled “Audit & Email Assertion Ledger”Per-declaration outcome of every expectedAuditActions and expectedEmailTemplates entry written into the orchestrator. Missing evidence here is a real test failure, not a soft warning.
Audit Action Assertions
Section titled “Audit Action Assertions”Each row asserts that a declared expectedAuditActions entry produced a matching row in audit_events. A ❌ flips overall status to FAIL — the declaration is real proof, not just an annotation.
| Step | Expected Audit Action | Found |
|---|---|---|
| Step 1: Logged in as Blair Bennett | user_log:user:login | ✅ |
| Step 2: First order | decision:bill_only_order.inventory_items_decrement | ✅ |
| Step 2: First order | billing_order:status_change | ✅ |
| Step 3: Second order | decision:bill_only_order.inventory_items_decrement | ✅ |
| Step 3: Second order | billing_order:status_change | ✅ |
| Step 6: Cross-user billing view | user_log:user:login | ✅ |
Email Template Assertions
Section titled “Email Template Assertions”Each row asserts that a declared expectedEmailTemplates entry was matched (case-insensitive substring) by a captured email subject or template. A ❌ flips overall status to FAIL.
| Step | Expected Template | Found |
|---|---|---|
| Step 2: First order | New Bill-Only Order | ✅ |
| Step 3: Second order | New Bill-Only Order | ✅ |
Audit Log Events
Section titled “Audit Log Events”Every row written to audit_events while this test was running (scoped to the demo organizations). Provides compliance evidence that user actions are traced end-to-end (URS-003).
Capture window start: 2026-08-03T23:03:19.281Z
SELECT ae.created_at, ae.event_type, ae.action, ae.user_id, u.email AS user_email, ae.organization_id, o.name AS organization_name, ae.object_id, ae.secondary_object_id, ae.payload, ae.route, ae.trace_id FROM audit_events ae LEFT JOIN users u ON u.id = ae.user_id LEFT JOIN organizations o ON o.id = ae.organization_id WHERE ae.created_at >= $1 AND ae.organization_id = ANY($2::uuid[]) ORDER BY ae.created_at ASC16 event(s) captured:
| Time | Type | Action | User | Org | Object ID | Performed | Reason |
|---|---|---|---|---|---|---|---|
| 2026-08-03 23:03:24Z | user_log | user:login | blair.bennett@corvetasurgical.com | Corveta Surgical Group | — | — | |
| 2026-08-03 23:03:28Z | user_log | user:login | blair.bennett@corvetasurgical.com | Corveta Surgical Group | — | — | |
| 2026-08-03 23:03:56Z | billing_order | status_change | blair.bennett@corvetasurgical.com | Vantis | 019fc9de-9a8b-7494-90d5-c5a7cff862fa | — | |
| 2026-08-03 23:03:56Z | decision | bill_only.link_purchase_order | blair.bennett@corvetasurgical.com | Corveta Surgical Group | 019fc9de-9a8b-7494-90d5-c5a7cff862fa | no | no_purchase_order_selected |
| 2026-08-03 23:03:56Z | decision | bill_only_order.inventory_items_decrement | blair.bennett@corvetasurgical.com | Vantis | 019fc9de-9a8b-7494-90d5-c5a7cff862fa | yes | inventory_items_decremented |
| 2026-08-03 23:03:56Z | decision | bill_only_order.direct_po_import_on_create | blair.bennett@corvetasurgical.com | Vantis | 019fc9de-9a8b-7494-90d5-c5a7cff862fa | no | No uploaded PO documents |
| 2026-08-03 23:03:57Z | transactional_email | new_bill_only | — | Corveta Surgical Group | 019fc9de-9a8b-7494-90d5-c5a7cff862fa | — | |
| 2026-08-03 23:04:02Z | user_log | user:login | blair.bennett@corvetasurgical.com | Corveta Surgical Group | — | — | |
| 2026-08-03 23:04:33Z | decision | bill_only_order.inventory_items_decrement | blair.bennett@corvetasurgical.com | Vantis | 019fc9df-2a5c-7c7a-80a6-1809f426e4fe | yes | inventory_items_decremented |
| 2026-08-03 23:04:33Z | decision | bill_only.link_purchase_order | blair.bennett@corvetasurgical.com | Corveta Surgical Group | 019fc9df-2a5c-7c7a-80a6-1809f426e4fe | no | no_purchase_order_selected |
| 2026-08-03 23:04:33Z | billing_order | status_change | blair.bennett@corvetasurgical.com | Vantis | 019fc9df-2a5c-7c7a-80a6-1809f426e4fe | — | |
| 2026-08-03 23:04:33Z | decision | bill_only_order.direct_po_import_on_create | blair.bennett@corvetasurgical.com | Vantis | 019fc9df-2a5c-7c7a-80a6-1809f426e4fe | no | No uploaded PO documents |
| 2026-08-03 23:04:34Z | transactional_email | new_bill_only | — | Corveta Surgical Group | 019fc9df-2a5c-7c7a-80a6-1809f426e4fe | — | |
| 2026-08-03 23:04:39Z | user_log | user:login | blair.bennett@corvetasurgical.com | Corveta Surgical Group | — | — | |
| 2026-08-03 23:04:47Z | user_log | user:login | blair.bennett@corvetasurgical.com | Corveta Surgical Group | — | — | |
| 2026-08-03 23:04:55Z | user_log | user:login | mark.manufacturer@vantismedical.com | Vantis | — | — |
Email Evidence
Section titled “Email Evidence”2 notification email(s) were captured during this test run. Each email is rendered as a screenshot for compliance review.
1. New Bill-Only Order - 8/3/2026 - Vantis BO-1
Section titled “1. New Bill-Only Order - 8/3/2026 - Vantis BO-1”Template: New_Bill-Only_Order_-_8_3_2026_-_Vantis_BO-1

2. New Bill-Only Order - 8/3/2026 - Vantis BO-2
Section titled “2. New Bill-Only Order - 8/3/2026 - Vantis BO-2”Template: New_Bill-Only_Order_-_8_3_2026_-_Vantis_BO-2

Downloads
Section titled “Downloads”- audit-events.json
- report.md
- result.json
- screenshots-index.json
- step-timings.json
- transaction-log.html