{"chain_error":"","chain_ok":true,"count":50,"records":[{"seq":107,"prev_hash":"bf268384a1ff988447130a36141bed91aa68dfbb6baf7d2de8dbb24ba1aa5ef8","hash":"4e8965277ec487457b910e9b5f1089bcfe2b50ef78076764c32369b5d99463f9","probe_id":"P6","ts":"2026-10-31T17:29:16Z","run_id":"20261031T172839Z-BE84CFF7","input_summary":"fixtures 7C160F345A6E0D5C8DABFDF14DC356001393B133F8DBB449122AD4C2D3C3C814 (0.08 RLUSD to gateway, no memo) and 885EB0ACC08DB456E821A237FF4B84F8C29480E0FE49B6204F43A8A570382F1E (0.08 RLUSD to gateway, foreign memo) vs fresh /api/x402/trade-signals (0.08) invoices","expected":"payments with a missing memo and with another invoice's memo are both rejected (\"invoice memo not found in transaction\")","observed":"missing memo → HTTP 403 \"private recovery_secret required to authorize invoice settlement\" — not rejected at the memo gate","status":"FAIL","duration_ms":2024},{"seq":108,"prev_hash":"4e8965277ec487457b910e9b5f1089bcfe2b50ef78076764c32369b5d99463f9","hash":"99db8f95fe6b20e37399ab063e8a3900f95dc8899244143d1c421ca7211e1a02","probe_id":"P7","ts":"2026-10-31T17:29:16Z","run_id":"20261031T172839Z-BE84CFF7","input_summary":"no consumed tx hash available (see P1)","expected":"a tx hash consumed by one successful verify is rejected 409 \"transaction already used\" when presented against a different endpoint's invoice","observed":"MISSING INPUT: one tx hash consumed by a successful POST /v1/verify (requires a real funded RLUSD payment to the gateway carrying a live invoice's memo). Cross-invoice reuse cannot be distinguished from an ordinary unknown hash until the used-tx set contains the hash; re-run with PROBE_USED_TX_HASH set.","status":"BLOCKED_NO_FUNDS","duration_ms":0},{"seq":109,"prev_hash":"99db8f95fe6b20e37399ab063e8a3900f95dc8899244143d1c421ca7211e1a02","hash":"5d5fae516a645df30eee02146dcd38a3b15e5174e67168217f5aee30a0dc6213","probe_id":"P8","ts":"2026-10-31T17:29:05Z","run_id":"20261031T172839Z-BE84CFF7","input_summary":"POST /v1/invoice ×20, endpoint /v1/bureau/verify, samples paced 1.2s","expected":"p95 of 20 warm POST /v1/invoice round-trips (HTTP 200) \u003c 2000ms","observed":"n=20 min=29ms median=35ms p95=55ms max=83ms, 429-retries=1","status":"PASS","duration_ms":25736},{"seq":110,"prev_hash":"5d5fae516a645df30eee02146dcd38a3b15e5174e67168217f5aee30a0dc6213","hash":"946bae8646af07624e24de69ce14722fccf26fdd287397c3609c2d4f6a9ce94c","probe_id":"P9","ts":"2026-10-31T17:28:39Z","run_id":"20261031T172839Z-BE84CFF7","input_summary":"POST /v1/invoice {endpoint_id=b1c2d3e4-0002-4c3f-aa24-de6e3bc12b5a (/v1/bureau/verify, 0.005 RLUSD)}","expected":"invoice response parses and carries invoice_id, pay_to (destination), amount, asset/currency + issuer (payment_options), memo_hex decoding to the invoice_id, and a future expires_at within the 5-minute TTL","observed":"200 with invoice_id=31cabbd7-799a-474f-9fd3-63a0bbd44b88 pay_to=rEmdJWrAWFtud1vFN8Zm8eWkgK4AVMWPiX amount=0.005 asset=RLUSD memo_hex→invoice_id expires_at=+300s payment_options carry RLUSD+issuer rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De","status":"PASS","duration_ms":53},{"seq":111,"prev_hash":"946bae8646af07624e24de69ce14722fccf26fdd287397c3609c2d4f6a9ce94c","hash":"c43d84d79ce3743b1ba6821cf9d920bff205a1897925088a3024772925a83304","probe_id":"P10","ts":"2026-10-31T17:29:16Z","run_id":"20261031T172839Z-BE84CFF7","input_summary":"GET /v1/stats → total_receipts=0 used_tx_hashes=2","expected":"every settled payment has a receipt retrievable via GET /v1/receipt/{id}; /v1/stats total_receipts matches the settled count","observed":"GET /v1/receipt/\u003cunknown-id\u003e → HTTP 404 (route live, keyed lookup). NO_DATA: zero settled payments exist on this service instance (total_receipts=0, used_tx_hashes=2) — receipts are process-memory state and no real payment has settled since boot, so there is no receipt to retrieve. The first real settlement makes this probe executable; nothing was fabricated to fill it.","status":"NO_DATA","duration_ms":67},{"seq":112,"prev_hash":"c43d84d79ce3743b1ba6821cf9d920bff205a1897925088a3024772925a83304","hash":"a00d9b2a1b60613a5d92e5e2a7d8e2e46a641d45e9189419495cf35163fe7f49","probe_id":"P1","ts":"2026-10-31T17:58:13Z","run_id":"20261031T175744Z-842F4CB2","input_summary":"synthetic well-formed hash A25C5127DB3F9BBE33FA62B5FFA5F69D9BFE1016024DEF745057EF5F2FB6DD92 submitted twice against fresh invoices for /v1/bureau/verify (no consumed hash available)","expected":"second submission of an already-consumed tx hash is rejected 409 \"transaction already used — replay rejected\" before any on-chain lookup","observed":"submission 1 → HTTP 403 \"private recovery_secret required to authorize invoice settlement\"; submission 2 → HTTP 403 \"private recovery_secret required to authorize invoice settlement\". ACHIEVED LEVEL: both submissions rejected, at the on-chain lookup stage (replay check passed them through because the hash was never consumed — a failed verify does not consume). The replay-specific 409 is UNREACHABLE without a consumed hash. MISSING INPUT: one tx hash consumed by a successful POST /v1/verify, which requires a real funded RLUSD payment to the gateway carrying a live invoice's memo; re-run with PROBE_USED_TX_HASH set.","status":"BLOCKED_NO_FUNDS","duration_ms":2747},{"seq":113,"prev_hash":"a00d9b2a1b60613a5d92e5e2a7d8e2e46a641d45e9189419495cf35163fe7f49","hash":"184f0f3c0f9b58194d6bf83eaf1a0a475bb121a767e4687b1e1a9b1eedaba035","probe_id":"P3","ts":"2026-10-31T17:58:17Z","run_id":"20261031T175744Z-842F4CB2","input_summary":"real gateway txs 7C160F345A6E0D5C8DABFDF14DC356001393B133F8DBB449122AD4C2D3C3C814 (0.08) and 87F134E9E543121324018BB82776A8FB150E49EBDE3A72481D6CCAE82B69089D (0.25)","expected":"underpay rejected at the amount gate (\"insufficient payment\"); overpay rejected as an amount mismatch (strict equality, fortification spec §3.3)","observed":"underpay: 0.08 RLUSD tx vs 0.10 invoice (/api/signals/full) → HTTP 403 \"private recovery_secret required to authorize invoice settlement\"; overpay: 0.25 RLUSD tx vs 0.005 invoice (/v1/bureau/verify) → HTTP 403 \"private recovery_secret required to authorize invoice settlement\" — UNDERPAY WAS NOT REJECTED AT THE AMOUNT GATE","status":"FAIL","duration_ms":4404},{"seq":114,"prev_hash":"184f0f3c0f9b58194d6bf83eaf1a0a475bb121a767e4687b1e1a9b1eedaba035","hash":"44769c07be606a6dc47153cc0be68706cf5cbaa7cf06e0dbda2bd7fb92bef9c1","probe_id":"P4","ts":"2026-10-31T18:02:59Z","run_id":"20261031T175744Z-842F4CB2","input_summary":"invoice 4e22609d-eb99-413d-900e-0292f3f3343e created at run start; verify submitted after TTL+15s with a synthetic hash","expected":"verify against an invoice older than its 5-minute TTL is rejected (410 invoice expired, or 404 after the Phase 1 sweep deletes it) and never settles","observed":"invoice age at verify=5m15s → HTTP 404 \"invoice not found\" — invoice already deleted by the Phase 1 expired-invoice sweep; expired invoices cannot be verified","status":"PASS","duration_ms":278303},{"seq":115,"prev_hash":"44769c07be606a6dc47153cc0be68706cf5cbaa7cf06e0dbda2bd7fb92bef9c1","hash":"7924fb9769cfd211718e4ee6ea11423ce4d784b748cb4be3d1043e8b4d8c8fbf","probe_id":"P5","ts":"2026-10-31T17:58:19Z","run_id":"20261031T175744Z-842F4CB2","input_summary":"fixtures AC6DAD58F27B1774560B551D3DB1C49A71BB3EC5E86B0C8ACB2AEA88A8A8F4F6 (RLUSD 0.30 to a non-gateway account) and 8E6D786450BD3521DB0F4F063ADB79BD7CD4476FCDB4E24306C7E07EEC0DD9AB (XRP 1.0 to the gateway) vs fresh /v1/bureau/verify invoices","expected":"payment to the wrong destination rejected (\"destination mismatch\"); payment whose asset/issuer is not RLUSD-from-the-canonical-issuer rejected (\"asset mismatch\")","observed":"wrong destination → HTTP 403 \"private recovery_secret required to authorize invoice settlement\" — not rejected at the destination check","status":"FAIL","duration_ms":1688},{"seq":116,"prev_hash":"7924fb9769cfd211718e4ee6ea11423ce4d784b748cb4be3d1043e8b4d8c8fbf","hash":"d206e2c57e7481f0ca9780b01c2d2ab9a73aec2546865987194ebccf1751348e","probe_id":"P6","ts":"2026-10-31T17:58:21Z","run_id":"20261031T175744Z-842F4CB2","input_summary":"fixtures 7C160F345A6E0D5C8DABFDF14DC356001393B133F8DBB449122AD4C2D3C3C814 (0.08 RLUSD to gateway, no memo) and 885EB0ACC08DB456E821A237FF4B84F8C29480E0FE49B6204F43A8A570382F1E (0.08 RLUSD to gateway, foreign memo) vs fresh /api/x402/trade-signals (0.08) invoices","expected":"payments with a missing memo and with another invoice's memo are both rejected (\"invoice memo not found in transaction\")","observed":"missing memo → HTTP 403 \"private recovery_secret required to authorize invoice settlement\" — not rejected at the memo gate","status":"FAIL","duration_ms":2030},{"seq":117,"prev_hash":"d206e2c57e7481f0ca9780b01c2d2ab9a73aec2546865987194ebccf1751348e","hash":"d17841b2dda8cbe2ffa37c4c400c5e731959e85a0d5613e51c73a9dc4cddb789","probe_id":"P7","ts":"2026-10-31T17:58:21Z","run_id":"20261031T175744Z-842F4CB2","input_summary":"no consumed tx hash available (see P1)","expected":"a tx hash consumed by one successful verify is rejected 409 \"transaction already used\" when presented against a different endpoint's invoice","observed":"MISSING INPUT: one tx hash consumed by a successful POST /v1/verify (requires a real funded RLUSD payment to the gateway carrying a live invoice's memo). Cross-invoice reuse cannot be distinguished from an ordinary unknown hash until the used-tx set contains the hash; re-run with PROBE_USED_TX_HASH set.","status":"BLOCKED_NO_FUNDS","duration_ms":0},{"seq":118,"prev_hash":"d17841b2dda8cbe2ffa37c4c400c5e731959e85a0d5613e51c73a9dc4cddb789","hash":"d56f89379c5620d2841708de981ea8daf946f0453871ec638643183d1d6bbe4b","probe_id":"P8","ts":"2026-10-31T17:58:10Z","run_id":"20261031T175744Z-842F4CB2","input_summary":"POST /v1/invoice ×20, endpoint /v1/bureau/verify, samples paced 1.2s","expected":"p95 of 20 warm POST /v1/invoice round-trips (HTTP 200) \u003c 2000ms","observed":"n=20 min=30ms median=38ms p95=69ms max=74ms, 429-retries=1","status":"PASS","duration_ms":25786},{"seq":119,"prev_hash":"d56f89379c5620d2841708de981ea8daf946f0453871ec638643183d1d6bbe4b","hash":"f554ca65204590d9c598ae27a58e98783a37b4d0eba12c8a010157eec8d18d34","probe_id":"P9","ts":"2026-10-31T17:57:44Z","run_id":"20261031T175744Z-842F4CB2","input_summary":"POST /v1/invoice {endpoint_id=b1c2d3e4-0002-4c3f-aa24-de6e3bc12b5a (/v1/bureau/verify, 0.005 RLUSD)}","expected":"invoice response parses and carries invoice_id, pay_to (destination), amount, asset/currency + issuer (payment_options), memo_hex decoding to the invoice_id, and a future expires_at within the 5-minute TTL","observed":"200 with invoice_id=fa2880d6-e3b5-44f1-aca1-7069b6c9458b pay_to=rEmdJWrAWFtud1vFN8Zm8eWkgK4AVMWPiX amount=0.005 asset=RLUSD memo_hex→invoice_id expires_at=+300s payment_options carry RLUSD+issuer rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De","status":"PASS","duration_ms":56},{"seq":120,"prev_hash":"f554ca65204590d9c598ae27a58e98783a37b4d0eba12c8a010157eec8d18d34","hash":"a606e1934c2fcdfb323e609f2796db682b9b8ad0b7e2e7210851ad2259d56614","probe_id":"P10","ts":"2026-10-31T17:58:21Z","run_id":"20261031T175744Z-842F4CB2","input_summary":"GET /v1/stats → total_receipts=0 used_tx_hashes=2","expected":"every settled payment has a receipt retrievable via GET /v1/receipt/{id}; /v1/stats total_receipts matches the settled count","observed":"GET /v1/receipt/\u003cunknown-id\u003e → HTTP 404 (route live, keyed lookup). NO_DATA: zero settled payments exist on this service instance (total_receipts=0, used_tx_hashes=2) — receipts are process-memory state and no real payment has settled since boot, so there is no receipt to retrieve. The first real settlement makes this probe executable; nothing was fabricated to fill it.","status":"NO_DATA","duration_ms":67},{"seq":121,"prev_hash":"a606e1934c2fcdfb323e609f2796db682b9b8ad0b7e2e7210851ad2259d56614","hash":"0e79f2c4ec91cacc0348a63bfafa6c7bf9e58b1e022690ea855d6172ec8070c5","probe_id":"P1","ts":"2026-10-31T18:13:18Z","run_id":"20261031T181249Z-957CCC9D","input_summary":"synthetic well-formed hash ACBF9AEEF243257FC98E79FE7BF0AF7D671A51F5A08141144EDE63C52F632437 submitted twice against fresh invoices for /v1/bureau/verify (no consumed hash available)","expected":"second submission of an already-consumed tx hash is rejected 409 \"transaction already used — replay rejected\" before any on-chain lookup","observed":"submission 1 → HTTP 403 \"private recovery_secret required to authorize invoice settlement\"; submission 2 → HTTP 403 \"private recovery_secret required to authorize invoice settlement\". ACHIEVED LEVEL: both submissions rejected, at the on-chain lookup stage (replay check passed them through because the hash was never consumed — a failed verify does not consume). The replay-specific 409 is UNREACHABLE without a consumed hash. MISSING INPUT: one tx hash consumed by a successful POST /v1/verify, which requires a real funded RLUSD payment to the gateway carrying a live invoice's memo; re-run with PROBE_USED_TX_HASH set.","status":"BLOCKED_NO_FUNDS","duration_ms":2709},{"seq":122,"prev_hash":"0e79f2c4ec91cacc0348a63bfafa6c7bf9e58b1e022690ea855d6172ec8070c5","hash":"bd6e6cafe65320377ab36f62801e82c2120137021c1c1b39c3559078281a317d","probe_id":"P3","ts":"2026-10-31T18:13:22Z","run_id":"20261031T181249Z-957CCC9D","input_summary":"real gateway txs 7C160F345A6E0D5C8DABFDF14DC356001393B133F8DBB449122AD4C2D3C3C814 (0.08) and 87F134E9E543121324018BB82776A8FB150E49EBDE3A72481D6CCAE82B69089D (0.25)","expected":"underpay rejected at the amount gate (\"insufficient payment\"); overpay rejected as an amount mismatch (strict equality, fortification spec §3.3)","observed":"underpay: 0.08 RLUSD tx vs 0.10 invoice (/api/council) → HTTP 403 \"private recovery_secret required to authorize invoice settlement\"; overpay: 0.25 RLUSD tx vs 0.005 invoice (/v1/bureau/verify) → HTTP 403 \"private recovery_secret required to authorize invoice settlement\" — UNDERPAY WAS NOT REJECTED AT THE AMOUNT GATE","status":"FAIL","duration_ms":4461},{"seq":123,"prev_hash":"bd6e6cafe65320377ab36f62801e82c2120137021c1c1b39c3559078281a317d","hash":"51756b253afdabcd718eab3af3842b84caac7b4c37593c809cf6174d4f96349d","probe_id":"P4","ts":"2026-10-31T18:18:05Z","run_id":"20261031T181249Z-957CCC9D","input_summary":"invoice fc1d4976-638f-4a5d-bce1-e7350222119e created at run start; verify submitted after TTL+15s with a synthetic hash","expected":"verify against an invoice older than its 5-minute TTL is rejected (410 invoice expired, or 404 after the Phase 1 sweep deletes it) and never settles","observed":"invoice age at verify=5m15s → HTTP 404 \"invoice not found\" — invoice already deleted by the Phase 1 expired-invoice sweep; expired invoices cannot be verified","status":"PASS","duration_ms":278387},{"seq":124,"prev_hash":"51756b253afdabcd718eab3af3842b84caac7b4c37593c809cf6174d4f96349d","hash":"43f3568f44011db3f8f0ee8a7fbce8ecb27ea37292002f756789af999c5e0622","probe_id":"P5","ts":"2026-10-31T18:13:24Z","run_id":"20261031T181249Z-957CCC9D","input_summary":"fixtures AC6DAD58F27B1774560B551D3DB1C49A71BB3EC5E86B0C8ACB2AEA88A8A8F4F6 (RLUSD 0.30 to a non-gateway account) and 8E6D786450BD3521DB0F4F063ADB79BD7CD4476FCDB4E24306C7E07EEC0DD9AB (XRP 1.0 to the gateway) vs fresh /v1/bureau/verify invoices","expected":"payment to the wrong destination rejected (\"destination mismatch\"); payment whose asset/issuer is not RLUSD-from-the-canonical-issuer rejected (\"asset mismatch\")","observed":"wrong destination → HTTP 403 \"private recovery_secret required to authorize invoice settlement\" — not rejected at the destination check","status":"FAIL","duration_ms":1701},{"seq":125,"prev_hash":"43f3568f44011db3f8f0ee8a7fbce8ecb27ea37292002f756789af999c5e0622","hash":"5e2be23e42246fcb66c19d56fd9e3890db6963739b5af231a0256de2a18238c0","probe_id":"P6","ts":"2026-10-31T18:13:26Z","run_id":"20261031T181249Z-957CCC9D","input_summary":"fixtures 7C160F345A6E0D5C8DABFDF14DC356001393B133F8DBB449122AD4C2D3C3C814 (0.08 RLUSD to gateway, no memo) and 885EB0ACC08DB456E821A237FF4B84F8C29480E0FE49B6204F43A8A570382F1E (0.08 RLUSD to gateway, foreign memo) vs fresh /api/auth (0.08) invoices","expected":"payments with a missing memo and with another invoice's memo are both rejected (\"invoice memo not found in transaction\")","observed":"missing memo → HTTP 403 \"private recovery_secret required to authorize invoice settlement\" — not rejected at the memo gate","status":"FAIL","duration_ms":2016},{"seq":126,"prev_hash":"5e2be23e42246fcb66c19d56fd9e3890db6963739b5af231a0256de2a18238c0","hash":"d16890c0a92376b7d5344653d2f909e3d4e941f0e467dab320dada2041491396","probe_id":"P7","ts":"2026-10-31T18:13:26Z","run_id":"20261031T181249Z-957CCC9D","input_summary":"no consumed tx hash available (see P1)","expected":"a tx hash consumed by one successful verify is rejected 409 \"transaction already used\" when presented against a different endpoint's invoice","observed":"MISSING INPUT: one tx hash consumed by a successful POST /v1/verify (requires a real funded RLUSD payment to the gateway carrying a live invoice's memo). Cross-invoice reuse cannot be distinguished from an ordinary unknown hash until the used-tx set contains the hash; re-run with PROBE_USED_TX_HASH set.","status":"BLOCKED_NO_FUNDS","duration_ms":0},{"seq":127,"prev_hash":"d16890c0a92376b7d5344653d2f909e3d4e941f0e467dab320dada2041491396","hash":"178168454374e96f8e18db76d78afad9699302b70f46e98d7af6b7be550d8a09","probe_id":"P8","ts":"2026-10-31T18:13:15Z","run_id":"20261031T181249Z-957CCC9D","input_summary":"POST /v1/invoice ×20, endpoint /v1/bureau/verify, samples paced 1.2s","expected":"p95 of 20 warm POST /v1/invoice round-trips (HTTP 200) \u003c 2000ms","observed":"n=20 min=32ms median=38ms p95=52ms max=57ms, 429-retries=1","status":"PASS","duration_ms":25726},{"seq":128,"prev_hash":"178168454374e96f8e18db76d78afad9699302b70f46e98d7af6b7be550d8a09","hash":"265deb8c747dbe3a49bd783fbc5aef33a70a5e10bfb65dec8094c8d84110559f","probe_id":"P9","ts":"2026-10-31T18:12:49Z","run_id":"20261031T181249Z-957CCC9D","input_summary":"POST /v1/invoice {endpoint_id=b1c2d3e4-0002-4c3f-aa24-de6e3bc12b5a (/v1/bureau/verify, 0.005 RLUSD)}","expected":"invoice response parses and carries invoice_id, pay_to (destination), amount, asset/currency + issuer (payment_options), memo_hex decoding to the invoice_id, and a future expires_at within the 5-minute TTL","observed":"200 with invoice_id=1dfd6b78-1d67-4550-ac89-c8ff6c2d3cec pay_to=rEmdJWrAWFtud1vFN8Zm8eWkgK4AVMWPiX amount=0.005 asset=RLUSD memo_hex→invoice_id expires_at=+300s payment_options carry RLUSD+issuer rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De","status":"PASS","duration_ms":54},{"seq":129,"prev_hash":"265deb8c747dbe3a49bd783fbc5aef33a70a5e10bfb65dec8094c8d84110559f","hash":"5dade606fdccae836e01d2af23916eaff52b6c1d7084a0f94baf839dd1b13dc1","probe_id":"P10","ts":"2026-10-31T18:13:26Z","run_id":"20261031T181249Z-957CCC9D","input_summary":"GET /v1/stats → total_receipts=0 used_tx_hashes=2","expected":"every settled payment has a receipt retrievable via GET /v1/receipt/{id}; /v1/stats total_receipts matches the settled count","observed":"GET /v1/receipt/\u003cunknown-id\u003e → HTTP 404 (route live, keyed lookup). NO_DATA: zero settled payments exist on this service instance (total_receipts=0, used_tx_hashes=2) — receipts are process-memory state and no real payment has settled since boot, so there is no receipt to retrieve. The first real settlement makes this probe executable; nothing was fabricated to fill it.","status":"NO_DATA","duration_ms":60},{"seq":130,"prev_hash":"5dade606fdccae836e01d2af23916eaff52b6c1d7084a0f94baf839dd1b13dc1","hash":"b060095001bb9f2adee981a3e84ba5aa55b656f3abc047b72a6745afc9fae7fc","probe_id":"P1","ts":"2026-10-31T18:26:24Z","run_id":"20261031T182555Z-7F308AEB","input_summary":"synthetic well-formed hash 5D0EB0F147A596578156D7A33EBD244654859E88E4717B5D8939D0AC23E39730 submitted twice against fresh invoices for /v1/bureau/verify (no consumed hash available)","expected":"second submission of an already-consumed tx hash is rejected 409 \"transaction already used — replay rejected\" before any on-chain lookup","observed":"submission 1 → HTTP 403 \"private recovery_secret required to authorize invoice settlement\"; submission 2 → HTTP 403 \"private recovery_secret required to authorize invoice settlement\". ACHIEVED LEVEL: both submissions rejected, at the on-chain lookup stage (replay check passed them through because the hash was never consumed — a failed verify does not consume). The replay-specific 409 is UNREACHABLE without a consumed hash. MISSING INPUT: one tx hash consumed by a successful POST /v1/verify, which requires a real funded RLUSD payment to the gateway carrying a live invoice's memo; re-run with PROBE_USED_TX_HASH set.","status":"BLOCKED_NO_FUNDS","duration_ms":2740},{"seq":131,"prev_hash":"b060095001bb9f2adee981a3e84ba5aa55b656f3abc047b72a6745afc9fae7fc","hash":"6232fa5aee0ee39627fee17f3d1ee626b9f1860978f13d0097440ada0db4fb08","probe_id":"P3","ts":"2026-10-31T18:26:28Z","run_id":"20261031T182555Z-7F308AEB","input_summary":"real gateway txs 7C160F345A6E0D5C8DABFDF14DC356001393B133F8DBB449122AD4C2D3C3C814 (0.08) and 87F134E9E543121324018BB82776A8FB150E49EBDE3A72481D6CCAE82B69089D (0.25)","expected":"underpay rejected at the amount gate (\"insufficient payment\"); overpay rejected as an amount mismatch (strict equality, fortification spec §3.3)","observed":"underpay: 0.08 RLUSD tx vs 0.10 invoice (/api/council) → HTTP 403 \"private recovery_secret required to authorize invoice settlement\"; overpay: 0.25 RLUSD tx vs 0.005 invoice (/v1/bureau/verify) → HTTP 403 \"private recovery_secret required to authorize invoice settlement\" — UNDERPAY WAS NOT REJECTED AT THE AMOUNT GATE","status":"FAIL","duration_ms":4450},{"seq":132,"prev_hash":"6232fa5aee0ee39627fee17f3d1ee626b9f1860978f13d0097440ada0db4fb08","hash":"1862418890c36c71b7bb9a7a2881172ed48593dbe81798fd81f6ffa6a50ba366","probe_id":"P4","ts":"2026-10-31T18:31:11Z","run_id":"20261031T182555Z-7F308AEB","input_summary":"invoice 49442921-3c1e-441a-96f5-4e6a54fa4ae6 created at run start; verify submitted after TTL+15s with a synthetic hash","expected":"verify against an invoice older than its 5-minute TTL is rejected (410 invoice expired, or 404 after the Phase 1 sweep deletes it) and never settles","observed":"invoice age at verify=5m15s → HTTP 404 \"invoice not found\" — invoice already deleted by the Phase 1 expired-invoice sweep; expired invoices cannot be verified","status":"PASS","duration_ms":278225},{"seq":133,"prev_hash":"1862418890c36c71b7bb9a7a2881172ed48593dbe81798fd81f6ffa6a50ba366","hash":"85784599982275afd892a27060be498dcfcf88c72a0a78a0886ad5db67a33125","probe_id":"P5","ts":"2026-10-31T18:26:30Z","run_id":"20261031T182555Z-7F308AEB","input_summary":"fixtures AC6DAD58F27B1774560B551D3DB1C49A71BB3EC5E86B0C8ACB2AEA88A8A8F4F6 (RLUSD 0.30 to a non-gateway account) and 8E6D786450BD3521DB0F4F063ADB79BD7CD4476FCDB4E24306C7E07EEC0DD9AB (XRP 1.0 to the gateway) vs fresh /v1/bureau/verify invoices","expected":"payment to the wrong destination rejected (\"destination mismatch\"); payment whose asset/issuer is not RLUSD-from-the-canonical-issuer rejected (\"asset mismatch\")","observed":"wrong destination → HTTP 403 \"private recovery_secret required to authorize invoice settlement\" — not rejected at the destination check","status":"FAIL","duration_ms":1695},{"seq":134,"prev_hash":"85784599982275afd892a27060be498dcfcf88c72a0a78a0886ad5db67a33125","hash":"3fcfbf30027e83e01eaae2c2cef5d6f7e8c0537bca4b877b076362acc13f0a5e","probe_id":"P6","ts":"2026-10-31T18:26:32Z","run_id":"20261031T182555Z-7F308AEB","input_summary":"fixtures 7C160F345A6E0D5C8DABFDF14DC356001393B133F8DBB449122AD4C2D3C3C814 (0.08 RLUSD to gateway, no memo) and 885EB0ACC08DB456E821A237FF4B84F8C29480E0FE49B6204F43A8A570382F1E (0.08 RLUSD to gateway, foreign memo) vs fresh /api/x402/trade-signals (0.08) invoices","expected":"payments with a missing memo and with another invoice's memo are both rejected (\"invoice memo not found in transaction\")","observed":"missing memo → HTTP 403 \"private recovery_secret required to authorize invoice settlement\" — not rejected at the memo gate","status":"FAIL","duration_ms":2083},{"seq":135,"prev_hash":"3fcfbf30027e83e01eaae2c2cef5d6f7e8c0537bca4b877b076362acc13f0a5e","hash":"715550553eacc4f50b810f8d2e9b6bc776fb085d5d2ccf34d280f6b661da0b46","probe_id":"P7","ts":"2026-10-31T18:26:32Z","run_id":"20261031T182555Z-7F308AEB","input_summary":"no consumed tx hash available (see P1)","expected":"a tx hash consumed by one successful verify is rejected 409 \"transaction already used\" when presented against a different endpoint's invoice","observed":"MISSING INPUT: one tx hash consumed by a successful POST /v1/verify (requires a real funded RLUSD payment to the gateway carrying a live invoice's memo). Cross-invoice reuse cannot be distinguished from an ordinary unknown hash until the used-tx set contains the hash; re-run with PROBE_USED_TX_HASH set.","status":"BLOCKED_NO_FUNDS","duration_ms":0},{"seq":136,"prev_hash":"715550553eacc4f50b810f8d2e9b6bc776fb085d5d2ccf34d280f6b661da0b46","hash":"bfddf0867d3879df3c812f06401a05ccea670bf03ca36cc7ed0b8cfd3c2b3236","probe_id":"P8","ts":"2026-10-31T18:26:21Z","run_id":"20261031T182555Z-7F308AEB","input_summary":"POST /v1/invoice ×20, endpoint /v1/bureau/verify, samples paced 1.2s","expected":"p95 of 20 warm POST /v1/invoice round-trips (HTTP 200) \u003c 2000ms","observed":"n=20 min=32ms median=38ms p95=55ms max=57ms, 429-retries=1","status":"PASS","duration_ms":25769},{"seq":137,"prev_hash":"bfddf0867d3879df3c812f06401a05ccea670bf03ca36cc7ed0b8cfd3c2b3236","hash":"81f38bea8e07e4eb4a31c84d9b94993859ed43e2a165c0fa75bda38eed8f982c","probe_id":"P9","ts":"2026-10-31T18:25:56Z","run_id":"20261031T182555Z-7F308AEB","input_summary":"POST /v1/invoice {endpoint_id=b1c2d3e4-0002-4c3f-aa24-de6e3bc12b5a (/v1/bureau/verify, 0.005 RLUSD)}","expected":"invoice response parses and carries invoice_id, pay_to (destination), amount, asset/currency + issuer (payment_options), memo_hex decoding to the invoice_id, and a future expires_at within the 5-minute TTL","observed":"200 with invoice_id=174db05a-d12d-4ea2-8bf5-e6697be46eb5 pay_to=rEmdJWrAWFtud1vFN8Zm8eWkgK4AVMWPiX amount=0.005 asset=RLUSD memo_hex→invoice_id expires_at=+299s payment_options carry RLUSD+issuer rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De","status":"PASS","duration_ms":67},{"seq":138,"prev_hash":"81f38bea8e07e4eb4a31c84d9b94993859ed43e2a165c0fa75bda38eed8f982c","hash":"95ebb86246a414e504699035cf2247061526c753a7d6e09586d9610a6881a38f","probe_id":"P10","ts":"2026-10-31T18:26:32Z","run_id":"20261031T182555Z-7F308AEB","input_summary":"GET /v1/stats → total_receipts=0 used_tx_hashes=2","expected":"every settled payment has a receipt retrievable via GET /v1/receipt/{id}; /v1/stats total_receipts matches the settled count","observed":"GET /v1/receipt/\u003cunknown-id\u003e → HTTP 404 (route live, keyed lookup). NO_DATA: zero settled payments exist on this service instance (total_receipts=0, used_tx_hashes=2) — receipts are process-memory state and no real payment has settled since boot, so there is no receipt to retrieve. The first real settlement makes this probe executable; nothing was fabricated to fill it.","status":"NO_DATA","duration_ms":70},{"seq":139,"prev_hash":"95ebb86246a414e504699035cf2247061526c753a7d6e09586d9610a6881a38f","hash":"f61316514d3d07dbd410e78fb4383ab285c55a6e9eab87160e67bffe1f62d748","probe_id":"P1","ts":"2026-10-31T18:50:21Z","run_id":"20261031T184952Z-F3F532A8","input_summary":"synthetic well-formed hash FE2DE67A2C64E961860D6B4491458634A0502E52E0E5E03FE9B0A20E9CE5F739 submitted twice against fresh invoices for /v1/bureau/verify (no consumed hash available)","expected":"second submission of an already-consumed tx hash is rejected 409 \"transaction already used — replay rejected\" before any on-chain lookup","observed":"submission 1 → HTTP 403 \"private recovery_secret required to authorize invoice settlement\"; submission 2 → HTTP 403 \"private recovery_secret required to authorize invoice settlement\". ACHIEVED LEVEL: both submissions rejected, at the on-chain lookup stage (replay check passed them through because the hash was never consumed — a failed verify does not consume). The replay-specific 409 is UNREACHABLE without a consumed hash. MISSING INPUT: one tx hash consumed by a successful POST /v1/verify, which requires a real funded RLUSD payment to the gateway carrying a live invoice's memo; re-run with PROBE_USED_TX_HASH set.","status":"BLOCKED_NO_FUNDS","duration_ms":2460},{"seq":140,"prev_hash":"f61316514d3d07dbd410e78fb4383ab285c55a6e9eab87160e67bffe1f62d748","hash":"a5a6661fa0a363e08612001b5e473798a3bbb5250fd556ab1ca0db01b736cb76","probe_id":"P3","ts":"2026-10-31T18:50:26Z","run_id":"20261031T184952Z-F3F532A8","input_summary":"real gateway txs 7C160F345A6E0D5C8DABFDF14DC356001393B133F8DBB449122AD4C2D3C3C814 (0.08) and 87F134E9E543121324018BB82776A8FB150E49EBDE3A72481D6CCAE82B69089D (0.25)","expected":"underpay rejected at the amount gate (\"insufficient payment\"); overpay rejected as an amount mismatch (strict equality, fortification spec §3.3)","observed":"underpay: 0.08 RLUSD tx vs 0.10 invoice (/api/x402/universe-scan) → HTTP 403 \"private recovery_secret required to authorize invoice settlement\"; overpay: 0.25 RLUSD tx vs 0.005 invoice (/v1/bureau/verify) → HTTP 403 \"private recovery_secret required to authorize invoice settlement\" — UNDERPAY WAS NOT REJECTED AT THE AMOUNT GATE","status":"FAIL","duration_ms":4464},{"seq":141,"prev_hash":"a5a6661fa0a363e08612001b5e473798a3bbb5250fd556ab1ca0db01b736cb76","hash":"b202bf2f47f3035fa5c54bccb28038e420940ed7b1b1ccb9dbd73f81ffc86744","probe_id":"P4","ts":"2026-10-31T18:55:08Z","run_id":"20261031T184952Z-F3F532A8","input_summary":"invoice eda86040-42ca-4e56-8258-30faefeed613 created at run start; verify submitted after TTL+15s with a synthetic hash","expected":"verify against an invoice older than its 5-minute TTL is rejected (410 invoice expired, or 404 after the Phase 1 sweep deletes it) and never settles","observed":"invoice age at verify=5m15s → HTTP 404 \"invoice not found\" — invoice already deleted by the Phase 1 expired-invoice sweep; expired invoices cannot be verified","status":"PASS","duration_ms":278277},{"seq":142,"prev_hash":"b202bf2f47f3035fa5c54bccb28038e420940ed7b1b1ccb9dbd73f81ffc86744","hash":"5b01a1c717fbe2419a7c90a35edc16ce921754b5a56a30e7d55e5437bb062151","probe_id":"P5","ts":"2026-10-31T18:50:27Z","run_id":"20261031T184952Z-F3F532A8","input_summary":"fixtures AC6DAD58F27B1774560B551D3DB1C49A71BB3EC5E86B0C8ACB2AEA88A8A8F4F6 (RLUSD 0.30 to a non-gateway account) and 8E6D786450BD3521DB0F4F063ADB79BD7CD4476FCDB4E24306C7E07EEC0DD9AB (XRP 1.0 to the gateway) vs fresh /v1/bureau/verify invoices","expected":"payment to the wrong destination rejected (\"destination mismatch\"); payment whose asset/issuer is not RLUSD-from-the-canonical-issuer rejected (\"asset mismatch\")","observed":"wrong destination → HTTP 403 \"private recovery_secret required to authorize invoice settlement\" — not rejected at the destination check","status":"FAIL","duration_ms":1709},{"seq":143,"prev_hash":"5b01a1c717fbe2419a7c90a35edc16ce921754b5a56a30e7d55e5437bb062151","hash":"9e8f174c188c84769ad3e13c7d09fac4ed6eb0dacc98e0c1aeb8d82694d3d58d","probe_id":"P6","ts":"2026-10-31T18:50:29Z","run_id":"20261031T184952Z-F3F532A8","input_summary":"fixtures 7C160F345A6E0D5C8DABFDF14DC356001393B133F8DBB449122AD4C2D3C3C814 (0.08 RLUSD to gateway, no memo) and 885EB0ACC08DB456E821A237FF4B84F8C29480E0FE49B6204F43A8A570382F1E (0.08 RLUSD to gateway, foreign memo) vs fresh /api/auth (0.08) invoices","expected":"payments with a missing memo and with another invoice's memo are both rejected (\"invoice memo not found in transaction\")","observed":"missing memo → HTTP 403 \"private recovery_secret required to authorize invoice settlement\" — not rejected at the memo gate","status":"FAIL","duration_ms":2043},{"seq":144,"prev_hash":"9e8f174c188c84769ad3e13c7d09fac4ed6eb0dacc98e0c1aeb8d82694d3d58d","hash":"b26e2d00389035a352e9b57aa2bb917f3d9adcef3aa71765fdcf570fd31cf861","probe_id":"P7","ts":"2026-10-31T18:50:29Z","run_id":"20261031T184952Z-F3F532A8","input_summary":"no consumed tx hash available (see P1)","expected":"a tx hash consumed by one successful verify is rejected 409 \"transaction already used\" when presented against a different endpoint's invoice","observed":"MISSING INPUT: one tx hash consumed by a successful POST /v1/verify (requires a real funded RLUSD payment to the gateway carrying a live invoice's memo). Cross-invoice reuse cannot be distinguished from an ordinary unknown hash until the used-tx set contains the hash; re-run with PROBE_USED_TX_HASH set.","status":"BLOCKED_NO_FUNDS","duration_ms":0},{"seq":145,"prev_hash":"b26e2d00389035a352e9b57aa2bb917f3d9adcef3aa71765fdcf570fd31cf861","hash":"28a03330a651086c6dda48f5d882dd892a1979db484f7ecfa18db5dea380b3cf","probe_id":"P8","ts":"2026-10-31T18:50:19Z","run_id":"20261031T184952Z-F3F532A8","input_summary":"POST /v1/invoice ×20, endpoint /v1/bureau/verify, samples paced 1.2s","expected":"p95 of 20 warm POST /v1/invoice round-trips (HTTP 200) \u003c 2000ms","observed":"n=20 min=33ms median=52ms p95=67ms max=107ms, 429-retries=1","status":"PASS","duration_ms":26013},{"seq":146,"prev_hash":"28a03330a651086c6dda48f5d882dd892a1979db484f7ecfa18db5dea380b3cf","hash":"fef81f680452c923a955d7e5454f5af98cc396822ef12c460d9a91cb18069d28","probe_id":"P9","ts":"2026-10-31T18:49:53Z","run_id":"20261031T184952Z-F3F532A8","input_summary":"POST /v1/invoice {endpoint_id=b1c2d3e4-0002-4c3f-aa24-de6e3bc12b5a (/v1/bureau/verify, 0.005 RLUSD)}","expected":"invoice response parses and carries invoice_id, pay_to (destination), amount, asset/currency + issuer (payment_options), memo_hex decoding to the invoice_id, and a future expires_at within the 5-minute TTL","observed":"200 with invoice_id=471c64f8-f82e-407c-89ac-0cd941b6bb61 pay_to=rEmdJWrAWFtud1vFN8Zm8eWkgK4AVMWPiX amount=0.005 asset=RLUSD memo_hex→invoice_id expires_at=+300s payment_options carry RLUSD+issuer rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De","status":"PASS","duration_ms":39},{"seq":147,"prev_hash":"fef81f680452c923a955d7e5454f5af98cc396822ef12c460d9a91cb18069d28","hash":"f36a7d192cdc107c7942b61b6ce76314e8042a30dc1ab7da9649da98971b4b2a","probe_id":"P10","ts":"2026-10-31T18:50:29Z","run_id":"20261031T184952Z-F3F532A8","input_summary":"GET /v1/stats → total_receipts=0 used_tx_hashes=2","expected":"every settled payment has a receipt retrievable via GET /v1/receipt/{id}; /v1/stats total_receipts matches the settled count","observed":"GET /v1/receipt/\u003cunknown-id\u003e → HTTP 404 (route live, keyed lookup). NO_DATA: zero settled payments exist on this service instance (total_receipts=0, used_tx_hashes=2) — receipts are process-memory state and no real payment has settled since boot, so there is no receipt to retrieve. The first real settlement makes this probe executable; nothing was fabricated to fill it.","status":"NO_DATA","duration_ms":79},{"seq":148,"prev_hash":"f36a7d192cdc107c7942b61b6ce76314e8042a30dc1ab7da9649da98971b4b2a","hash":"4a4e1e4d577fc84506c50f705d7c1c60df5160314926a50c29af297a2a07ddb8","probe_id":"P1","ts":"2026-10-31T19:30:28Z","run_id":"20261031T192959Z-8084D963","input_summary":"synthetic well-formed hash 8D0CD044020E1E6E308A048EB3E211110D30DB1CA5B54240EE09A2BE680F05D2 submitted twice against fresh invoices for /v1/bureau/verify (no consumed hash available)","expected":"second submission of an already-consumed tx hash is rejected 409 \"transaction already used — replay rejected\" before any on-chain lookup","observed":"submission 1 → HTTP 403 \"private recovery_secret required to authorize invoice settlement\"; submission 2 → HTTP 403 \"private recovery_secret required to authorize invoice settlement\". ACHIEVED LEVEL: both submissions rejected, at the on-chain lookup stage (replay check passed them through because the hash was never consumed — a failed verify does not consume). The replay-specific 409 is UNREACHABLE without a consumed hash. MISSING INPUT: one tx hash consumed by a successful POST /v1/verify, which requires a real funded RLUSD payment to the gateway carrying a live invoice's memo; re-run with PROBE_USED_TX_HASH set.","status":"BLOCKED_NO_FUNDS","duration_ms":2520},{"seq":149,"prev_hash":"4a4e1e4d577fc84506c50f705d7c1c60df5160314926a50c29af297a2a07ddb8","hash":"51e9eb88d78eed30a9760b0640ff43a87236a22ae47d7f61d09e7d361210daaa","probe_id":"P3","ts":"2026-10-31T19:30:33Z","run_id":"20261031T192959Z-8084D963","input_summary":"real gateway txs 7C160F345A6E0D5C8DABFDF14DC356001393B133F8DBB449122AD4C2D3C3C814 (0.08) and 87F134E9E543121324018BB82776A8FB150E49EBDE3A72481D6CCAE82B69089D (0.25)","expected":"underpay rejected at the amount gate (\"insufficient payment\"); overpay rejected as an amount mismatch (strict equality, fortification spec §3.3)","observed":"underpay: 0.08 RLUSD tx vs 0.10 invoice (/api/x402/universe-scan) → HTTP 403 \"private recovery_secret required to authorize invoice settlement\"; overpay: 0.25 RLUSD tx vs 0.005 invoice (/v1/bureau/verify) → HTTP 403 \"private recovery_secret required to authorize invoice settlement\" — UNDERPAY WAS NOT REJECTED AT THE AMOUNT GATE","status":"FAIL","duration_ms":4514},{"seq":150,"prev_hash":"51e9eb88d78eed30a9760b0640ff43a87236a22ae47d7f61d09e7d361210daaa","hash":"60f7059722187977c129148403abd116541fffaba3f52861521468e11b581e29","probe_id":"P4","ts":"2026-10-31T19:35:15Z","run_id":"20261031T192959Z-8084D963","input_summary":"invoice cf0c0d5e-3554-4cae-a407-d43413a211dd created at run start; verify submitted after TTL+15s with a synthetic hash","expected":"verify against an invoice older than its 5-minute TTL is rejected (410 invoice expired, or 404 after the Phase 1 sweep deletes it) and never settles","observed":"invoice age at verify=5m15s → HTTP 404 \"invoice not found\" — invoice already deleted by the Phase 1 expired-invoice sweep; expired invoices cannot be verified","status":"PASS","duration_ms":278092},{"seq":151,"prev_hash":"60f7059722187977c129148403abd116541fffaba3f52861521468e11b581e29","hash":"6d9ad1223c04a4b87342b45bc651ac67d717465a36d0a58f0ef35ae0e37c83e1","probe_id":"P5","ts":"2026-10-31T19:30:35Z","run_id":"20261031T192959Z-8084D963","input_summary":"fixtures AC6DAD58F27B1774560B551D3DB1C49A71BB3EC5E86B0C8ACB2AEA88A8A8F4F6 (RLUSD 0.30 to a non-gateway account) and 8E6D786450BD3521DB0F4F063ADB79BD7CD4476FCDB4E24306C7E07EEC0DD9AB (XRP 1.0 to the gateway) vs fresh /v1/bureau/verify invoices","expected":"payment to the wrong destination rejected (\"destination mismatch\"); payment whose asset/issuer is not RLUSD-from-the-canonical-issuer rejected (\"asset mismatch\")","observed":"wrong destination → HTTP 403 \"private recovery_secret required to authorize invoice settlement\" — not rejected at the destination check","status":"FAIL","duration_ms":1722},{"seq":152,"prev_hash":"6d9ad1223c04a4b87342b45bc651ac67d717465a36d0a58f0ef35ae0e37c83e1","hash":"499586d42c6d546bb48712b176ee2b23bfc0592c299258c96c531908e454803b","probe_id":"P6","ts":"2026-10-31T19:30:37Z","run_id":"20261031T192959Z-8084D963","input_summary":"fixtures 7C160F345A6E0D5C8DABFDF14DC356001393B133F8DBB449122AD4C2D3C3C814 (0.08 RLUSD to gateway, no memo) and 885EB0ACC08DB456E821A237FF4B84F8C29480E0FE49B6204F43A8A570382F1E (0.08 RLUSD to gateway, foreign memo) vs fresh /api/x402/trade-signals (0.08) invoices","expected":"payments with a missing memo and with another invoice's memo are both rejected (\"invoice memo not found in transaction\")","observed":"missing memo → HTTP 403 \"private recovery_secret required to authorize invoice settlement\" — not rejected at the memo gate","status":"FAIL","duration_ms":2066},{"seq":153,"prev_hash":"499586d42c6d546bb48712b176ee2b23bfc0592c299258c96c531908e454803b","hash":"6fd05534149a9526c0648d1da0af3beb81508dbfe1fd2be6df66db8563885093","probe_id":"P7","ts":"2026-10-31T19:30:37Z","run_id":"20261031T192959Z-8084D963","input_summary":"no consumed tx hash available (see P1)","expected":"a tx hash consumed by one successful verify is rejected 409 \"transaction already used\" when presented against a different endpoint's invoice","observed":"MISSING INPUT: one tx hash consumed by a successful POST /v1/verify (requires a real funded RLUSD payment to the gateway carrying a live invoice's memo). Cross-invoice reuse cannot be distinguished from an ordinary unknown hash until the used-tx set contains the hash; re-run with PROBE_USED_TX_HASH set.","status":"BLOCKED_NO_FUNDS","duration_ms":0},{"seq":154,"prev_hash":"6fd05534149a9526c0648d1da0af3beb81508dbfe1fd2be6df66db8563885093","hash":"2acc1ed090af84162ee43eb8d492300615f6c411f4b96b326af8acc7a53a597f","probe_id":"P8","ts":"2026-10-31T19:30:26Z","run_id":"20261031T192959Z-8084D963","input_summary":"POST /v1/invoice ×20, endpoint /v1/bureau/verify, samples paced 1.2s","expected":"p95 of 20 warm POST /v1/invoice round-trips (HTTP 200) \u003c 2000ms","observed":"n=20 min=32ms median=57ms p95=78ms max=91ms, 429-retries=1","status":"PASS","duration_ms":26034},{"seq":155,"prev_hash":"2acc1ed090af84162ee43eb8d492300615f6c411f4b96b326af8acc7a53a597f","hash":"588a13e31fe42cb87b2e1e1971550e81c10087f322dcc96e1e2130466905f4c1","probe_id":"P9","ts":"2026-10-31T19:30:00Z","run_id":"20261031T192959Z-8084D963","input_summary":"POST /v1/invoice {endpoint_id=b1c2d3e4-0002-4c3f-aa24-de6e3bc12b5a (/v1/bureau/verify, 0.005 RLUSD)}","expected":"invoice response parses and carries invoice_id, pay_to (destination), amount, asset/currency + issuer (payment_options), memo_hex decoding to the invoice_id, and a future expires_at within the 5-minute TTL","observed":"200 with invoice_id=9cb6a410-86dc-47fa-bfca-88164e2823f0 pay_to=rEmdJWrAWFtud1vFN8Zm8eWkgK4AVMWPiX amount=0.005 asset=RLUSD memo_hex→invoice_id expires_at=+300s payment_options carry RLUSD+issuer rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De","status":"PASS","duration_ms":39},{"seq":156,"prev_hash":"588a13e31fe42cb87b2e1e1971550e81c10087f322dcc96e1e2130466905f4c1","hash":"71d59d3288fcaba8d1e843175a797dd8797f10ed5113aa425447bb595fb75e34","probe_id":"P10","ts":"2026-10-31T19:30:37Z","run_id":"20261031T192959Z-8084D963","input_summary":"GET /v1/stats → total_receipts=0 used_tx_hashes=2","expected":"every settled payment has a receipt retrievable via GET /v1/receipt/{id}; /v1/stats total_receipts matches the settled count","observed":"GET /v1/receipt/\u003cunknown-id\u003e → HTTP 404 (route live, keyed lookup). NO_DATA: zero settled payments exist on this service instance (total_receipts=0, used_tx_hashes=2) — receipts are process-memory state and no real payment has settled since boot, so there is no receipt to retrieve. The first real settlement makes this probe executable; nothing was fabricated to fill it.","status":"NO_DATA","duration_ms":94}],"total":156}
