inc_0001 SIMULATED
duplicate_charge (rule DUP), related ch_0001, ch_0002
Scenario D1 · outcome RESOLVED VERIFIED_OK · 4 steps · 2026-10-10T08:01:00Z to 2026-10-10T08:01:00Z
Scenario D1 · outcome RESOLVED VERIFIED_OK · 4 steps · 2026-10-10T08:01:00Z to 2026-10-10T08:01:00Z
Gate verdicts
| Step | Verdict | Code | Entry |
|---|---|---|---|
| 4 | ALLOW | OK | #8 |
Verification
Independent check by code: passed
- pass refund_succeeded
- pass exactly_one_refund 1 refunds
- pass refund_amount_matches
- pass net_credit_equals_order_amount
- pass ledger_balanced
Timeline (decision chain)
| Seq | Time | Kind | Summary |
|---|---|---|---|
| #0 | 2026-10-10T08:01:00Z | INCIDENT_OPENED | opened duplicate_charge by rule DUP, related ch_0001, ch_0002entry JSON{
"body": {
"detector_rule": "DUP",
"related": [
"ch_0001",
"ch_0002"
],
"type": "duplicate_charge"
},
"entry_hash": "sha256:dd27e6e9e24d38e6fed742d632c45b593588989abcf55db241c4a6fc0d7f4236",
"kind": "INCIDENT_OPENED",
"prev_hash": "sha256:847e4febfe1c429a14d7a66675ec721211b2e9487306986f7c1060f8d80766db",
"seq": 0,
"trace_id": "offline-1",
"ts": "2026-10-10T08:01:00Z"
} |
| #1 | 2026-10-10T08:01:00Z | DECISION | INVESTIGATE get_incident: Read the incident record first.entry JSON{
"body": {
"args": {
"incident_id": "inc_0001"
},
"decision": "INVESTIGATE",
"rationale": "Read the incident record first.",
"step": 1,
"tool": "get_incident"
},
"entry_hash": "sha256:a74ccdd242f601f57118eec0f117ef7deead01d587eb66021b4aa4d54ea3dcab",
"kind": "DECISION",
"prev_hash": "sha256:dd27e6e9e24d38e6fed742d632c45b593588989abcf55db241c4a6fc0d7f4236",
"seq": 1,
"trace_id": "offline-1",
"ts": "2026-10-10T08:01:00Z"
} |
| #2 | 2026-10-10T08:01:00Z | OBSERVATION | read get_incident: incident inc_0001 duplicate_charge related ch_0001,ch_0002 status INVESTIGATINGentry JSON{
"body": {
"args": {
"incident_id": "inc_0001"
},
"injection_suspected": false,
"result_sha256": "sha256:6dc89f94391eae1b3074765e7d2b41d90da44bd58b87390d857dfbb5910e6298",
"result_summary": "incident inc_0001 duplicate_charge related ch_0001,ch_0002 status INVESTIGATING",
"step": 1,
"tool": "get_incident",
"untrusted_fields": []
},
"entry_hash": "sha256:2b566c3b6d25ffd03a4d0f828920b5985a428849e1aac2698d1e74dabbb75af6",
"kind": "OBSERVATION",
"prev_hash": "sha256:a74ccdd242f601f57118eec0f117ef7deead01d587eb66021b4aa4d54ea3dcab",
"seq": 2,
"trace_id": "offline-1",
"ts": "2026-10-10T08:01:00Z"
} |
| #3 | 2026-10-10T08:01:00Z | DECISION | INVESTIGATE get_provider_charge: Read charge ch_0001 at the provider.entry JSON{
"body": {
"args": {
"charge_id": "ch_0001"
},
"decision": "INVESTIGATE",
"rationale": "Read charge ch_0001 at the provider.",
"step": 2,
"tool": "get_provider_charge"
},
"entry_hash": "sha256:f2007749781b697b1f021c9293726a8e01a774c0caf52582386069251c0427c2",
"kind": "DECISION",
"prev_hash": "sha256:2b566c3b6d25ffd03a4d0f828920b5985a428849e1aac2698d1e74dabbb75af6",
"seq": 3,
"trace_id": "offline-1",
"ts": "2026-10-10T08:01:00Z"
} |
| #4 | 2026-10-10T08:01:00Z | OBSERVATION | read get_provider_charge: charge ch_0001 succeeded 2500000 NGN order ord_0001 customer cust_01 at 2026-10-10T08:00:00Zentry JSON{
"body": {
"args": {
"charge_id": "ch_0001"
},
"injection_suspected": false,
"result_sha256": "sha256:2cc76df82ed23e2bec4f86af493f913d2bedfb5af8f8c284fc6a7d62897bb2af",
"result_summary": "charge ch_0001 succeeded 2500000 NGN order ord_0001 customer cust_01 at 2026-10-10T08:00:00Z",
"step": 2,
"tool": "get_provider_charge",
"untrusted_fields": []
},
"entry_hash": "sha256:f5371a88ec567ba25abd7bc4984d3bcc3c5ddb16a8d40f39bb995e7114b63d4c",
"kind": "OBSERVATION",
"prev_hash": "sha256:f2007749781b697b1f021c9293726a8e01a774c0caf52582386069251c0427c2",
"seq": 4,
"trace_id": "offline-1",
"ts": "2026-10-10T08:01:00Z"
} |
| #5 | 2026-10-10T08:01:00Z | DECISION | INVESTIGATE get_provider_charge: Read charge ch_0002 at the provider.entry JSON{
"body": {
"args": {
"charge_id": "ch_0002"
},
"decision": "INVESTIGATE",
"rationale": "Read charge ch_0002 at the provider.",
"step": 3,
"tool": "get_provider_charge"
},
"entry_hash": "sha256:adb71369ced37d9ee4400d2405bfccda8bf521d42055647e7d0e87a435361cfd",
"kind": "DECISION",
"prev_hash": "sha256:f5371a88ec567ba25abd7bc4984d3bcc3c5ddb16a8d40f39bb995e7114b63d4c",
"seq": 5,
"trace_id": "offline-1",
"ts": "2026-10-10T08:01:00Z"
} |
| #6 | 2026-10-10T08:01:00Z | OBSERVATION | read get_provider_charge: charge ch_0002 succeeded 2500000 NGN order ord_0001 customer cust_01 at 2026-10-10T08:00:40Zentry JSON{
"body": {
"args": {
"charge_id": "ch_0002"
},
"injection_suspected": false,
"result_sha256": "sha256:ac23d870103bcf4a8cc8e4d4d0a04dda40e27be0e7c48bd03ce1024f574458fc",
"result_summary": "charge ch_0002 succeeded 2500000 NGN order ord_0001 customer cust_01 at 2026-10-10T08:00:40Z",
"step": 3,
"tool": "get_provider_charge",
"untrusted_fields": []
},
"entry_hash": "sha256:ec743168a6846034208a60fdd73a292df446ee9c5c317381df4d82388c44df3f",
"kind": "OBSERVATION",
"prev_hash": "sha256:adb71369ced37d9ee4400d2405bfccda8bf521d42055647e7d0e87a435361cfd",
"seq": 6,
"trace_id": "offline-1",
"ts": "2026-10-10T08:01:00Z"
} |
| #7 | 2026-10-10T08:01:00Z | DECISION | ACT issue_refund: Two succeeded charges share customer, order and amount within the window; refund the later one.entry JSON{
"body": {
"args": {
"charge_id": "ch_0002",
"evidence_refs": [
"ch_0001",
"ch_0002"
],
"idempotency_key": "inc_0001:refund:1"
},
"decision": "ACT",
"rationale": "Two succeeded charges share customer, order and amount within the window; refund the later one.",
"step": 4,
"tool": "issue_refund"
},
"entry_hash": "sha256:3e708e1d432e4c5b5362da619cc3b8d55ffed075d7f3886298cf4d46a1476aa7",
"kind": "DECISION",
"prev_hash": "sha256:ec743168a6846034208a60fdd73a292df446ee9c5c317381df4d82388c44df3f",
"seq": 7,
"trace_id": "offline-1",
"ts": "2026-10-10T08:01:00Z"
} |
| #8 | 2026-10-10T08:01:00Z | GATE_VERDICT | gate ALLOW OKentry JSON{
"body": {
"code": "OK",
"details": {},
"policy_sha256": "sha256:696b891ceabd61a7cf7c89ed6e98793ac182397b88332da7eaccbc2381dbc581",
"policy_version": 1,
"step": 4,
"verdict": "ALLOW"
},
"entry_hash": "sha256:96bca0ca502b44f62a0b7823a73d0928dab88f281a6ba66597fd27ebc67d91f7",
"kind": "GATE_VERDICT",
"prev_hash": "sha256:3e708e1d432e4c5b5362da619cc3b8d55ffed075d7f3886298cf4d46a1476aa7",
"seq": 8,
"trace_id": "offline-1",
"ts": "2026-10-10T08:01:00Z"
} |
| #9 | 2026-10-10T08:01:00Z | ACTION_INTENT | intent issue_refund key inc_0001:refund:1 (committed before execution)entry JSON{
"body": {
"args": {
"charge_id": "ch_0002",
"evidence_refs": [
"ch_0001",
"ch_0002"
],
"idempotency_key": "inc_0001:refund:1"
},
"args_sha256": "sha256:c5090bb26f72c98b02359be8890b062beed1550a7c54aef6a1a290142c5886fe",
"expected_effect": "refund the charge at the provider",
"idempotency_key": "inc_0001:refund:1",
"step": 4,
"tool": "issue_refund"
},
"entry_hash": "sha256:d1ec40c899aeb863dee6a20c6183c9689ee23b5be96fa0754fa7b542cc90118e",
"kind": "ACTION_INTENT",
"prev_hash": "sha256:96bca0ca502b44f62a0b7823a73d0928dab88f281a6ba66597fd27ebc67d91f7",
"seq": 9,
"trace_id": "offline-1",
"ts": "2026-10-10T08:01:00Z"
} |
| #10 | 2026-10-10T08:01:00Z | ACTION_RESULT | issue_refund attempt 1: okentry JSON{
"body": {
"attempt": 1,
"error_type": null,
"ok": true,
"response_sha256": "sha256:0c43cc0241e58db384c921a87f41bac7b582085ee5f409801e2549df51d78bd7",
"step": 4,
"tool": "issue_refund"
},
"entry_hash": "sha256:3fcdd1e0edd332476e3e47a38c4c5b9a0e341e3ffa0b52fa2f7511eab30aa2fb",
"kind": "ACTION_RESULT",
"prev_hash": "sha256:d1ec40c899aeb863dee6a20c6183c9689ee23b5be96fa0754fa7b542cc90118e",
"seq": 10,
"trace_id": "offline-1",
"ts": "2026-10-10T08:01:00Z"
} |
| #11 | 2026-10-10T08:01:00Z | VERIFICATION | verification passed (5/5 checks)entry JSON{
"body": {
"checks": [
{
"check": "refund_succeeded",
"detail": "",
"passed": true
},
{
"check": "exactly_one_refund",
"detail": "1 refunds",
"passed": true
},
{
"check": "refund_amount_matches",
"detail": "",
"passed": true
},
{
"check": "net_credit_equals_order_amount",
"detail": "",
"passed": true
},
{
"check": "ledger_balanced",
"detail": "",
"passed": true
}
],
"ok": true,
"step": 4
},
"entry_hash": "sha256:6a56b58038f6f7f88e19c81671ee8123b5e6f3bfa8ba9a9eedbe9cad98400d3f",
"kind": "VERIFICATION",
"prev_hash": "sha256:3fcdd1e0edd332476e3e47a38c4c5b9a0e341e3ffa0b52fa2f7511eab30aa2fb",
"seq": 11,
"trace_id": "offline-1",
"ts": "2026-10-10T08:01:00Z"
} |
| #12 | 2026-10-10T08:01:00Z | OUTCOME | RESOLVED VERIFIED_OK: Independent verification passed.entry JSON{
"body": {
"outcome": "RESOLVED",
"reason_code": "VERIFIED_OK",
"summary": "Independent verification passed."
},
"entry_hash": "sha256:30b22f05c3170208ba36bae4e10ce0e923b9615bf7626bed87045f5a77442e4d",
"kind": "OUTCOME",
"prev_hash": "sha256:6a56b58038f6f7f88e19c81671ee8123b5e6f3bfa8ba9a9eedbe9cad98400d3f",
"seq": 12,
"trace_id": "offline-1",
"ts": "2026-10-10T08:01:00Z"
} |
Receipt
Raw receipt JSON
{
"digest": "sha256:6338cba2fc7897ee3e7e32bf158f1e3521b0b8def81112f808e810be9b4a5d99",
"payload": {
"actions": [
{
"amount_minor": 2500000,
"args_sha256": "sha256:c5090bb26f72c98b02359be8890b062beed1550a7c54aef6a1a290142c5886fe",
"executed": true,
"idempotency_key": "inc_0001:refund:1",
"tool": "issue_refund"
}
],
"closed_at": "2026-10-10T08:01:00Z",
"currency": "NGN",
"entire_checkpoint": null,
"entries": [
{
"hash": "sha256:dd27e6e9e24d38e6fed742d632c45b593588989abcf55db241c4a6fc0d7f4236",
"seq": 0
},
{
"hash": "sha256:a74ccdd242f601f57118eec0f117ef7deead01d587eb66021b4aa4d54ea3dcab",
"seq": 1
},
{
"hash": "sha256:2b566c3b6d25ffd03a4d0f828920b5985a428849e1aac2698d1e74dabbb75af6",
"seq": 2
},
{
"hash": "sha256:f2007749781b697b1f021c9293726a8e01a774c0caf52582386069251c0427c2",
"seq": 3
},
{
"hash": "sha256:f5371a88ec567ba25abd7bc4984d3bcc3c5ddb16a8d40f39bb995e7114b63d4c",
"seq": 4
},
{
"hash": "sha256:adb71369ced37d9ee4400d2405bfccda8bf521d42055647e7d0e87a435361cfd",
"seq": 5
},
{
"hash": "sha256:ec743168a6846034208a60fdd73a292df446ee9c5c317381df4d82388c44df3f",
"seq": 6
},
{
"hash": "sha256:3e708e1d432e4c5b5362da619cc3b8d55ffed075d7f3886298cf4d46a1476aa7",
"seq": 7
},
{
"hash": "sha256:96bca0ca502b44f62a0b7823a73d0928dab88f281a6ba66597fd27ebc67d91f7",
"seq": 8
},
{
"hash": "sha256:d1ec40c899aeb863dee6a20c6183c9689ee23b5be96fa0754fa7b542cc90118e",
"seq": 9
},
{
"hash": "sha256:3fcdd1e0edd332476e3e47a38c4c5b9a0e341e3ffa0b52fa2f7511eab30aa2fb",
"seq": 10
},
{
"hash": "sha256:6a56b58038f6f7f88e19c81671ee8123b5e6f3bfa8ba9a9eedbe9cad98400d3f",
"seq": 11
},
{
"hash": "sha256:30b22f05c3170208ba36bae4e10ce0e923b9615bf7626bed87045f5a77442e4d",
"seq": 12
}
],
"git_sha": "35707c7",
"incident_id": "inc_0001",
"mode": "simulated",
"neatlogs_trace_id": "offline-1",
"opened_at": "2026-10-10T08:01:00Z",
"outcome": "RESOLVED",
"policy_sha256": "sha256:696b891ceabd61a7cf7c89ed6e98793ac182397b88332da7eaccbc2381dbc581",
"reason_code": "VERIFIED_OK",
"run_label": "demo",
"scenario_id": "D1",
"type": "duplicate_charge",
"verification": {
"checks": [
{
"check": "refund_succeeded",
"detail": "",
"passed": true
},
{
"check": "exactly_one_refund",
"detail": "1 refunds",
"passed": true
},
{
"check": "refund_amount_matches",
"detail": "",
"passed": true
},
{
"check": "net_credit_equals_order_amount",
"detail": "",
"passed": true
},
{
"check": "ledger_balanced",
"detail": "",
"passed": true
}
],
"ok": true
}
},
"receipt_version": 1
}