Workflow verification incomplete
This receipt shows the requests we made, what the app reported back, and which checks passed or failed. It covers what ran in this sandbox session against the rules we set.
Failing
Each check was set up before the run. This shows what we tried, what came back, and which rule it was checked against.
This receipt covers the checks in this run only. Passing all checks does not certify the whole app as production-ready.
Test scenarios
The daily sweep reads the customer's open invoices and finishes
baselineWhat we probed
The daily sweep reads the customer's open invoices and finishes
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocations
Expected vs actual
- Expected
- The daily sweep reads the customer's open invoices and finishes
- Actual
- expected exactly 1, found 1; stable under 2 repeats (1)
Requests and responses
01GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/baseline/runs200
We sent
GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/baseline/runs
This request had no body.
Server returned
HTTP 200
{
"runs": []
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/baseline/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/baseline/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
02POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "baseline-vr_243352f82fcf4575922b792da8a81865",
"input": {
"stage": "sweep",
"customers": [
"[email protected]"
],
"financeChannel": "C0BILLING01",
"approvers": [
"U_CONTROLLER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "baseline"
}
}Server returned
HTTP 200
{
"runId": "baseline-vr_243352f82fcf4575922b792da8a81865",
"workflow": "failed-payment-dunning",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "Finance",
"team": "billing-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "baseline"
},
"duplicateStarts": 0,
"agents": [
{
"name": "invoice-check",
"status": "ok",
"summary": "1 invoice(s), 1 open",
"durationMs": 1183
},
{
"name": "dunning-plan",
"status": "ok",
"summary": "1 step(s) due",
"durationMs": 0
}
],
"actions": [
{
"id": "gmail.draft_final_notice:b7fb0ca22f",
"kind": "gmail.draft_notice",
"provider": "gmail",
"agent": "dunning-plan",
"gate": "auto",
"status": "applied",
"summary": {
"invoice": "in_6SBPHSM12A00QSSMX9S69ZEM",
"step": "final_notice",
"sent": false
},
"attempts": 1,
"ref": "r1286141135367425",
"appliedAt": "2026-10-22T18:56:16.242Z",
"reconciled": null
},
{
"id": "stripe.record_step:in_6SBPHSM12A00QSSMX9S69ZEM",
"kind": "stripe.record_step",
"provider": "stripe",
"agent": "dunning-plan",
"gate": "auto",
"status": "applied",
"summary": {
"invoice": "in_6SBPHSM12A00QSSMX9S69ZEM",
"step": "final_notice"
},
"attempts": 1,
"ref": "cus_9H4EI7H2QMIJEIHW",
"detail": {
"step": "final_notice"
},
"appliedAt": "2026-10-22T18:56:16.457Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": null,
"output": {
"mode": "dunning",
"invoices": 1,
"steps": [
"in_6SBPHSM12A00QSSMX9S69ZEM:final_notice"
],
"skipped": []
},
"events": [
{
"at": "2026-10-22T18:56:14.203Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T18:56:15.387Z",
"msg": "agents: invoice-check=ok"
},
{
"at": "2026-10-22T18:56:15.411Z",
"msg": "planned 2 action(s): 0 need approval"
},
{
"at": "2026-10-22T18:56:16.243Z",
"msg": "gmail.draft_final_notice:b7fb0ca22f: applied"
},
{
"at": "2026-10-22T18:56:16.457Z",
"msg": "stripe.record_step:in_6SBPHSM12A00QSSMX9S69ZEM: applied"
},
{
"at": "2026-10-22T18:56:16.458Z",
"msg": "done (ok)"
}
],
"createdAt": "2026-10-22T18:56:14.203Z",
"updatedAt": "2026-10-22T18:56:16.458Z",
"duplicate": false
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "329",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "baseline-vr_243352f82fcf4575922b792da8a81865",
"input": {
"stage": "sweep",
"customers": [
"[email protected]"
],
"financeChannel": "C0BILLING01",
"approvers": [
"U_CONTROLLER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "baseline"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
03GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/baseline/runs200
We sent
GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/baseline/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "baseline-vr_243352f82fcf4575922b792da8a81865",
"workflow": "failed-payment-dunning",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "Finance",
"team": "billing-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "baseline"
},
"duplicateStarts": 0,
"agents": [
{
"name": "invoice-check",
"status": "ok",
"summary": "1 invoice(s), 1 open",
"durationMs": 1183
},
{
"name": "dunning-plan",
"status": "ok",
"summary": "1 step(s) due",
"durationMs": 0
}
],
"actions": [
{
"id": "gmail.draft_final_notice:b7fb0ca22f",
"kind": "gmail.draft_notice",
"provider": "gmail",
"agent": "dunning-plan",
"gate": "auto",
"status": "applied",
"summary": {
"invoice": "in_6SBPHSM12A00QSSMX9S69ZEM",
"step": "final_notice",
"sent": false
},
"attempts": 1,
"ref": "r1286141135367425",
"appliedAt": "2026-10-22T18:56:16.242Z",
"reconciled": null
},
{
"id": "stripe.record_step:in_6SBPHSM12A00QSSMX9S69ZEM",
"kind": "stripe.record_step",
"provider": "stripe",
"agent": "dunning-plan",
"gate": "auto",
"status": "applied",
"summary": {
"invoice": "in_6SBPHSM12A00QSSMX9S69ZEM",
"step": "final_notice"
},
"attempts": 1,
"ref": "cus_9H4EI7H2QMIJEIHW",
"detail": {
"step": "final_notice"
},
"appliedAt": "2026-10-22T18:56:16.457Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": null,
"output": {
"mode": "dunning",
"invoices": 1,
"steps": [
"in_6SBPHSM12A00QSSMX9S69ZEM:final_notice"
],
"skipped": []
},
"events": [
{
"at": "2026-10-22T18:56:14.203Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T18:56:15.387Z",
"msg": "agents: invoice-check=ok"
},
{
"at": "2026-10-22T18:56:15.411Z",
"msg": "planned 2 action(s): 0 need approval"
},
{
"at": "2026-10-22T18:56:16.243Z",
"msg": "gmail.draft_final_notice:b7fb0ca22f: applied"
},
{
"at": "2026-10-22T18:56:16.457Z",
"msg": "stripe.record_step:in_6SBPHSM12A00QSSMX9S69ZEM: applied"
},
{
"at": "2026-10-22T18:56:16.458Z",
"msg": "done (ok)"
}
],
"createdAt": "2026-10-22T18:56:14.203Z",
"updatedAt": "2026-10-22T18:56:16.458Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/baseline/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/baseline/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
04POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "baseline-vr_243352f82fcf4575922b792da8a81865",
"input": {
"stage": "sweep",
"customers": [
"[email protected]"
],
"financeChannel": "C0BILLING01",
"approvers": [
"U_CONTROLLER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "baseline"
}
}Server returned
HTTP 200
{
"runId": "baseline-vr_243352f82fcf4575922b792da8a81865",
"workflow": "failed-payment-dunning",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "Finance",
"team": "billing-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "baseline"
},
"duplicateStarts": 1,
"agents": [
{
"name": "invoice-check",
"status": "ok",
"summary": "1 invoice(s), 1 open",
"durationMs": 1183
},
{
"name": "dunning-plan",
"status": "ok",
"summary": "1 step(s) due",
"durationMs": 0
}
],
"actions": [
{
"id": "gmail.draft_final_notice:b7fb0ca22f",
"kind": "gmail.draft_notice",
"provider": "gmail",
"agent": "dunning-plan",
"gate": "auto",
"status": "applied",
"summary": {
"invoice": "in_6SBPHSM12A00QSSMX9S69ZEM",
"step": "final_notice",
"sent": false
},
"attempts": 1,
"ref": "r1286141135367425",
"appliedAt": "2026-10-22T18:56:16.242Z",
"reconciled": null
},
{
"id": "stripe.record_step:in_6SBPHSM12A00QSSMX9S69ZEM",
"kind": "stripe.record_step",
"provider": "stripe",
"agent": "dunning-plan",
"gate": "auto",
"status": "applied",
"summary": {
"invoice": "in_6SBPHSM12A00QSSMX9S69ZEM",
"step": "final_notice"
},
"attempts": 1,
"ref": "cus_9H4EI7H2QMIJEIHW",
"detail": {
"step": "final_notice"
},
"appliedAt": "2026-10-22T18:56:16.457Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": null,
"output": {
"mode": "dunning",
"invoices": 1,
"steps": [
"in_6SBPHSM12A00QSSMX9S69ZEM:final_notice"
],
"skipped": []
},
"events": [
{
"at": "2026-10-22T18:56:14.203Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T18:56:15.387Z",
"msg": "agents: invoice-check=ok"
},
{
"at": "2026-10-22T18:56:15.411Z",
"msg": "planned 2 action(s): 0 need approval"
},
{
"at": "2026-10-22T18:56:16.243Z",
"msg": "gmail.draft_final_notice:b7fb0ca22f: applied"
},
{
"at": "2026-10-22T18:56:16.457Z",
"msg": "stripe.record_step:in_6SBPHSM12A00QSSMX9S69ZEM: applied"
},
{
"at": "2026-10-22T18:56:16.458Z",
"msg": "done (ok)"
},
{
"at": "2026-10-22T18:56:17.067Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-22T18:56:14.203Z",
"updatedAt": "2026-10-22T18:56:17.067Z",
"duplicate": true
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "329",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "baseline-vr_243352f82fcf4575922b792da8a81865",
"input": {
"stage": "sweep",
"customers": [
"[email protected]"
],
"financeChannel": "C0BILLING01",
"approvers": [
"U_CONTROLLER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "baseline"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
05GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/baseline/runs200
We sent
GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/baseline/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "baseline-vr_243352f82fcf4575922b792da8a81865",
"workflow": "failed-payment-dunning",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "Finance",
"team": "billing-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "baseline"
},
"duplicateStarts": 1,
"agents": [
{
"name": "invoice-check",
"status": "ok",
"summary": "1 invoice(s), 1 open",
"durationMs": 1183
},
{
"name": "dunning-plan",
"status": "ok",
"summary": "1 step(s) due",
"durationMs": 0
}
],
"actions": [
{
"id": "gmail.draft_final_notice:b7fb0ca22f",
"kind": "gmail.draft_notice",
"provider": "gmail",
"agent": "dunning-plan",
"gate": "auto",
"status": "applied",
"summary": {
"invoice": "in_6SBPHSM12A00QSSMX9S69ZEM",
"step": "final_notice",
"sent": false
},
"attempts": 1,
"ref": "r1286141135367425",
"appliedAt": "2026-10-22T18:56:16.242Z",
"reconciled": null
},
{
"id": "stripe.record_step:in_6SBPHSM12A00QSSMX9S69ZEM",
"kind": "stripe.record_step",
"provider": "stripe",
"agent": "dunning-plan",
"gate": "auto",
"status": "applied",
"summary": {
"invoice": "in_6SBPHSM12A00QSSMX9S69ZEM",
"step": "final_notice"
},
"attempts": 1,
"ref": "cus_9H4EI7H2QMIJEIHW",
"detail": {
"step": "final_notice"
},
"appliedAt": "2026-10-22T18:56:16.457Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": null,
"output": {
"mode": "dunning",
"invoices": 1,
"steps": [
"in_6SBPHSM12A00QSSMX9S69ZEM:final_notice"
],
"skipped": []
},
"events": [
{
"at": "2026-10-22T18:56:14.203Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T18:56:15.387Z",
"msg": "agents: invoice-check=ok"
},
{
"at": "2026-10-22T18:56:15.411Z",
"msg": "planned 2 action(s): 0 need approval"
},
{
"at": "2026-10-22T18:56:16.243Z",
"msg": "gmail.draft_final_notice:b7fb0ca22f: applied"
},
{
"at": "2026-10-22T18:56:16.457Z",
"msg": "stripe.record_step:in_6SBPHSM12A00QSSMX9S69ZEM: applied"
},
{
"at": "2026-10-22T18:56:16.458Z",
"msg": "done (ok)"
},
{
"at": "2026-10-22T18:56:17.067Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-22T18:56:14.203Z",
"updatedAt": "2026-10-22T18:56:17.067Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/baseline/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/baseline/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Evidence
- Run
vr_243352f82fcf4575922b792da8a81865- App version (declared)
acme-ops-failed-payment-dunn…- Source receipt
- Source receipt ↗
Technical reference
baselineApp version (declared): acme-ops-failed-payment-dunning-1.0.0-4ac41d8
The daily sweep reads the customer's open invoices and finishes
expected exactly 1, found 1; stable under 2 repeats (1)
- Verification covers the declared HTTP actions and state reads in this run.
- The app version shown was supplied by the app itself, not independently checked.
- Passing all checks in this run does not certify the whole app as production-ready.
- The verifier session does not survive a restart. This says nothing about the durability of the app under test.
- App state shown here is what the app's own endpoint reported. It is not independently checked against the database.
Provider traffic in the same time window (8)
These calls were recorded during the same request window as this check but are not directly linked to it. Timing alone is not proof that they caused or were caused by this check.
stripe · GET /v1/customers · HTTP 200
We sent
GET /v1/customers
No body shown for this read.
Server returned
HTTP 200
{
"data": [
{
"email": "[email protected]",
"name": "Dana Billing",
"id": "cus_9H4EI7H2QMIJEIHW",
"address": null,
"balance": 0,
"business_name": "Sample Business",
"cash_balance": null,
"created": 60,
"currency": "USD",
"customer_account": null,
"default_source": null,
"delinquent": false,
"description": null,
"discount": null,
"individual_name": "Sample Individual",
"invoice_prefix": null,
"livemode": false,
"object": "customer",
"phone": "+14155550100",
"preferred_locales": null,
"shipping": null,
"tax_exempt": "exempt",
"test_clock": null
}
],
"has_more": false,
"object": "list",
"url": "/v1/customers"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/198897286c/v1/customers
{
"host": "fetchsandbox.com",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/customers' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/invoices · HTTP 200
We sent
GET /v1/invoices
No body shown for this read.
Server returned
HTTP 200
{
"data": [
{
"object": "invoice",
"parent": {
"type": "subscription_details",
"subscription_details": {
"subscription": "sub_62DJCPKGKNJT4RRSQH5X568M",
"metadata": {}
}
},
"customer": "cus_9H4EI7H2QMIJEIHW",
"currency": "usd",
"total": 60000,
"amount_due": 60000,
"amount_paid": 0,
"amount_remaining": 60000,
"status": "open",
"created": 1792695266,
"id": "in_6SBPHSM12A00QSSMX9S69ZEM",
"payments": {
"object": "list",
"data": [
{
"id": "inpay_DCW2Z8RE00V87VLKO3G0LXJE",
"object": "invoice_payment",
"invoice": "in_6SBPHSM12A00QSSMX9S69ZEM",
"amount_requested": 60000,
"amount_paid": null,
"currency": "usd",
"created": 1792695266,
"is_default": true,
"livemode": false,
"status": "open",
"status_transitions": {
"paid_at": null,
"canceled_at": null
},
"payment": {
"type": "payment_intent",
"payment_intent": "pi_51EUBMNU08KD65J9DHYTWBEI"
}
}
],
"has_more": false,
"url": "/v1/invoice_payments?invoice=in_6SBPHSM12A00QSSMX9S69ZEM"
},
"amount_overpaid": 91,
"amount_shipping": 57,
"attempt_count": 19,
"attempted": true,
"auto_advance": true,
"automatic_tax": {
"disabled_reason": "finalization_requires_location_inputs",
"enabled": true,
"provider": "default",
"status": "complete"
},
"collection_method": "charge_automatically",
"default_tax_rates": [
{
"active": true,
"country": "US",
"created": 0,
"display_name": "Item 283",
"id": "obj_33b6feb3949e4195877e17b13f",
"inclusive": true,
"jurisdiction_level": "city",
"livemode": false,
"object": "tax_rate",
"percentage": 107.2205,
"rate_type": "flat_amount",
"tax_type": "amusement_tax"
}
],
"discounts": [
"sample-value"
],
"issuer": {
"type": "account"
},
"lines": {
"data": [
{
"amount": 92,
"currency": "USD",
"discountable": true,
"discounts": [
"sample-value"
],
"id": "obj_c3196cda93084567a36d788b0c",
"livemode": false,
"metadata": {},
"object": "line_item",
"period": {
"end": 50,
"start": 11
},
"subtotal": 84
}
],
"has_more": true,
"object": "list",
"url": "https://example.com/c9a081a8"
},
"livemode": true,
"payment_settings": {
"default_mandate": "sample-value",
"payment_method_options": {
"acss_debit": {
"mandate_options": {
"transaction_type": "business"
},
"verification_method": "automatic"
},
"bancontact": {
"preferred_language": "de"
},
"card": {
"installments": {
"enabled": true
},
"request_three_d_secure": "any"
},
"customer_balance": {
"bank_transfer": {
"eu_bank_transfer": {
"country": "US"
},
"type": "default"
},
"funding_type": "bank_transfer"
},
"konbini": {},
"payto": {
"mandate_options": {
"amount": 78,
"amount_type": "fixed",
"purpose": "dependant_support"
}
},
"sepa_debit": {},
"us_bank_account": {
"financial_connections": {
"filters": {
"account_subcategories": [
"checking"
]
},
"permissions": [
"balances"
],
"prefetch": [
"balances"
]
},
"verification_method": "automatic"
}
},
"payment_method_types": [
"ach_credit_transfer"
]
},
"period_end": 67,
"period_start": 73,
"post_payment_credit_notes_amount": 20,
"pre_payment_credit_notes_amount": 54,
"starting_balance": 66,
"status_transitions": {
"finalized_at": 16,
"marked_uncollectible_at": 59,
"paid_at": 27,
"voided_at": 91
},
"subtotal": 40,
"account_country": null,
"account_name": null,
"account_tax_ids": null,
"application": null,
"automatically_finalizes_at": null,
"billing_reason": null,
"confirmation_secret": "[redacted]",
"custom_fields": null,
"customer_account": null,
"customer_address": null,
"customer_email": null,
"customer_name": null,
"customer_phone": null,
"customer_shipping": null,
"customer_tax_exempt": null,
"customer_tax_ids": null,
"default_payment_method": null,
"default_source": null,
"description": null,
"due_date": null,
"effective_at": null,
"ending_balance": null,
"footer": null,
"from_invoice": null,
"hosted_invoice_url": null,
"invoice_pdf": null,
"last_finalization_error": null,
"latest_revision": null,
"metadata": null,
"next_payment_attempt": null,
"number": null,
"on_behalf_of": null,
"receipt_number": null,
"rendering": null,
"shipping_cost": null,
"shipping_details": null,
"statement_descriptor": null,
"subtotal_excluding_tax": null,
"test_clock": null,
"total_discount_amounts": null,
"total_excluding_tax": null,
"total_pretax_credit_amounts": null,
"total_taxes": null,
"webhooks_delivered_at": null
}
],
"has_more": false,
"object": "list",
"url": "/v1/invoices"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/198897286c/v1/invoices
{
"host": "fetchsandbox.com",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/invoices' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/customers/cus_9H4EI7H2QMIJEIHW · HTTP 200
We sent
GET /v1/customers/cus_9H4EI7H2QMIJEIHW
No body shown for this read.
Server returned
HTTP 200
{
"address": null,
"balance": 0,
"business_name": "Sample Business",
"cash_balance": null,
"created": 60,
"currency": "USD",
"customer_account": null,
"default_source": null,
"delinquent": false,
"description": null,
"discount": null,
"email": "[email protected]",
"id": "cus_9H4EI7H2QMIJEIHW",
"individual_name": "Sample Individual",
"invoice_prefix": null,
"livemode": false,
"name": "Dana Billing",
"object": "customer",
"phone": "+14155550100",
"preferred_locales": null,
"shipping": null,
"tax_exempt": "exempt",
"test_clock": null,
"invoice_settings[default_payment_method]": "pm_card_chargeCustomerFail"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/198897286c/v1/customers/cus_9H4EI7H2QMIJEIHW
{
"host": "fetchsandbox.com",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/customers/cus_9H4EI7H2QMIJEIHW' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/payment_methods · HTTP 200
We sent
GET /v1/payment_methods
No body shown for this read.
Server returned
HTTP 200
{
"data": [],
"has_more": false,
"object": "list",
"url": "/v1/payment_methods"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/198897286c/v1/payment_methods
{
"host": "fetchsandbox.com",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/payment_methods' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/invoices/in_6SBPHSM12A00QSSMX9S69ZEM · HTTP 200
We sent
GET /v1/invoices/in_6SBPHSM12A00QSSMX9S69ZEM
No body shown for this read.
Server returned
HTTP 200
{
"account_country": null,
"account_name": "Sample Account",
"account_tax_ids": null,
"amount_due": 60000,
"amount_overpaid": 35,
"amount_paid": 0,
"amount_remaining": 60000,
"amount_shipping": 14,
"application": null,
"attempt_count": 0,
"attempted": true,
"auto_advance": true,
"automatic_tax": {
"disabled_reason": "finalization_requires_location_inputs",
"enabled": true,
"liability": null,
"provider": "default",
"status": "complete"
},
"automatically_finalizes_at": null,
"billing_reason": "automatic_pending_invoice_item_invoice",
"collection_method": "charge_automatically",
"confirmation_secret": "[redacted]",
"created": 1792695266,
"currency": "usd",
"custom_fields": null,
"customer": "cus_9H4EI7H2QMIJEIHW",
"customer_account": null,
"customer_address": null,
"customer_email": null,
"customer_name": "Sample Customer",
"customer_phone": null,
"customer_shipping": null,
"customer_tax_exempt": "exempt",
"customer_tax_ids": null,
"default_payment_method": null,
"default_source": null,
"default_tax_rates": [
{
"active": true,
"country": "US",
"created": 79,
"description": null,
"display_name": "Item 345",
"effective_percentage": null,
"flat_amount": null,
"id": "obj_095040b2d77b4a189019b13345",
"inclusive": true,
"jurisdiction": null,
"jurisdiction_level": "city",
"livemode": false,
"metadata": null,
"object": "tax_rate",
"percentage": 339.3676,
"rate_type": "flat_amount",
"state": null,
"tax_type": "amusement_tax"
}
],
"description": null,
"discounts": [
"sample-value"
],
"due_date": null,
"effective_at": null,
"ending_balance": null,
"footer": null,
"from_invoice": null,
"hosted_invoice_url": "https://example.com/53e8fd6d",
"id": "in_6SBPHSM12A00QSSMX9S69ZEM",
"invoice_pdf": null,
"issuer": {
"type": "account"
},
"last_finalization_error": null,
"latest_revision": null,
"lines": {
"data": [
{
"amount": 87,
"currency": "USD",
"description": null,
"discount_amounts": null,
"discountable": true,
"discounts": [
"sample-value"
],
"id": "obj_79d69aff8e384bcca6af9428b6",
"invoice": null,
"livemode": false,
"metadata": {},
"object": "line_item",
"parent": null,
"period": {
"end": 95,
"start": 53
},
"pretax_credit_amounts": null,
"pricing": null,
"quantity": null,
"subscription": null,
"subtotal": 53,
"taxes": null
}
],
"has_more": true,
"object": "list",
"url": "https://example.com/fd09241e"
},
"livemode": false,
"metadata": null,
"next_payment_attempt": null,
"number": null,
"object": "invoice",
"on_behalf_of": null,
"parent": {
"type": "subscription_details",
"subscription_details": {
"subscription": "sub_62DJCPKGKNJT4RRSQH5X568M",
"metadata": {}
}
},
"payment_settings": {
"default_mandate": "sample-value",
"payment_method_options": {
"acss_debit": {
"mandate_options": "sample-value",
"verification_method": "automatic"
},
"bancontact": {
"preferred_language": "de"
},
"card": {
"installments": "sample-value",
"request_three_d_secure": "any"
},
"customer_balance": {
"bank_transfer": "sample-value",
"funding_type": "bank_transfer"
},
"konbini": {},
"payto": {
"mandate_options": "sample-value"
},
"sepa_debit": {},
"us_bank_account": {
"financial_connections": "sample-value",
"verification_method": "automatic"
}
},
"payment_method_types": [
"ach_credit_transfer"
]
},
"period_end": 36,
"period_start": 0,
"post_payment_credit_notes_amount": 37,
"pre_payment_credit_notes_amount": 5,
"receipt_number": null,
"rendering": null,
"shipping_cost": null,
"shipping_details": null,
"starting_balance": 7,
"statement_descriptor": null,
"status": "open",
"status_transitions": {
"finalized_at": 69,
"marked_uncollectible_at": 72,
"paid_at": 20,
"voided_at": 34
},
"subtotal": 8,
"subtotal_excluding_tax": null,
"test_clock": null,
"total": 60000,
"total_discount_amounts": null,
"total_excluding_tax": null,
"total_pretax_credit_amounts": null,
"total_taxes": null,
"webhooks_delivered_at": null,
"payments": {
"object": "list",
"data": [
{
"id": "inpay_DCW2Z8RE00V87VLKO3G0LXJE",
"object": "invoice_payment",
"invoice": "in_6SBPHSM12A00QSSMX9S69ZEM",
"amount_requested": 60000,
"amount_paid": null,
"currency": "usd",
"created": 1792695266,
"is_default": true,
"livemode": false,
"status": "open",
"status_transitions": {
"paid_at": null,
"canceled_at": null
},
"payment": {
"type": "payment_intent",
"payment_intent": "pi_51EUBMNU08KD65J9DHYTWBEI"
}
}
],
"has_more": false,
"url": "/v1/invoice_payments?invoice=in_6SBPHSM12A00QSSMX9S69ZEM"
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/198897286c/v1/invoices/in_6SBPHSM12A00QSSMX9S69ZEM
{
"host": "fetchsandbox.com",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/invoices/in_6SBPHSM12A00QSSMX9S69ZEM' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/customers/cus_9H4EI7H2QMIJEIHW · HTTP 200
We sent
GET /v1/customers/cus_9H4EI7H2QMIJEIHW
No body shown for this read.
Server returned
HTTP 200
{
"address": null,
"balance": 0,
"business_name": "Sample Business",
"cash_balance": null,
"created": 60,
"currency": "USD",
"customer_account": null,
"default_source": null,
"delinquent": false,
"description": null,
"discount": null,
"email": "[email protected]",
"id": "cus_9H4EI7H2QMIJEIHW",
"individual_name": "Sample Individual",
"invoice_prefix": null,
"livemode": false,
"name": "Dana Billing",
"object": "customer",
"phone": "+14155550100",
"preferred_locales": null,
"shipping": null,
"tax_exempt": "exempt",
"test_clock": null,
"invoice_settings[default_payment_method]": "pm_card_chargeCustomerFail"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/198897286c/v1/customers/cus_9H4EI7H2QMIJEIHW
{
"host": "fetchsandbox.com",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/customers/cus_9H4EI7H2QMIJEIHW' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
gmail · POST /gmail/v1/users/me/drafts · HTTP 200
We sent
POST /gmail/v1/users/me/drafts
{
"message": {
"raw": "RnJvbTogbWUNClRvOiBkdW4tYmFzZWxpbmVAYmlsbGluZy5leGFtcGxlLmNvbQ0KU3ViamVjdDogRmluYWwgbm90aWNlOiAkNjAwLjAwIG92ZXJkdWUNCk1lc3NhZ2UtSUQ6IDxkMmM2ZWEzNzBmZTBiMDVkLmR1bm5pbmctZmluYWxfbm90aWNlLWI3ZmIwY2EyMmZAb3BzLmFjbWUuZXhhbXBsZT4NCk1JTUUtVmVyc2lvbjogMS4wDQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04Ig0KQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdA0KDQpIZWxsbywKCkludm9pY2UgaW5fNlNCUEhTTTEyQTAwUVNTTVg5UzY5WkVNIGZvciAkNjAwLjAwIGlzIG92ZXJkdWUuIElmIGl0IHN0YXlzIHVucGFpZCwgeW91ciBzdWJzY3JpcHRpb24gd2lsbCBiZSBjYW5jZWxsZWQgYWZ0ZXIgYSByZXZpZXcgYnkgb3VyIGJpbGxpbmcgdGVhbS4KCkFDTUUgQmlsbGluZw"
}
}Server returned
HTTP 200
{
"message": {
"raw": "RnJvbTogbWUNClRvOiBkdW4tYmFzZWxpbmVAYmlsbGluZy5leGFtcGxlLmNvbQ0KU3ViamVjdDogRmluYWwgbm90aWNlOiAkNjAwLjAwIG92ZXJkdWUNCk1lc3NhZ2UtSUQ6IDxkMmM2ZWEzNzBmZTBiMDVkLmR1bm5pbmctZmluYWxfbm90aWNlLWI3ZmIwY2EyMmZAb3BzLmFjbWUuZXhhbXBsZT4NCk1JTUUtVmVyc2lvbjogMS4wDQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04Ig0KQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdA0KDQpIZWxsbywKCkludm9pY2UgaW5fNlNCUEhTTTEyQTAwUVNTTVg5UzY5WkVNIGZvciAkNjAwLjAwIGlzIG92ZXJkdWUuIElmIGl0IHN0YXlzIHVucGFpZCwgeW91ciBzdWJzY3JpcHRpb24gd2lsbCBiZSBjYW5jZWxsZWQgYWZ0ZXIgYSByZXZpZXcgYnkgb3VyIGJpbGxpbmcgdGVhbS4KCkFDTUUgQmlsbGluZw",
"payload": {
"mimeType": "text/plain",
"headers": [
{
"name": "From",
"value": "me"
},
{
"name": "To",
"value": "[email protected]"
},
{
"name": "Subject",
"value": "Final notice: $600.00 overdue"
},
{
"name": "Message-ID",
"value": "<d2c6ea370fe0b05d.dunning-final_notice-b7fb0ca22f@ops.acme.example>"
},
{
"name": "MIME-Version",
"value": "1.0"
},
{
"name": "Content-Type",
"value": "text/plain; charset=\"UTF-8\""
},
{
"name": "Content-Transfer-Encoding",
"value": "8bit"
}
],
"body": {
"size": 173,
"data": "SGVsbG8sCgpJbnZvaWNlIGluXzZTQlBIU00xMkEwMFFTU01YOVM2OVpFTSBmb3IgJDYwMC4wMCBpcyBvdmVyZHVlLiBJZiBpdCBzdGF5cyB1bnBhaWQsIHlvdXIgc3Vic2NyaXB0aW9uIHdpbGwgYmUgY2FuY2VsbGVkIGFmdGVyIGEgcmV2aWV3IGJ5IG91ciBiaWxsaW5nIHRlYW0uCgpBQ01FIEJpbGxpbmc"
}
},
"sizeEstimate": 439,
"labelIds": [
"DRAFT"
],
"id": "1972144355a44809"
},
"user_id": "me",
"id": "r1286141135367425"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/caf533faa2/gmail/v1/users/me/drafts
{
"host": "fetchsandbox.com",
"content-length": "608",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"content-type": "application/json; charset=utf-8"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/caf533faa2/gmail/v1/users/me/drafts' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \
--header 'content-type: application/json; charset=utf-8' \
--data-raw '{
"message": {
"raw": "RnJvbTogbWUNClRvOiBkdW4tYmFzZWxpbmVAYmlsbGluZy5leGFtcGxlLmNvbQ0KU3ViamVjdDogRmluYWwgbm90aWNlOiAkNjAwLjAwIG92ZXJkdWUNCk1lc3NhZ2UtSUQ6IDxkMmM2ZWEzNzBmZTBiMDVkLmR1bm5pbmctZmluYWxfbm90aWNlLWI3ZmIwY2EyMmZAb3BzLmFjbWUuZXhhbXBsZT4NCk1JTUUtVmVyc2lvbjogMS4wDQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04Ig0KQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdA0KDQpIZWxsbywKCkludm9pY2UgaW5fNlNCUEhTTTEyQTAwUVNTTVg5UzY5WkVNIGZvciAkNjAwLjAwIGlzIG92ZXJkdWUuIElmIGl0IHN0YXlzIHVucGFpZCwgeW91ciBzdWJzY3JpcHRpb24gd2lsbCBiZSBjYW5jZWxsZWQgYWZ0ZXIgYSByZXZpZXcgYnkgb3VyIGJpbGxpbmcgdGVhbS4KCkFDTUUgQmlsbGluZw"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · POST /v1/customers/cus_9H4EI7H2QMIJEIHW · HTTP 200
We sent
POST /v1/customers/cus_9H4EI7H2QMIJEIHW
{
"metadata": {
"acme_dunning_in_6SBPHSM12A00QSSMX9S69ZEM": "final_notice"
}
}Server returned
HTTP 200
{
"email": "[email protected]",
"name": "Dana Billing",
"id": "cus_9H4EI7H2QMIJEIHW",
"address": null,
"balance": 0,
"business_name": "Sample Business",
"cash_balance": null,
"created": 60,
"currency": "USD",
"customer_account": null,
"default_source": null,
"delinquent": false,
"description": null,
"discount": null,
"individual_name": "Sample Individual",
"invoice_prefix": null,
"livemode": false,
"object": "customer",
"phone": "+14155550100",
"preferred_locales": null,
"shipping": null,
"tax_exempt": "exempt",
"test_clock": null,
"invoice_settings[default_payment_method]": "pm_card_chargeCustomerFail",
"metadata": {
"acme_dunning_in_6SBPHSM12A00QSSMX9S69ZEM": "final_notice"
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/198897286c/v1/customers/cus_9H4EI7H2QMIJEIHW
{
"host": "fetchsandbox.com",
"content-length": "67",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"content-type": "application/x-www-form-urlencoded"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/198897286c/v1/customers/cus_9H4EI7H2QMIJEIHW' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \
--header 'content-type: application/x-www-form-urlencoded' \
--data-raw '{
"metadata": {
"acme_dunning_in_6SBPHSM12A00QSSMX9S69ZEM": "final_notice"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
After the first failed collection the customer gets a card-update notice draft and the step is recorded
first_failure_card_update_noticeWhat we probed
After the first failed collection the customer gets a card-update notice draft and the step is recorded
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocations
Expected vs actual
- Expected
- After the first failed collection the customer gets a card-update notice draft and the step is recorded
- Actual
- required observation 'attempt_count' is missing
Requests and responses
01GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/first_failure_card_update_notice/runs200
We sent
GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/first_failure_card_update_notice/runs
This request had no body.
Server returned
HTTP 200
{
"runs": []
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/first_failure_card_update_notice/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/first_failure_card_update_notice/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
02POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "first-failure-card-update-notice-vr_243352f82fcf4575922b792da8a81865",
"input": {
"stage": "payment_failed",
"invoiceId": "in_D4F157M1PQMOMXU8WUXWPY90",
"financeChannel": "C0BILLING01",
"approvers": [
"U_CONTROLLER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "first_failure_card_update_notice"
}
}Server returned
HTTP 200
{
"runId": "first-failure-card-update-notice-vr_243352f82fcf4575922b792da8a81865",
"workflow": "failed-payment-dunning",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "Finance",
"team": "billing-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "first_failure_card_update_notice"
},
"duplicateStarts": 0,
"agents": [
{
"name": "invoice-check",
"status": "ok",
"summary": "1 invoice(s), 0 open",
"durationMs": 686
},
{
"name": "dunning-plan",
"status": "ok",
"summary": "0 step(s) due",
"durationMs": 0
}
],
"actions": [],
"counts": {
"applied": 0,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": null,
"output": {
"mode": "nothing",
"invoices": 1,
"steps": [],
"skipped": [
"in_D4F157M1PQMOMXU8WUXWPY90: invoice is paid"
]
},
"events": [
{
"at": "2026-10-22T18:56:17.923Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T18:56:18.610Z",
"msg": "agents: invoice-check=ok"
},
{
"at": "2026-10-22T18:56:18.612Z",
"msg": "planned 0 action(s): 0 need approval"
},
{
"at": "2026-10-22T18:56:18.615Z",
"msg": "done (ok)"
}
],
"createdAt": "2026-10-22T18:56:17.923Z",
"updatedAt": "2026-10-22T18:56:18.615Z",
"duplicate": false
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "379",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "first-failure-card-update-notice-vr_243352f82fcf4575922b792da8a81865",
"input": {
"stage": "payment_failed",
"invoiceId": "in_D4F157M1PQMOMXU8WUXWPY90",
"financeChannel": "C0BILLING01",
"approvers": [
"U_CONTROLLER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "first_failure_card_update_notice"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
03GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/first_failure_card_update_notice/runs200
We sent
GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/first_failure_card_update_notice/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "first-failure-card-update-notice-vr_243352f82fcf4575922b792da8a81865",
"workflow": "failed-payment-dunning",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "Finance",
"team": "billing-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "first_failure_card_update_notice"
},
"duplicateStarts": 0,
"agents": [
{
"name": "invoice-check",
"status": "ok",
"summary": "1 invoice(s), 0 open",
"durationMs": 686
},
{
"name": "dunning-plan",
"status": "ok",
"summary": "0 step(s) due",
"durationMs": 0
}
],
"actions": [],
"counts": {
"applied": 0,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": null,
"output": {
"mode": "nothing",
"invoices": 1,
"steps": [],
"skipped": [
"in_D4F157M1PQMOMXU8WUXWPY90: invoice is paid"
]
},
"events": [
{
"at": "2026-10-22T18:56:17.923Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T18:56:18.610Z",
"msg": "agents: invoice-check=ok"
},
{
"at": "2026-10-22T18:56:18.612Z",
"msg": "planned 0 action(s): 0 need approval"
},
{
"at": "2026-10-22T18:56:18.615Z",
"msg": "done (ok)"
}
],
"createdAt": "2026-10-22T18:56:17.923Z",
"updatedAt": "2026-10-22T18:56:18.615Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/first_failure_card_update_notice/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/first_failure_card_update_notice/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
04POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "first-failure-card-update-notice-vr_243352f82fcf4575922b792da8a81865",
"input": {
"stage": "payment_failed",
"invoiceId": "in_D4F157M1PQMOMXU8WUXWPY90",
"financeChannel": "C0BILLING01",
"approvers": [
"U_CONTROLLER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "first_failure_card_update_notice"
}
}Server returned
HTTP 200
{
"runId": "first-failure-card-update-notice-vr_243352f82fcf4575922b792da8a81865",
"workflow": "failed-payment-dunning",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "Finance",
"team": "billing-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "first_failure_card_update_notice"
},
"duplicateStarts": 1,
"agents": [
{
"name": "invoice-check",
"status": "ok",
"summary": "1 invoice(s), 0 open",
"durationMs": 686
},
{
"name": "dunning-plan",
"status": "ok",
"summary": "0 step(s) due",
"durationMs": 0
}
],
"actions": [],
"counts": {
"applied": 0,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": null,
"output": {
"mode": "nothing",
"invoices": 1,
"steps": [],
"skipped": [
"in_D4F157M1PQMOMXU8WUXWPY90: invoice is paid"
]
},
"events": [
{
"at": "2026-10-22T18:56:17.923Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T18:56:18.610Z",
"msg": "agents: invoice-check=ok"
},
{
"at": "2026-10-22T18:56:18.612Z",
"msg": "planned 0 action(s): 0 need approval"
},
{
"at": "2026-10-22T18:56:18.615Z",
"msg": "done (ok)"
},
{
"at": "2026-10-22T18:56:19.195Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-22T18:56:17.923Z",
"updatedAt": "2026-10-22T18:56:19.195Z",
"duplicate": true
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "379",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "first-failure-card-update-notice-vr_243352f82fcf4575922b792da8a81865",
"input": {
"stage": "payment_failed",
"invoiceId": "in_D4F157M1PQMOMXU8WUXWPY90",
"financeChannel": "C0BILLING01",
"approvers": [
"U_CONTROLLER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "first_failure_card_update_notice"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
05GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/first_failure_card_update_notice/runs200
We sent
GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/first_failure_card_update_notice/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "first-failure-card-update-notice-vr_243352f82fcf4575922b792da8a81865",
"workflow": "failed-payment-dunning",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "Finance",
"team": "billing-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "first_failure_card_update_notice"
},
"duplicateStarts": 1,
"agents": [
{
"name": "invoice-check",
"status": "ok",
"summary": "1 invoice(s), 0 open",
"durationMs": 686
},
{
"name": "dunning-plan",
"status": "ok",
"summary": "0 step(s) due",
"durationMs": 0
}
],
"actions": [],
"counts": {
"applied": 0,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": null,
"output": {
"mode": "nothing",
"invoices": 1,
"steps": [],
"skipped": [
"in_D4F157M1PQMOMXU8WUXWPY90: invoice is paid"
]
},
"events": [
{
"at": "2026-10-22T18:56:17.923Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T18:56:18.610Z",
"msg": "agents: invoice-check=ok"
},
{
"at": "2026-10-22T18:56:18.612Z",
"msg": "planned 0 action(s): 0 need approval"
},
{
"at": "2026-10-22T18:56:18.615Z",
"msg": "done (ok)"
},
{
"at": "2026-10-22T18:56:19.195Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-22T18:56:17.923Z",
"updatedAt": "2026-10-22T18:56:19.195Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/first_failure_card_update_notice/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/first_failure_card_update_notice/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Evidence
- Run
vr_243352f82fcf4575922b792da8a81865- App version (declared)
acme-ops-failed-payment-dunn…- Source receipt
- Source receipt ↗
Technical reference
first_failure_card_update_noticeApp version (declared): acme-ops-failed-payment-dunning-1.0.0-4ac41d8
After the first failed collection the customer gets a card-update notice draft and the step is recorded
required observation 'attempt_count' is missing
- Verification covers the declared HTTP actions and state reads in this run.
- The app version shown was supplied by the app itself, not independently checked.
- Passing all checks in this run does not certify the whole app as production-ready.
- The verifier session does not survive a restart. This says nothing about the durability of the app under test.
- App state shown here is what the app's own endpoint reported. It is not independently checked against the database.
Provider traffic in the same time window (3)
These calls were recorded during the same request window as this check but are not directly linked to it. Timing alone is not proof that they caused or were caused by this check.
stripe · GET /v1/invoices/in_D4F157M1PQMOMXU8WUXWPY90 · HTTP 200
We sent
GET /v1/invoices/in_D4F157M1PQMOMXU8WUXWPY90
No body shown for this read.
Server returned
HTTP 200
{
"account_country": null,
"account_name": "Sample Account",
"account_tax_ids": null,
"amount_due": 0,
"amount_overpaid": 0,
"amount_paid": 0,
"amount_remaining": 0,
"amount_shipping": 0,
"application": null,
"attempt_count": 0,
"attempted": false,
"auto_advance": false,
"automatic_tax": {
"enabled": false,
"disabled_reason": null,
"liability": null,
"provider": null,
"status": null
},
"automatically_finalizes_at": null,
"billing_reason": "automatic_pending_invoice_item_invoice",
"collection_method": "charge_automatically",
"confirmation_secret": "[redacted]",
"created": 1792695268,
"currency": "usd",
"custom_fields": null,
"customer": "cus_SW7TNDGMHXLQZGVO",
"customer_account": null,
"customer_address": null,
"customer_email": "[email protected]",
"customer_name": "Sample Customer",
"customer_phone": null,
"customer_shipping": null,
"customer_tax_exempt": "exempt",
"customer_tax_ids": null,
"default_payment_method": null,
"default_source": null,
"default_tax_rates": [],
"description": null,
"discounts": [],
"due_date": null,
"effective_at": null,
"ending_balance": 0,
"footer": null,
"from_invoice": null,
"hosted_invoice_url": null,
"id": "in_D4F157M1PQMOMXU8WUXWPY90",
"invoice_pdf": null,
"issuer": {
"type": "account"
},
"last_finalization_error": null,
"latest_revision": null,
"lines": {
"object": "list",
"data": [],
"has_more": false,
"total_count": 0,
"url": "/v1/invoices/in_D4F157M1PQMOMXU8WUXWPY90/lines"
},
"livemode": false,
"metadata": {},
"next_payment_attempt": null,
"number": "FS-PQMOMXU8WUXWPY90",
"object": "invoice",
"on_behalf_of": null,
"parent": null,
"payment_settings": {
"default_mandate": null,
"payment_method_options": null,
"payment_method_types": null
},
"period_end": 1792695268,
"period_start": 1792695268,
"post_payment_credit_notes_amount": 0,
"pre_payment_credit_notes_amount": 0,
"receipt_number": null,
"rendering": null,
"shipping_cost": null,
"shipping_details": null,
"starting_balance": 0,
"statement_descriptor": null,
"status": "paid",
"status_transitions": {
"finalized_at": 1792695269,
"paid_at": 1792695269,
"voided_at": null,
"marked_uncollectible_at": null
},
"subtotal": 0,
"subtotal_excluding_tax": 0,
"test_clock": null,
"total": 0,
"total_discount_amounts": [],
"total_excluding_tax": 0,
"total_pretax_credit_amounts": [],
"total_taxes": [],
"webhooks_delivered_at": null
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/198897286c/v1/invoices/in_D4F157M1PQMOMXU8WUXWPY90
{
"host": "fetchsandbox.com",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/invoices/in_D4F157M1PQMOMXU8WUXWPY90' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/customers/cus_SW7TNDGMHXLQZGVO · HTTP 200
We sent
GET /v1/customers/cus_SW7TNDGMHXLQZGVO
No body shown for this read.
Server returned
HTTP 200
{
"address": null,
"balance": 0,
"business_name": "Sample Business",
"cash_balance": null,
"created": 9,
"currency": "USD",
"customer_account": null,
"default_source": null,
"delinquent": false,
"description": null,
"discount": null,
"email": "[email protected]",
"id": "cus_SW7TNDGMHXLQZGVO",
"individual_name": "Sample Individual",
"invoice_prefix": null,
"livemode": false,
"name": "Dana Billing",
"object": "customer",
"phone": "+14155550100",
"preferred_locales": null,
"shipping": null,
"tax_exempt": "exempt",
"test_clock": null,
"invoice_settings[default_payment_method]": "pm_card_chargeCustomerFail"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/198897286c/v1/customers/cus_SW7TNDGMHXLQZGVO
{
"host": "fetchsandbox.com",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/customers/cus_SW7TNDGMHXLQZGVO' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/payment_methods · HTTP 200
We sent
GET /v1/payment_methods
No body shown for this read.
Server returned
HTTP 200
{
"data": [],
"has_more": false,
"object": "list",
"url": "/v1/payment_methods"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/198897286c/v1/payment_methods
{
"host": "fetchsandbox.com",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/payment_methods' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
After the second failure the customer's other saved card is tried once, and a reminder goes out if it declines
second_failure_tries_backup_cardWhat we probed
After the second failure the customer's other saved card is tried once, and a reminder goes out if it declines
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocations
Expected vs actual
- Expected
- After the second failure the customer's other saved card is tried once, and a reminder goes out if it declines
- Actual
- required observation 'attempt_count' is missing
Requests and responses
01GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/second_failure_tries_backup_card/runs200
We sent
GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/second_failure_tries_backup_card/runs
This request had no body.
Server returned
HTTP 200
{
"runs": []
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/second_failure_tries_backup_card/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/second_failure_tries_backup_card/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
02POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "second-failure-tries-backup-card-vr_243352f82fcf4575922b792da8a81865",
"input": {
"stage": "payment_failed",
"invoiceId": "in_ZHX7UR385JQFUO0K0GOWK40Y",
"financeChannel": "C0BILLING01",
"approvers": [
"U_CONTROLLER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "second_failure_tries_backup_card"
}
}Server returned
HTTP 200
{
"runId": "second-failure-tries-backup-card-vr_243352f82fcf4575922b792da8a81865",
"workflow": "failed-payment-dunning",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "Finance",
"team": "billing-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "second_failure_tries_backup_card"
},
"duplicateStarts": 0,
"agents": [
{
"name": "invoice-check",
"status": "ok",
"summary": "1 invoice(s), 0 open",
"durationMs": 653
},
{
"name": "dunning-plan",
"status": "ok",
"summary": "0 step(s) due",
"durationMs": 0
}
],
"actions": [],
"counts": {
"applied": 0,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": null,
"output": {
"mode": "nothing",
"invoices": 1,
"steps": [],
"skipped": [
"in_ZHX7UR385JQFUO0K0GOWK40Y: invoice is paid"
]
},
"events": [
{
"at": "2026-10-22T18:56:20.057Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T18:56:20.711Z",
"msg": "agents: invoice-check=ok"
},
{
"at": "2026-10-22T18:56:20.713Z",
"msg": "planned 0 action(s): 0 need approval"
},
{
"at": "2026-10-22T18:56:20.714Z",
"msg": "done (ok)"
}
],
"createdAt": "2026-10-22T18:56:20.057Z",
"updatedAt": "2026-10-22T18:56:20.714Z",
"duplicate": false
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "379",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "second-failure-tries-backup-card-vr_243352f82fcf4575922b792da8a81865",
"input": {
"stage": "payment_failed",
"invoiceId": "in_ZHX7UR385JQFUO0K0GOWK40Y",
"financeChannel": "C0BILLING01",
"approvers": [
"U_CONTROLLER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "second_failure_tries_backup_card"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
03GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/second_failure_tries_backup_card/runs200
We sent
GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/second_failure_tries_backup_card/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "second-failure-tries-backup-card-vr_243352f82fcf4575922b792da8a81865",
"workflow": "failed-payment-dunning",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "Finance",
"team": "billing-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "second_failure_tries_backup_card"
},
"duplicateStarts": 0,
"agents": [
{
"name": "invoice-check",
"status": "ok",
"summary": "1 invoice(s), 0 open",
"durationMs": 653
},
{
"name": "dunning-plan",
"status": "ok",
"summary": "0 step(s) due",
"durationMs": 0
}
],
"actions": [],
"counts": {
"applied": 0,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": null,
"output": {
"mode": "nothing",
"invoices": 1,
"steps": [],
"skipped": [
"in_ZHX7UR385JQFUO0K0GOWK40Y: invoice is paid"
]
},
"events": [
{
"at": "2026-10-22T18:56:20.057Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T18:56:20.711Z",
"msg": "agents: invoice-check=ok"
},
{
"at": "2026-10-22T18:56:20.713Z",
"msg": "planned 0 action(s): 0 need approval"
},
{
"at": "2026-10-22T18:56:20.714Z",
"msg": "done (ok)"
}
],
"createdAt": "2026-10-22T18:56:20.057Z",
"updatedAt": "2026-10-22T18:56:20.714Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/second_failure_tries_backup_card/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/second_failure_tries_backup_card/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
04POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "second-failure-tries-backup-card-vr_243352f82fcf4575922b792da8a81865",
"input": {
"stage": "payment_failed",
"invoiceId": "in_ZHX7UR385JQFUO0K0GOWK40Y",
"financeChannel": "C0BILLING01",
"approvers": [
"U_CONTROLLER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "second_failure_tries_backup_card"
}
}Server returned
HTTP 200
{
"runId": "second-failure-tries-backup-card-vr_243352f82fcf4575922b792da8a81865",
"workflow": "failed-payment-dunning",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "Finance",
"team": "billing-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "second_failure_tries_backup_card"
},
"duplicateStarts": 1,
"agents": [
{
"name": "invoice-check",
"status": "ok",
"summary": "1 invoice(s), 0 open",
"durationMs": 653
},
{
"name": "dunning-plan",
"status": "ok",
"summary": "0 step(s) due",
"durationMs": 0
}
],
"actions": [],
"counts": {
"applied": 0,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": null,
"output": {
"mode": "nothing",
"invoices": 1,
"steps": [],
"skipped": [
"in_ZHX7UR385JQFUO0K0GOWK40Y: invoice is paid"
]
},
"events": [
{
"at": "2026-10-22T18:56:20.057Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T18:56:20.711Z",
"msg": "agents: invoice-check=ok"
},
{
"at": "2026-10-22T18:56:20.713Z",
"msg": "planned 0 action(s): 0 need approval"
},
{
"at": "2026-10-22T18:56:20.714Z",
"msg": "done (ok)"
},
{
"at": "2026-10-22T18:56:21.338Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-22T18:56:20.057Z",
"updatedAt": "2026-10-22T18:56:21.338Z",
"duplicate": true
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "379",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "second-failure-tries-backup-card-vr_243352f82fcf4575922b792da8a81865",
"input": {
"stage": "payment_failed",
"invoiceId": "in_ZHX7UR385JQFUO0K0GOWK40Y",
"financeChannel": "C0BILLING01",
"approvers": [
"U_CONTROLLER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "second_failure_tries_backup_card"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
05GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/second_failure_tries_backup_card/runs200
We sent
GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/second_failure_tries_backup_card/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "second-failure-tries-backup-card-vr_243352f82fcf4575922b792da8a81865",
"workflow": "failed-payment-dunning",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "Finance",
"team": "billing-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "second_failure_tries_backup_card"
},
"duplicateStarts": 1,
"agents": [
{
"name": "invoice-check",
"status": "ok",
"summary": "1 invoice(s), 0 open",
"durationMs": 653
},
{
"name": "dunning-plan",
"status": "ok",
"summary": "0 step(s) due",
"durationMs": 0
}
],
"actions": [],
"counts": {
"applied": 0,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": null,
"output": {
"mode": "nothing",
"invoices": 1,
"steps": [],
"skipped": [
"in_ZHX7UR385JQFUO0K0GOWK40Y: invoice is paid"
]
},
"events": [
{
"at": "2026-10-22T18:56:20.057Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T18:56:20.711Z",
"msg": "agents: invoice-check=ok"
},
{
"at": "2026-10-22T18:56:20.713Z",
"msg": "planned 0 action(s): 0 need approval"
},
{
"at": "2026-10-22T18:56:20.714Z",
"msg": "done (ok)"
},
{
"at": "2026-10-22T18:56:21.338Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-22T18:56:20.057Z",
"updatedAt": "2026-10-22T18:56:21.338Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/second_failure_tries_backup_card/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/second_failure_tries_backup_card/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Evidence
- Run
vr_243352f82fcf4575922b792da8a81865- App version (declared)
acme-ops-failed-payment-dunn…- Source receipt
- Source receipt ↗
Technical reference
second_failure_tries_backup_cardApp version (declared): acme-ops-failed-payment-dunning-1.0.0-4ac41d8
After the second failure the customer's other saved card is tried once, and a reminder goes out if it declines
required observation 'attempt_count' is missing
- Verification covers the declared HTTP actions and state reads in this run.
- The app version shown was supplied by the app itself, not independently checked.
- Passing all checks in this run does not certify the whole app as production-ready.
- The verifier session does not survive a restart. This says nothing about the durability of the app under test.
- App state shown here is what the app's own endpoint reported. It is not independently checked against the database.
Provider traffic in the same time window (3)
These calls were recorded during the same request window as this check but are not directly linked to it. Timing alone is not proof that they caused or were caused by this check.
stripe · GET /v1/invoices/in_ZHX7UR385JQFUO0K0GOWK40Y · HTTP 200
We sent
GET /v1/invoices/in_ZHX7UR385JQFUO0K0GOWK40Y
No body shown for this read.
Server returned
HTTP 200
{
"account_country": null,
"account_name": "Sample Account",
"account_tax_ids": null,
"amount_due": 0,
"amount_overpaid": 0,
"amount_paid": 0,
"amount_remaining": 0,
"amount_shipping": 0,
"application": null,
"attempt_count": 0,
"attempted": false,
"auto_advance": false,
"automatic_tax": {
"enabled": false,
"disabled_reason": null,
"liability": null,
"provider": null,
"status": null
},
"automatically_finalizes_at": null,
"billing_reason": "automatic_pending_invoice_item_invoice",
"collection_method": "charge_automatically",
"confirmation_secret": "[redacted]",
"created": 1792695271,
"currency": "usd",
"custom_fields": null,
"customer": "cus_9EO3QVSB8GE5TK8C",
"customer_account": null,
"customer_address": null,
"customer_email": "[email protected]",
"customer_name": "Sample Customer",
"customer_phone": null,
"customer_shipping": null,
"customer_tax_exempt": "exempt",
"customer_tax_ids": null,
"default_payment_method": null,
"default_source": null,
"default_tax_rates": [],
"description": null,
"discounts": [],
"due_date": null,
"effective_at": null,
"ending_balance": 0,
"footer": null,
"from_invoice": null,
"hosted_invoice_url": null,
"id": "in_ZHX7UR385JQFUO0K0GOWK40Y",
"invoice_pdf": null,
"issuer": {
"type": "account"
},
"last_finalization_error": null,
"latest_revision": null,
"lines": {
"object": "list",
"data": [],
"has_more": false,
"total_count": 0,
"url": "/v1/invoices/in_ZHX7UR385JQFUO0K0GOWK40Y/lines"
},
"livemode": false,
"metadata": {},
"next_payment_attempt": null,
"number": "FS-5JQFUO0K0GOWK40Y",
"object": "invoice",
"on_behalf_of": null,
"parent": null,
"payment_settings": {
"default_mandate": null,
"payment_method_options": null,
"payment_method_types": null
},
"period_end": 1792695271,
"period_start": 1792695271,
"post_payment_credit_notes_amount": 0,
"pre_payment_credit_notes_amount": 0,
"receipt_number": null,
"rendering": null,
"shipping_cost": null,
"shipping_details": null,
"starting_balance": 0,
"statement_descriptor": null,
"status": "paid",
"status_transitions": {
"finalized_at": 1792695271,
"paid_at": 1792695271,
"voided_at": null,
"marked_uncollectible_at": null
},
"subtotal": 0,
"subtotal_excluding_tax": 0,
"test_clock": null,
"total": 0,
"total_discount_amounts": [],
"total_excluding_tax": 0,
"total_pretax_credit_amounts": [],
"total_taxes": [],
"webhooks_delivered_at": null
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/198897286c/v1/invoices/in_ZHX7UR385JQFUO0K0GOWK40Y
{
"host": "fetchsandbox.com",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/invoices/in_ZHX7UR385JQFUO0K0GOWK40Y' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/customers/cus_9EO3QVSB8GE5TK8C · HTTP 200
We sent
GET /v1/customers/cus_9EO3QVSB8GE5TK8C
No body shown for this read.
Server returned
HTTP 200
{
"address": null,
"balance": 0,
"business_name": "Sample Business",
"cash_balance": null,
"created": 72,
"currency": "USD",
"customer_account": null,
"default_source": null,
"delinquent": false,
"description": null,
"discount": null,
"email": "[email protected]",
"id": "cus_9EO3QVSB8GE5TK8C",
"individual_name": "Sample Individual",
"invoice_prefix": null,
"livemode": false,
"name": "Dana Billing",
"object": "customer",
"phone": "+14155550100",
"preferred_locales": null,
"shipping": null,
"tax_exempt": "exempt",
"test_clock": null,
"invoice_settings[default_payment_method]": "pm_card_chargeCustomerFail"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/198897286c/v1/customers/cus_9EO3QVSB8GE5TK8C
{
"host": "fetchsandbox.com",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/customers/cus_9EO3QVSB8GE5TK8C' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/payment_methods · HTTP 200
We sent
GET /v1/payment_methods
No body shown for this read.
Server returned
HTTP 200
{
"data": [],
"has_more": false,
"object": "list",
"url": "/v1/payment_methods"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/198897286c/v1/payment_methods
{
"host": "fetchsandbox.com",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/payment_methods' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
An invoice unpaid for 14 days gets the final notice from the daily sweep
final_notice_after_14_daysWhat we probed
An invoice unpaid for 14 days gets the final notice from the daily sweep
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocations
Expected vs actual
| Check | Expected | Actual | Result |
|---|---|---|---|
| stripe · invoices | 1 | 0 | × Failed |
Counts are derived from saved provider records using declared filters; original verdict unchanged.
Requests and responses
01GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/final_notice_after_14_days/runs200
We sent
GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/final_notice_after_14_days/runs
This request had no body.
Server returned
HTTP 200
{
"runs": []
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/final_notice_after_14_days/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/final_notice_after_14_days/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
02POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "final-notice-after-14-days-vr_243352f82fcf4575922b792da8a81865",
"input": {
"stage": "sweep",
"customers": [
"[email protected]"
],
"financeChannel": "C0BILLING01",
"approvers": [
"U_CONTROLLER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "final_notice_after_14_days"
}
}Server returned
HTTP 200
{
"runId": "final-notice-after-14-days-vr_243352f82fcf4575922b792da8a81865",
"workflow": "failed-payment-dunning",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "Finance",
"team": "billing-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "final_notice_after_14_days"
},
"duplicateStarts": 0,
"agents": [
{
"name": "invoice-check",
"status": "ok",
"summary": "1 invoice(s), 1 open",
"durationMs": 1361
},
{
"name": "dunning-plan",
"status": "ok",
"summary": "1 step(s) due",
"durationMs": 0
}
],
"actions": [
{
"id": "gmail.draft_final_notice:bc023cb3cb",
"kind": "gmail.draft_notice",
"provider": "gmail",
"agent": "dunning-plan",
"gate": "auto",
"status": "applied",
"summary": {
"invoice": "in_JXNXH2QPPEPTV15T8PSPL0PC",
"step": "final_notice",
"sent": false
},
"attempts": 1,
"ref": "r2968987519549496",
"appliedAt": "2026-10-22T18:56:24.330Z",
"reconciled": null
},
{
"id": "stripe.record_step:in_JXNXH2QPPEPTV15T8PSPL0PC",
"kind": "stripe.record_step",
"provider": "stripe",
"agent": "dunning-plan",
"gate": "auto",
"status": "applied",
"summary": {
"invoice": "in_JXNXH2QPPEPTV15T8PSPL0PC",
"step": "final_notice"
},
"attempts": 1,
"ref": "cus_PY3QZKYU9K5GP5IV",
"detail": {
"step": "final_notice"
},
"appliedAt": "2026-10-22T18:56:24.534Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": null,
"output": {
"mode": "dunning",
"invoices": 1,
"steps": [
"in_JXNXH2QPPEPTV15T8PSPL0PC:final_notice"
],
"skipped": []
},
"events": [
{
"at": "2026-10-22T18:56:22.183Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T18:56:23.546Z",
"msg": "agents: invoice-check=ok"
},
{
"at": "2026-10-22T18:56:23.550Z",
"msg": "planned 2 action(s): 0 need approval"
},
{
"at": "2026-10-22T18:56:24.330Z",
"msg": "gmail.draft_final_notice:bc023cb3cb: applied"
},
{
"at": "2026-10-22T18:56:24.534Z",
"msg": "stripe.record_step:in_JXNXH2QPPEPTV15T8PSPL0PC: applied"
},
{
"at": "2026-10-22T18:56:24.535Z",
"msg": "done (ok)"
}
],
"createdAt": "2026-10-22T18:56:22.183Z",
"updatedAt": "2026-10-22T18:56:24.535Z",
"duplicate": false
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "383",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "final-notice-after-14-days-vr_243352f82fcf4575922b792da8a81865",
"input": {
"stage": "sweep",
"customers": [
"[email protected]"
],
"financeChannel": "C0BILLING01",
"approvers": [
"U_CONTROLLER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "final_notice_after_14_days"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
03GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/final_notice_after_14_days/runs200
We sent
GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/final_notice_after_14_days/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "final-notice-after-14-days-vr_243352f82fcf4575922b792da8a81865",
"workflow": "failed-payment-dunning",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "Finance",
"team": "billing-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "final_notice_after_14_days"
},
"duplicateStarts": 0,
"agents": [
{
"name": "invoice-check",
"status": "ok",
"summary": "1 invoice(s), 1 open",
"durationMs": 1361
},
{
"name": "dunning-plan",
"status": "ok",
"summary": "1 step(s) due",
"durationMs": 0
}
],
"actions": [
{
"id": "gmail.draft_final_notice:bc023cb3cb",
"kind": "gmail.draft_notice",
"provider": "gmail",
"agent": "dunning-plan",
"gate": "auto",
"status": "applied",
"summary": {
"invoice": "in_JXNXH2QPPEPTV15T8PSPL0PC",
"step": "final_notice",
"sent": false
},
"attempts": 1,
"ref": "r2968987519549496",
"appliedAt": "2026-10-22T18:56:24.330Z",
"reconciled": null
},
{
"id": "stripe.record_step:in_JXNXH2QPPEPTV15T8PSPL0PC",
"kind": "stripe.record_step",
"provider": "stripe",
"agent": "dunning-plan",
"gate": "auto",
"status": "applied",
"summary": {
"invoice": "in_JXNXH2QPPEPTV15T8PSPL0PC",
"step": "final_notice"
},
"attempts": 1,
"ref": "cus_PY3QZKYU9K5GP5IV",
"detail": {
"step": "final_notice"
},
"appliedAt": "2026-10-22T18:56:24.534Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": null,
"output": {
"mode": "dunning",
"invoices": 1,
"steps": [
"in_JXNXH2QPPEPTV15T8PSPL0PC:final_notice"
],
"skipped": []
},
"events": [
{
"at": "2026-10-22T18:56:22.183Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T18:56:23.546Z",
"msg": "agents: invoice-check=ok"
},
{
"at": "2026-10-22T18:56:23.550Z",
"msg": "planned 2 action(s): 0 need approval"
},
{
"at": "2026-10-22T18:56:24.330Z",
"msg": "gmail.draft_final_notice:bc023cb3cb: applied"
},
{
"at": "2026-10-22T18:56:24.534Z",
"msg": "stripe.record_step:in_JXNXH2QPPEPTV15T8PSPL0PC: applied"
},
{
"at": "2026-10-22T18:56:24.535Z",
"msg": "done (ok)"
}
],
"createdAt": "2026-10-22T18:56:22.183Z",
"updatedAt": "2026-10-22T18:56:24.535Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/final_notice_after_14_days/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/final_notice_after_14_days/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
04POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "final-notice-after-14-days-vr_243352f82fcf4575922b792da8a81865",
"input": {
"stage": "sweep",
"customers": [
"[email protected]"
],
"financeChannel": "C0BILLING01",
"approvers": [
"U_CONTROLLER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "final_notice_after_14_days"
}
}Server returned
HTTP 200
{
"runId": "final-notice-after-14-days-vr_243352f82fcf4575922b792da8a81865",
"workflow": "failed-payment-dunning",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "Finance",
"team": "billing-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "final_notice_after_14_days"
},
"duplicateStarts": 1,
"agents": [
{
"name": "invoice-check",
"status": "ok",
"summary": "1 invoice(s), 1 open",
"durationMs": 1361
},
{
"name": "dunning-plan",
"status": "ok",
"summary": "1 step(s) due",
"durationMs": 0
}
],
"actions": [
{
"id": "gmail.draft_final_notice:bc023cb3cb",
"kind": "gmail.draft_notice",
"provider": "gmail",
"agent": "dunning-plan",
"gate": "auto",
"status": "applied",
"summary": {
"invoice": "in_JXNXH2QPPEPTV15T8PSPL0PC",
"step": "final_notice",
"sent": false
},
"attempts": 1,
"ref": "r2968987519549496",
"appliedAt": "2026-10-22T18:56:24.330Z",
"reconciled": null
},
{
"id": "stripe.record_step:in_JXNXH2QPPEPTV15T8PSPL0PC",
"kind": "stripe.record_step",
"provider": "stripe",
"agent": "dunning-plan",
"gate": "auto",
"status": "applied",
"summary": {
"invoice": "in_JXNXH2QPPEPTV15T8PSPL0PC",
"step": "final_notice"
},
"attempts": 1,
"ref": "cus_PY3QZKYU9K5GP5IV",
"detail": {
"step": "final_notice"
},
"appliedAt": "2026-10-22T18:56:24.534Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": null,
"output": {
"mode": "dunning",
"invoices": 1,
"steps": [
"in_JXNXH2QPPEPTV15T8PSPL0PC:final_notice"
],
"skipped": []
},
"events": [
{
"at": "2026-10-22T18:56:22.183Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T18:56:23.546Z",
"msg": "agents: invoice-check=ok"
},
{
"at": "2026-10-22T18:56:23.550Z",
"msg": "planned 2 action(s): 0 need approval"
},
{
"at": "2026-10-22T18:56:24.330Z",
"msg": "gmail.draft_final_notice:bc023cb3cb: applied"
},
{
"at": "2026-10-22T18:56:24.534Z",
"msg": "stripe.record_step:in_JXNXH2QPPEPTV15T8PSPL0PC: applied"
},
{
"at": "2026-10-22T18:56:24.535Z",
"msg": "done (ok)"
},
{
"at": "2026-10-22T18:56:25.168Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-22T18:56:22.183Z",
"updatedAt": "2026-10-22T18:56:25.168Z",
"duplicate": true
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "383",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "final-notice-after-14-days-vr_243352f82fcf4575922b792da8a81865",
"input": {
"stage": "sweep",
"customers": [
"[email protected]"
],
"financeChannel": "C0BILLING01",
"approvers": [
"U_CONTROLLER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "final_notice_after_14_days"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
05GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/final_notice_after_14_days/runs200
We sent
GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/final_notice_after_14_days/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "final-notice-after-14-days-vr_243352f82fcf4575922b792da8a81865",
"workflow": "failed-payment-dunning",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "Finance",
"team": "billing-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "final_notice_after_14_days"
},
"duplicateStarts": 1,
"agents": [
{
"name": "invoice-check",
"status": "ok",
"summary": "1 invoice(s), 1 open",
"durationMs": 1361
},
{
"name": "dunning-plan",
"status": "ok",
"summary": "1 step(s) due",
"durationMs": 0
}
],
"actions": [
{
"id": "gmail.draft_final_notice:bc023cb3cb",
"kind": "gmail.draft_notice",
"provider": "gmail",
"agent": "dunning-plan",
"gate": "auto",
"status": "applied",
"summary": {
"invoice": "in_JXNXH2QPPEPTV15T8PSPL0PC",
"step": "final_notice",
"sent": false
},
"attempts": 1,
"ref": "r2968987519549496",
"appliedAt": "2026-10-22T18:56:24.330Z",
"reconciled": null
},
{
"id": "stripe.record_step:in_JXNXH2QPPEPTV15T8PSPL0PC",
"kind": "stripe.record_step",
"provider": "stripe",
"agent": "dunning-plan",
"gate": "auto",
"status": "applied",
"summary": {
"invoice": "in_JXNXH2QPPEPTV15T8PSPL0PC",
"step": "final_notice"
},
"attempts": 1,
"ref": "cus_PY3QZKYU9K5GP5IV",
"detail": {
"step": "final_notice"
},
"appliedAt": "2026-10-22T18:56:24.534Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": null,
"output": {
"mode": "dunning",
"invoices": 1,
"steps": [
"in_JXNXH2QPPEPTV15T8PSPL0PC:final_notice"
],
"skipped": []
},
"events": [
{
"at": "2026-10-22T18:56:22.183Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T18:56:23.546Z",
"msg": "agents: invoice-check=ok"
},
{
"at": "2026-10-22T18:56:23.550Z",
"msg": "planned 2 action(s): 0 need approval"
},
{
"at": "2026-10-22T18:56:24.330Z",
"msg": "gmail.draft_final_notice:bc023cb3cb: applied"
},
{
"at": "2026-10-22T18:56:24.534Z",
"msg": "stripe.record_step:in_JXNXH2QPPEPTV15T8PSPL0PC: applied"
},
{
"at": "2026-10-22T18:56:24.535Z",
"msg": "done (ok)"
},
{
"at": "2026-10-22T18:56:25.168Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-22T18:56:22.183Z",
"updatedAt": "2026-10-22T18:56:25.168Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/final_notice_after_14_days/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/final_notice_after_14_days/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Evidence
- Run
vr_243352f82fcf4575922b792da8a81865- App version (declared)
acme-ops-failed-payment-dunn…- Source receipt
- Source receipt ↗
Technical reference
final_notice_after_14_daysApp version (declared): acme-ops-failed-payment-dunning-1.0.0-4ac41d8
An invoice unpaid for 14 days gets the final notice from the daily sweep
Provider-state assertion failed: expected exactly 1, found 0
- Verification covers the declared HTTP actions and state reads in this run.
- The app version shown was supplied by the app itself, not independently checked.
- Passing all checks in this run does not certify the whole app as production-ready.
- The verifier session does not survive a restart. This says nothing about the durability of the app under test.
- App state shown here is what the app's own endpoint reported. It is not independently checked against the database.
Provider traffic in the same time window (8)
These calls were recorded during the same request window as this check but are not directly linked to it. Timing alone is not proof that they caused or were caused by this check.
stripe · GET /v1/customers · HTTP 200
We sent
GET /v1/customers
No body shown for this read.
Server returned
HTTP 200
{
"data": [
{
"email": "[email protected]",
"name": "Dana Billing",
"id": "cus_PY3QZKYU9K5GP5IV",
"address": null,
"balance": 0,
"business_name": "Sample Business",
"cash_balance": null,
"created": 22,
"currency": "USD",
"customer_account": null,
"default_source": null,
"delinquent": false,
"description": null,
"discount": null,
"individual_name": "Sample Individual",
"invoice_prefix": null,
"livemode": false,
"object": "customer",
"phone": "+14155550100",
"preferred_locales": null,
"shipping": null,
"tax_exempt": "exempt",
"test_clock": null
}
],
"has_more": false,
"object": "list",
"url": "/v1/customers"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/198897286c/v1/customers
{
"host": "fetchsandbox.com",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/customers' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/invoices · HTTP 200
We sent
GET /v1/invoices
No body shown for this read.
Server returned
HTTP 200
{
"data": [
{
"object": "invoice",
"parent": {
"type": "subscription_details",
"subscription_details": {
"subscription": "sub_LK0DD4WSL5PPIO67G5OL557M",
"metadata": {}
}
},
"customer": "cus_PY3QZKYU9K5GP5IV",
"currency": "usd",
"total": 60000,
"amount_due": 60000,
"amount_paid": 0,
"amount_remaining": 60000,
"status": "open",
"created": 1792695272,
"id": "in_JXNXH2QPPEPTV15T8PSPL0PC",
"payments": {
"object": "list",
"data": [
{
"id": "inpay_VTFX6UJHPTRWYODC8ULB56L8",
"object": "invoice_payment",
"invoice": "in_JXNXH2QPPEPTV15T8PSPL0PC",
"amount_requested": 60000,
"amount_paid": null,
"currency": "usd",
"created": 1792695272,
"is_default": true,
"livemode": false,
"status": "open",
"status_transitions": {
"paid_at": null,
"canceled_at": null
},
"payment": {
"type": "payment_intent",
"payment_intent": "pi_EA02JFR4LFDQDFI521PQ0892"
}
}
],
"has_more": false,
"url": "/v1/invoice_payments?invoice=in_JXNXH2QPPEPTV15T8PSPL0PC"
},
"amount_overpaid": 89,
"amount_shipping": 77,
"attempt_count": 13,
"attempted": true,
"auto_advance": true,
"automatic_tax": {
"disabled_reason": "finalization_requires_location_inputs",
"enabled": true,
"provider": "default",
"status": "complete"
},
"collection_method": "charge_automatically",
"default_tax_rates": [
{
"active": true,
"country": "US",
"created": 29,
"display_name": "Item 826",
"id": "obj_86d22bb25f5d43a187f18687fd",
"inclusive": true,
"jurisdiction_level": "city",
"livemode": false,
"object": "tax_rate",
"percentage": 244.4925,
"rate_type": "flat_amount",
"tax_type": "amusement_tax"
}
],
"discounts": [
"sample-value"
],
"issuer": {
"type": "account"
},
"lines": {
"data": [
{
"amount": 29,
"currency": "USD",
"discountable": true,
"discounts": [
"sample-value"
],
"id": "obj_ae02fdd7b2f24bcb869d8807e1",
"livemode": false,
"metadata": {},
"object": "line_item",
"period": {
"end": 39,
"start": 57
},
"subtotal": 47
}
],
"has_more": true,
"object": "list",
"url": "https://example.com/8e37d143"
},
"livemode": true,
"payment_settings": {
"default_mandate": "sample-value",
"payment_method_options": {
"acss_debit": {
"mandate_options": {
"transaction_type": "business"
},
"verification_method": "automatic"
},
"bancontact": {
"preferred_language": "de"
},
"card": {
"installments": {
"enabled": true
},
"request_three_d_secure": "any"
},
"customer_balance": {
"bank_transfer": {
"eu_bank_transfer": {
"country": "US"
},
"type": "default"
},
"funding_type": "bank_transfer"
},
"konbini": {},
"payto": {
"mandate_options": {
"amount": 52,
"amount_type": "fixed",
"purpose": "dependant_support"
}
},
"sepa_debit": {},
"us_bank_account": {
"financial_connections": {
"filters": {
"account_subcategories": [
"checking"
]
},
"permissions": [
"balances"
],
"prefetch": [
"balances"
]
},
"verification_method": "automatic"
}
},
"payment_method_types": [
"ach_credit_transfer"
]
},
"period_end": 26,
"period_start": 65,
"post_payment_credit_notes_amount": 13,
"pre_payment_credit_notes_amount": 71,
"starting_balance": 44,
"status_transitions": {
"finalized_at": 2,
"marked_uncollectible_at": 85,
"paid_at": 92,
"voided_at": 35
},
"subtotal": 59,
"account_country": null,
"account_name": null,
"account_tax_ids": null,
"application": null,
"automatically_finalizes_at": null,
"billing_reason": null,
"confirmation_secret": "[redacted]",
"custom_fields": null,
"customer_account": null,
"customer_address": null,
"customer_email": null,
"customer_name": null,
"customer_phone": null,
"customer_shipping": null,
"customer_tax_exempt": null,
"customer_tax_ids": null,
"default_payment_method": null,
"default_source": null,
"description": null,
"due_date": null,
"effective_at": null,
"ending_balance": null,
"footer": null,
"from_invoice": null,
"hosted_invoice_url": null,
"invoice_pdf": null,
"last_finalization_error": null,
"latest_revision": null,
"metadata": null,
"next_payment_attempt": null,
"number": null,
"on_behalf_of": null,
"receipt_number": null,
"rendering": null,
"shipping_cost": null,
"shipping_details": null,
"statement_descriptor": null,
"subtotal_excluding_tax": null,
"test_clock": null,
"total_discount_amounts": null,
"total_excluding_tax": null,
"total_pretax_credit_amounts": null,
"total_taxes": null,
"webhooks_delivered_at": null
}
],
"has_more": false,
"object": "list",
"url": "/v1/invoices"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/198897286c/v1/invoices
{
"host": "fetchsandbox.com",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/invoices' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/customers/cus_PY3QZKYU9K5GP5IV · HTTP 200
We sent
GET /v1/customers/cus_PY3QZKYU9K5GP5IV
No body shown for this read.
Server returned
HTTP 200
{
"address": null,
"balance": 0,
"business_name": "Sample Business",
"cash_balance": null,
"created": 22,
"currency": "USD",
"customer_account": null,
"default_source": null,
"delinquent": false,
"description": null,
"discount": null,
"email": "[email protected]",
"id": "cus_PY3QZKYU9K5GP5IV",
"individual_name": "Sample Individual",
"invoice_prefix": null,
"livemode": false,
"name": "Dana Billing",
"object": "customer",
"phone": "+14155550100",
"preferred_locales": null,
"shipping": null,
"tax_exempt": "exempt",
"test_clock": null,
"invoice_settings[default_payment_method]": "pm_card_chargeCustomerFail"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/198897286c/v1/customers/cus_PY3QZKYU9K5GP5IV
{
"host": "fetchsandbox.com",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/customers/cus_PY3QZKYU9K5GP5IV' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/payment_methods · HTTP 200
We sent
GET /v1/payment_methods
No body shown for this read.
Server returned
HTTP 200
{
"data": [],
"has_more": false,
"object": "list",
"url": "/v1/payment_methods"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/198897286c/v1/payment_methods
{
"host": "fetchsandbox.com",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/payment_methods' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/invoices/in_JXNXH2QPPEPTV15T8PSPL0PC · HTTP 200
We sent
GET /v1/invoices/in_JXNXH2QPPEPTV15T8PSPL0PC
No body shown for this read.
Server returned
HTTP 200
{
"account_country": null,
"account_name": "Sample Account",
"account_tax_ids": null,
"amount_due": 60000,
"amount_overpaid": 72,
"amount_paid": 0,
"amount_remaining": 60000,
"amount_shipping": 14,
"application": null,
"attempt_count": 0,
"attempted": true,
"auto_advance": true,
"automatic_tax": {
"disabled_reason": "finalization_requires_location_inputs",
"enabled": true,
"liability": null,
"provider": "default",
"status": "complete"
},
"automatically_finalizes_at": null,
"billing_reason": "automatic_pending_invoice_item_invoice",
"collection_method": "charge_automatically",
"confirmation_secret": "[redacted]",
"created": 1792695272,
"currency": "usd",
"custom_fields": null,
"customer": "cus_PY3QZKYU9K5GP5IV",
"customer_account": null,
"customer_address": null,
"customer_email": null,
"customer_name": "Sample Customer",
"customer_phone": null,
"customer_shipping": null,
"customer_tax_exempt": "exempt",
"customer_tax_ids": null,
"default_payment_method": null,
"default_source": null,
"default_tax_rates": [
{
"active": true,
"country": "US",
"created": 89,
"description": null,
"display_name": "Item 650",
"effective_percentage": null,
"flat_amount": null,
"id": "obj_d55b326df86b4126931910d408",
"inclusive": true,
"jurisdiction": null,
"jurisdiction_level": "city",
"livemode": false,
"metadata": null,
"object": "tax_rate",
"percentage": 632.5663,
"rate_type": "flat_amount",
"state": null,
"tax_type": "amusement_tax"
}
],
"description": null,
"discounts": [
"sample-value"
],
"due_date": null,
"effective_at": null,
"ending_balance": null,
"footer": null,
"from_invoice": null,
"hosted_invoice_url": "https://example.com/71e8c1c3",
"id": "in_JXNXH2QPPEPTV15T8PSPL0PC",
"invoice_pdf": null,
"issuer": {
"type": "account"
},
"last_finalization_error": null,
"latest_revision": null,
"lines": {
"data": [
{
"amount": 55,
"currency": "USD",
"description": null,
"discount_amounts": null,
"discountable": true,
"discounts": [
"sample-value"
],
"id": "obj_40143cc8cdcf4e158263c4c30c",
"invoice": null,
"livemode": false,
"metadata": {},
"object": "line_item",
"parent": null,
"period": {
"end": 96,
"start": 87
},
"pretax_credit_amounts": null,
"pricing": null,
"quantity": null,
"subscription": null,
"subtotal": 85,
"taxes": null
}
],
"has_more": true,
"object": "list",
"url": "https://example.com/04b26012"
},
"livemode": false,
"metadata": null,
"next_payment_attempt": null,
"number": null,
"object": "invoice",
"on_behalf_of": null,
"parent": {
"type": "subscription_details",
"subscription_details": {
"subscription": "sub_LK0DD4WSL5PPIO67G5OL557M",
"metadata": {}
}
},
"payment_settings": {
"default_mandate": "sample-value",
"payment_method_options": {
"acss_debit": {
"mandate_options": "sample-value",
"verification_method": "automatic"
},
"bancontact": {
"preferred_language": "de"
},
"card": {
"installments": "sample-value",
"request_three_d_secure": "any"
},
"customer_balance": {
"bank_transfer": "sample-value",
"funding_type": "bank_transfer"
},
"konbini": {},
"payto": {
"mandate_options": "sample-value"
},
"sepa_debit": {},
"us_bank_account": {
"financial_connections": "sample-value",
"verification_method": "automatic"
}
},
"payment_method_types": [
"ach_credit_transfer"
]
},
"period_end": 29,
"period_start": 60,
"post_payment_credit_notes_amount": 99,
"pre_payment_credit_notes_amount": 90,
"receipt_number": null,
"rendering": null,
"shipping_cost": null,
"shipping_details": null,
"starting_balance": 5,
"statement_descriptor": null,
"status": "open",
"status_transitions": {
"finalized_at": 64,
"marked_uncollectible_at": 24,
"paid_at": 21,
"voided_at": 90
},
"subtotal": 3,
"subtotal_excluding_tax": null,
"test_clock": null,
"total": 60000,
"total_discount_amounts": null,
"total_excluding_tax": null,
"total_pretax_credit_amounts": null,
"total_taxes": null,
"webhooks_delivered_at": null,
"payments": {
"object": "list",
"data": [
{
"id": "inpay_VTFX6UJHPTRWYODC8ULB56L8",
"object": "invoice_payment",
"invoice": "in_JXNXH2QPPEPTV15T8PSPL0PC",
"amount_requested": 60000,
"amount_paid": null,
"currency": "usd",
"created": 1792695272,
"is_default": true,
"livemode": false,
"status": "open",
"status_transitions": {
"paid_at": null,
"canceled_at": null
},
"payment": {
"type": "payment_intent",
"payment_intent": "pi_EA02JFR4LFDQDFI521PQ0892"
}
}
],
"has_more": false,
"url": "/v1/invoice_payments?invoice=in_JXNXH2QPPEPTV15T8PSPL0PC"
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/198897286c/v1/invoices/in_JXNXH2QPPEPTV15T8PSPL0PC
{
"host": "fetchsandbox.com",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/invoices/in_JXNXH2QPPEPTV15T8PSPL0PC' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/customers/cus_PY3QZKYU9K5GP5IV · HTTP 200
We sent
GET /v1/customers/cus_PY3QZKYU9K5GP5IV
No body shown for this read.
Server returned
HTTP 200
{
"address": null,
"balance": 0,
"business_name": "Sample Business",
"cash_balance": null,
"created": 22,
"currency": "USD",
"customer_account": null,
"default_source": null,
"delinquent": false,
"description": null,
"discount": null,
"email": "[email protected]",
"id": "cus_PY3QZKYU9K5GP5IV",
"individual_name": "Sample Individual",
"invoice_prefix": null,
"livemode": false,
"name": "Dana Billing",
"object": "customer",
"phone": "+14155550100",
"preferred_locales": null,
"shipping": null,
"tax_exempt": "exempt",
"test_clock": null,
"invoice_settings[default_payment_method]": "pm_card_chargeCustomerFail"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/198897286c/v1/customers/cus_PY3QZKYU9K5GP5IV
{
"host": "fetchsandbox.com",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/customers/cus_PY3QZKYU9K5GP5IV' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
gmail · POST /gmail/v1/users/me/drafts · HTTP 200
We sent
POST /gmail/v1/users/me/drafts
{
"message": {
"raw": "RnJvbTogbWUNClRvOiBkdW4tZmluYWwtbm90aWNlLWFmdGVyLTE0LWRheXNAYmlsbGluZy5leGFtcGxlLmNvbQ0KU3ViamVjdDogRmluYWwgbm90aWNlOiAkNjAwLjAwIG92ZXJkdWUNCk1lc3NhZ2UtSUQ6IDw0YzU3NzVhMmUwYzQyMjg5LmR1bm5pbmctZmluYWxfbm90aWNlLWJjMDIzY2IzY2JAb3BzLmFjbWUuZXhhbXBsZT4NCk1JTUUtVmVyc2lvbjogMS4wDQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04Ig0KQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdA0KDQpIZWxsbywKCkludm9pY2UgaW5fSlhOWEgyUVBQRVBUVjE1VDhQU1BMMFBDIGZvciAkNjAwLjAwIGlzIG92ZXJkdWUuIElmIGl0IHN0YXlzIHVucGFpZCwgeW91ciBzdWJzY3JpcHRpb24gd2lsbCBiZSBjYW5jZWxsZWQgYWZ0ZXIgYSByZXZpZXcgYnkgb3VyIGJpbGxpbmcgdGVhbS4KCkFDTUUgQmlsbGluZw"
}
}Server returned
HTTP 200
{
"message": {
"raw": "RnJvbTogbWUNClRvOiBkdW4tZmluYWwtbm90aWNlLWFmdGVyLTE0LWRheXNAYmlsbGluZy5leGFtcGxlLmNvbQ0KU3ViamVjdDogRmluYWwgbm90aWNlOiAkNjAwLjAwIG92ZXJkdWUNCk1lc3NhZ2UtSUQ6IDw0YzU3NzVhMmUwYzQyMjg5LmR1bm5pbmctZmluYWxfbm90aWNlLWJjMDIzY2IzY2JAb3BzLmFjbWUuZXhhbXBsZT4NCk1JTUUtVmVyc2lvbjogMS4wDQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04Ig0KQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdA0KDQpIZWxsbywKCkludm9pY2UgaW5fSlhOWEgyUVBQRVBUVjE1VDhQU1BMMFBDIGZvciAkNjAwLjAwIGlzIG92ZXJkdWUuIElmIGl0IHN0YXlzIHVucGFpZCwgeW91ciBzdWJzY3JpcHRpb24gd2lsbCBiZSBjYW5jZWxsZWQgYWZ0ZXIgYSByZXZpZXcgYnkgb3VyIGJpbGxpbmcgdGVhbS4KCkFDTUUgQmlsbGluZw",
"payload": {
"mimeType": "text/plain",
"headers": [
{
"name": "From",
"value": "me"
},
{
"name": "To",
"value": "[email protected]"
},
{
"name": "Subject",
"value": "Final notice: $600.00 overdue"
},
{
"name": "Message-ID",
"value": "<4c5775a2e0c42289.dunning-final_notice-bc023cb3cb@ops.acme.example>"
},
{
"name": "MIME-Version",
"value": "1.0"
},
{
"name": "Content-Type",
"value": "text/plain; charset=\"UTF-8\""
},
{
"name": "Content-Transfer-Encoding",
"value": "8bit"
}
],
"body": {
"size": 173,
"data": "SGVsbG8sCgpJbnZvaWNlIGluX0pYTlhIMlFQUEVQVFYxNVQ4UFNQTDBQQyBmb3IgJDYwMC4wMCBpcyBvdmVyZHVlLiBJZiBpdCBzdGF5cyB1bnBhaWQsIHlvdXIgc3Vic2NyaXB0aW9uIHdpbGwgYmUgY2FuY2VsbGVkIGFmdGVyIGEgcmV2aWV3IGJ5IG91ciBiaWxsaW5nIHRlYW0uCgpBQ01FIEJpbGxpbmc"
}
},
"sizeEstimate": 457,
"labelIds": [
"DRAFT"
],
"id": "7156cf22ddda4a90"
},
"user_id": "me",
"id": "r2968987519549496"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/caf533faa2/gmail/v1/users/me/drafts
{
"host": "fetchsandbox.com",
"content-length": "632",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"content-type": "application/json; charset=utf-8"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/caf533faa2/gmail/v1/users/me/drafts' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \
--header 'content-type: application/json; charset=utf-8' \
--data-raw '{
"message": {
"raw": "RnJvbTogbWUNClRvOiBkdW4tZmluYWwtbm90aWNlLWFmdGVyLTE0LWRheXNAYmlsbGluZy5leGFtcGxlLmNvbQ0KU3ViamVjdDogRmluYWwgbm90aWNlOiAkNjAwLjAwIG92ZXJkdWUNCk1lc3NhZ2UtSUQ6IDw0YzU3NzVhMmUwYzQyMjg5LmR1bm5pbmctZmluYWxfbm90aWNlLWJjMDIzY2IzY2JAb3BzLmFjbWUuZXhhbXBsZT4NCk1JTUUtVmVyc2lvbjogMS4wDQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04Ig0KQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdA0KDQpIZWxsbywKCkludm9pY2UgaW5fSlhOWEgyUVBQRVBUVjE1VDhQU1BMMFBDIGZvciAkNjAwLjAwIGlzIG92ZXJkdWUuIElmIGl0IHN0YXlzIHVucGFpZCwgeW91ciBzdWJzY3JpcHRpb24gd2lsbCBiZSBjYW5jZWxsZWQgYWZ0ZXIgYSByZXZpZXcgYnkgb3VyIGJpbGxpbmcgdGVhbS4KCkFDTUUgQmlsbGluZw"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · POST /v1/customers/cus_PY3QZKYU9K5GP5IV · HTTP 200
We sent
POST /v1/customers/cus_PY3QZKYU9K5GP5IV
{
"metadata": {
"acme_dunning_in_JXNXH2QPPEPTV15T8PSPL0PC": "final_notice"
}
}Server returned
HTTP 200
{
"email": "[email protected]",
"name": "Dana Billing",
"id": "cus_PY3QZKYU9K5GP5IV",
"address": null,
"balance": 0,
"business_name": "Sample Business",
"cash_balance": null,
"created": 22,
"currency": "USD",
"customer_account": null,
"default_source": null,
"delinquent": false,
"description": null,
"discount": null,
"individual_name": "Sample Individual",
"invoice_prefix": null,
"livemode": false,
"object": "customer",
"phone": "+14155550100",
"preferred_locales": null,
"shipping": null,
"tax_exempt": "exempt",
"test_clock": null,
"invoice_settings[default_payment_method]": "pm_card_chargeCustomerFail",
"metadata": {
"acme_dunning_in_JXNXH2QPPEPTV15T8PSPL0PC": "final_notice"
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/198897286c/v1/customers/cus_PY3QZKYU9K5GP5IV
{
"host": "fetchsandbox.com",
"content-length": "67",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"content-type": "application/x-www-form-urlencoded"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/198897286c/v1/customers/cus_PY3QZKYU9K5GP5IV' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \
--header 'content-type: application/x-www-form-urlencoded' \
--data-raw '{
"metadata": {
"acme_dunning_in_JXNXH2QPPEPTV15T8PSPL0PC": "final_notice"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
After 21 days the sweep proposes cancelling the subscription, and it waits for the controller
cancellation_needs_approvalWhat we probed
After 21 days the sweep proposes cancelling the subscription, and it waits for the controller
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocations
Expected vs actual
| Check | Expected | Actual | Result |
|---|---|---|---|
| stripe · invoices | 1 | 0 | × Failed |
Counts are derived from saved provider records using declared filters; original verdict unchanged.
Requests and responses
01GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/cancellation_needs_approval/runs200
We sent
GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/cancellation_needs_approval/runs
This request had no body.
Server returned
HTTP 200
{
"runs": []
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/cancellation_needs_approval/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/cancellation_needs_approval/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
02POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "cancellation-needs-approval-vr_243352f82fcf4575922b792da8a81865",
"input": {
"stage": "sweep",
"customers": [
"[email protected]"
],
"financeChannel": "C0BILLING01",
"approvers": [
"U_CONTROLLER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "cancellation_needs_approval"
}
}Server returned
HTTP 200
{
"runId": "cancellation-needs-approval-vr_243352f82fcf4575922b792da8a81865",
"workflow": "failed-payment-dunning",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "Finance",
"team": "billing-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "cancellation_needs_approval"
},
"duplicateStarts": 0,
"agents": [
{
"name": "invoice-check",
"status": "ok",
"summary": "1 invoice(s), 1 open",
"durationMs": 896
},
{
"name": "dunning-plan",
"status": "ok",
"summary": "1 step(s) due",
"durationMs": 0
}
],
"actions": [
{
"id": "gmail.draft_final_notice:aa550e3a1a",
"kind": "gmail.draft_notice",
"provider": "gmail",
"agent": "dunning-plan",
"gate": "auto",
"status": "applied",
"summary": {
"invoice": "in_HZV2FOX5SENPYNC7RR3C0IYH",
"step": "final_notice",
"sent": false
},
"attempts": 1,
"ref": "r4703700278633427",
"appliedAt": "2026-10-22T18:56:28.115Z",
"reconciled": null
},
{
"id": "stripe.record_step:in_HZV2FOX5SENPYNC7RR3C0IYH",
"kind": "stripe.record_step",
"provider": "stripe",
"agent": "dunning-plan",
"gate": "auto",
"status": "applied",
"summary": {
"invoice": "in_HZV2FOX5SENPYNC7RR3C0IYH",
"step": "final_notice"
},
"attempts": 1,
"ref": "cus_WFOTIBWGPNDNHNRP",
"detail": {
"step": "final_notice"
},
"appliedAt": "2026-10-22T18:56:28.315Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": null,
"output": {
"mode": "dunning",
"invoices": 1,
"steps": [
"in_HZV2FOX5SENPYNC7RR3C0IYH:final_notice"
],
"skipped": []
},
"events": [
{
"at": "2026-10-22T18:56:26.004Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T18:56:26.902Z",
"msg": "agents: invoice-check=ok"
},
{
"at": "2026-10-22T18:56:26.904Z",
"msg": "planned 2 action(s): 0 need approval"
},
{
"at": "2026-10-22T18:56:28.115Z",
"msg": "gmail.draft_final_notice:aa550e3a1a: applied"
},
{
"at": "2026-10-22T18:56:28.315Z",
"msg": "stripe.record_step:in_HZV2FOX5SENPYNC7RR3C0IYH: applied"
},
{
"at": "2026-10-22T18:56:28.316Z",
"msg": "done (ok)"
}
],
"createdAt": "2026-10-22T18:56:26.004Z",
"updatedAt": "2026-10-22T18:56:28.316Z",
"duplicate": false
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "386",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "cancellation-needs-approval-vr_243352f82fcf4575922b792da8a81865",
"input": {
"stage": "sweep",
"customers": [
"[email protected]"
],
"financeChannel": "C0BILLING01",
"approvers": [
"U_CONTROLLER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "cancellation_needs_approval"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
03GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/cancellation_needs_approval/runs200
We sent
GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/cancellation_needs_approval/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "cancellation-needs-approval-vr_243352f82fcf4575922b792da8a81865",
"workflow": "failed-payment-dunning",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "Finance",
"team": "billing-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "cancellation_needs_approval"
},
"duplicateStarts": 0,
"agents": [
{
"name": "invoice-check",
"status": "ok",
"summary": "1 invoice(s), 1 open",
"durationMs": 896
},
{
"name": "dunning-plan",
"status": "ok",
"summary": "1 step(s) due",
"durationMs": 0
}
],
"actions": [
{
"id": "gmail.draft_final_notice:aa550e3a1a",
"kind": "gmail.draft_notice",
"provider": "gmail",
"agent": "dunning-plan",
"gate": "auto",
"status": "applied",
"summary": {
"invoice": "in_HZV2FOX5SENPYNC7RR3C0IYH",
"step": "final_notice",
"sent": false
},
"attempts": 1,
"ref": "r4703700278633427",
"appliedAt": "2026-10-22T18:56:28.115Z",
"reconciled": null
},
{
"id": "stripe.record_step:in_HZV2FOX5SENPYNC7RR3C0IYH",
"kind": "stripe.record_step",
"provider": "stripe",
"agent": "dunning-plan",
"gate": "auto",
"status": "applied",
"summary": {
"invoice": "in_HZV2FOX5SENPYNC7RR3C0IYH",
"step": "final_notice"
},
"attempts": 1,
"ref": "cus_WFOTIBWGPNDNHNRP",
"detail": {
"step": "final_notice"
},
"appliedAt": "2026-10-22T18:56:28.315Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": null,
"output": {
"mode": "dunning",
"invoices": 1,
"steps": [
"in_HZV2FOX5SENPYNC7RR3C0IYH:final_notice"
],
"skipped": []
},
"events": [
{
"at": "2026-10-22T18:56:26.004Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T18:56:26.902Z",
"msg": "agents: invoice-check=ok"
},
{
"at": "2026-10-22T18:56:26.904Z",
"msg": "planned 2 action(s): 0 need approval"
},
{
"at": "2026-10-22T18:56:28.115Z",
"msg": "gmail.draft_final_notice:aa550e3a1a: applied"
},
{
"at": "2026-10-22T18:56:28.315Z",
"msg": "stripe.record_step:in_HZV2FOX5SENPYNC7RR3C0IYH: applied"
},
{
"at": "2026-10-22T18:56:28.316Z",
"msg": "done (ok)"
}
],
"createdAt": "2026-10-22T18:56:26.004Z",
"updatedAt": "2026-10-22T18:56:28.316Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/cancellation_needs_approval/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/cancellation_needs_approval/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
04POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "cancellation-needs-approval-vr_243352f82fcf4575922b792da8a81865",
"input": {
"stage": "sweep",
"customers": [
"[email protected]"
],
"financeChannel": "C0BILLING01",
"approvers": [
"U_CONTROLLER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "cancellation_needs_approval"
}
}Server returned
HTTP 200
{
"runId": "cancellation-needs-approval-vr_243352f82fcf4575922b792da8a81865",
"workflow": "failed-payment-dunning",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "Finance",
"team": "billing-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "cancellation_needs_approval"
},
"duplicateStarts": 1,
"agents": [
{
"name": "invoice-check",
"status": "ok",
"summary": "1 invoice(s), 1 open",
"durationMs": 896
},
{
"name": "dunning-plan",
"status": "ok",
"summary": "1 step(s) due",
"durationMs": 0
}
],
"actions": [
{
"id": "gmail.draft_final_notice:aa550e3a1a",
"kind": "gmail.draft_notice",
"provider": "gmail",
"agent": "dunning-plan",
"gate": "auto",
"status": "applied",
"summary": {
"invoice": "in_HZV2FOX5SENPYNC7RR3C0IYH",
"step": "final_notice",
"sent": false
},
"attempts": 1,
"ref": "r4703700278633427",
"appliedAt": "2026-10-22T18:56:28.115Z",
"reconciled": null
},
{
"id": "stripe.record_step:in_HZV2FOX5SENPYNC7RR3C0IYH",
"kind": "stripe.record_step",
"provider": "stripe",
"agent": "dunning-plan",
"gate": "auto",
"status": "applied",
"summary": {
"invoice": "in_HZV2FOX5SENPYNC7RR3C0IYH",
"step": "final_notice"
},
"attempts": 1,
"ref": "cus_WFOTIBWGPNDNHNRP",
"detail": {
"step": "final_notice"
},
"appliedAt": "2026-10-22T18:56:28.315Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": null,
"output": {
"mode": "dunning",
"invoices": 1,
"steps": [
"in_HZV2FOX5SENPYNC7RR3C0IYH:final_notice"
],
"skipped": []
},
"events": [
{
"at": "2026-10-22T18:56:26.004Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T18:56:26.902Z",
"msg": "agents: invoice-check=ok"
},
{
"at": "2026-10-22T18:56:26.904Z",
"msg": "planned 2 action(s): 0 need approval"
},
{
"at": "2026-10-22T18:56:28.115Z",
"msg": "gmail.draft_final_notice:aa550e3a1a: applied"
},
{
"at": "2026-10-22T18:56:28.315Z",
"msg": "stripe.record_step:in_HZV2FOX5SENPYNC7RR3C0IYH: applied"
},
{
"at": "2026-10-22T18:56:28.316Z",
"msg": "done (ok)"
},
{
"at": "2026-10-22T18:56:28.889Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-22T18:56:26.004Z",
"updatedAt": "2026-10-22T18:56:28.889Z",
"duplicate": true
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "386",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "cancellation-needs-approval-vr_243352f82fcf4575922b792da8a81865",
"input": {
"stage": "sweep",
"customers": [
"[email protected]"
],
"financeChannel": "C0BILLING01",
"approvers": [
"U_CONTROLLER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "cancellation_needs_approval"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
05GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/cancellation_needs_approval/runs200
We sent
GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/cancellation_needs_approval/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "cancellation-needs-approval-vr_243352f82fcf4575922b792da8a81865",
"workflow": "failed-payment-dunning",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "Finance",
"team": "billing-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "cancellation_needs_approval"
},
"duplicateStarts": 1,
"agents": [
{
"name": "invoice-check",
"status": "ok",
"summary": "1 invoice(s), 1 open",
"durationMs": 896
},
{
"name": "dunning-plan",
"status": "ok",
"summary": "1 step(s) due",
"durationMs": 0
}
],
"actions": [
{
"id": "gmail.draft_final_notice:aa550e3a1a",
"kind": "gmail.draft_notice",
"provider": "gmail",
"agent": "dunning-plan",
"gate": "auto",
"status": "applied",
"summary": {
"invoice": "in_HZV2FOX5SENPYNC7RR3C0IYH",
"step": "final_notice",
"sent": false
},
"attempts": 1,
"ref": "r4703700278633427",
"appliedAt": "2026-10-22T18:56:28.115Z",
"reconciled": null
},
{
"id": "stripe.record_step:in_HZV2FOX5SENPYNC7RR3C0IYH",
"kind": "stripe.record_step",
"provider": "stripe",
"agent": "dunning-plan",
"gate": "auto",
"status": "applied",
"summary": {
"invoice": "in_HZV2FOX5SENPYNC7RR3C0IYH",
"step": "final_notice"
},
"attempts": 1,
"ref": "cus_WFOTIBWGPNDNHNRP",
"detail": {
"step": "final_notice"
},
"appliedAt": "2026-10-22T18:56:28.315Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": null,
"output": {
"mode": "dunning",
"invoices": 1,
"steps": [
"in_HZV2FOX5SENPYNC7RR3C0IYH:final_notice"
],
"skipped": []
},
"events": [
{
"at": "2026-10-22T18:56:26.004Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T18:56:26.902Z",
"msg": "agents: invoice-check=ok"
},
{
"at": "2026-10-22T18:56:26.904Z",
"msg": "planned 2 action(s): 0 need approval"
},
{
"at": "2026-10-22T18:56:28.115Z",
"msg": "gmail.draft_final_notice:aa550e3a1a: applied"
},
{
"at": "2026-10-22T18:56:28.315Z",
"msg": "stripe.record_step:in_HZV2FOX5SENPYNC7RR3C0IYH: applied"
},
{
"at": "2026-10-22T18:56:28.316Z",
"msg": "done (ok)"
},
{
"at": "2026-10-22T18:56:28.889Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-22T18:56:26.004Z",
"updatedAt": "2026-10-22T18:56:28.889Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/cancellation_needs_approval/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/cancellation_needs_approval/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Evidence
- Run
vr_243352f82fcf4575922b792da8a81865- App version (declared)
acme-ops-failed-payment-dunn…- Source receipt
- Source receipt ↗
Technical reference
cancellation_needs_approvalApp version (declared): acme-ops-failed-payment-dunning-1.0.0-4ac41d8
After 21 days the sweep proposes cancelling the subscription, and it waits for the controller
Provider-state assertion failed: expected exactly 1, found 0
- Verification covers the declared HTTP actions and state reads in this run.
- The app version shown was supplied by the app itself, not independently checked.
- Passing all checks in this run does not certify the whole app as production-ready.
- The verifier session does not survive a restart. This says nothing about the durability of the app under test.
- App state shown here is what the app's own endpoint reported. It is not independently checked against the database.
Provider traffic in the same time window (8)
These calls were recorded during the same request window as this check but are not directly linked to it. Timing alone is not proof that they caused or were caused by this check.
stripe · GET /v1/customers · HTTP 200
We sent
GET /v1/customers
No body shown for this read.
Server returned
HTTP 200
{
"data": [
{
"email": "[email protected]",
"name": "Dana Billing",
"id": "cus_WFOTIBWGPNDNHNRP",
"address": null,
"balance": 0,
"business_name": "Sample Business",
"cash_balance": null,
"created": 57,
"currency": "USD",
"customer_account": null,
"default_source": null,
"delinquent": false,
"description": null,
"discount": null,
"individual_name": "Sample Individual",
"invoice_prefix": null,
"livemode": false,
"object": "customer",
"phone": "+14155550100",
"preferred_locales": null,
"shipping": null,
"tax_exempt": "exempt",
"test_clock": null
}
],
"has_more": false,
"object": "list",
"url": "/v1/customers"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/198897286c/v1/customers
{
"host": "fetchsandbox.com",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/customers' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/invoices · HTTP 200
We sent
GET /v1/invoices
No body shown for this read.
Server returned
HTTP 200
{
"data": [
{
"object": "invoice",
"parent": {
"type": "subscription_details",
"subscription_details": {
"subscription": "sub_5GFMMEQUI7OW4HTDD69ACV0K",
"metadata": {}
}
},
"customer": "cus_WFOTIBWGPNDNHNRP",
"currency": "usd",
"total": 60000,
"amount_due": 60000,
"amount_paid": 0,
"amount_remaining": 60000,
"status": "open",
"created": 1792695275,
"id": "in_HZV2FOX5SENPYNC7RR3C0IYH",
"payments": {
"object": "list",
"data": [
{
"id": "inpay_G3ARARQZTS4CNR4LV9EM21V9",
"object": "invoice_payment",
"invoice": "in_HZV2FOX5SENPYNC7RR3C0IYH",
"amount_requested": 60000,
"amount_paid": null,
"currency": "usd",
"created": 1792695275,
"is_default": true,
"livemode": false,
"status": "open",
"status_transitions": {
"paid_at": null,
"canceled_at": null
},
"payment": {
"type": "payment_intent",
"payment_intent": "pi_RKWTM2N3RU1EVNA7LT1SCGB3"
}
}
],
"has_more": false,
"url": "/v1/invoice_payments?invoice=in_HZV2FOX5SENPYNC7RR3C0IYH"
},
"amount_overpaid": 92,
"amount_shipping": 17,
"attempt_count": 70,
"attempted": true,
"auto_advance": true,
"automatic_tax": {
"disabled_reason": "finalization_requires_location_inputs",
"enabled": true,
"provider": "default",
"status": "complete"
},
"collection_method": "charge_automatically",
"default_tax_rates": [
{
"active": true,
"country": "US",
"created": 42,
"display_name": "Item 925",
"id": "obj_2906e94946a54b8ba16cc06ce4",
"inclusive": true,
"jurisdiction_level": "city",
"livemode": false,
"object": "tax_rate",
"percentage": 577.7496,
"rate_type": "flat_amount",
"tax_type": "amusement_tax"
}
],
"discounts": [
"sample-value"
],
"issuer": {
"type": "account"
},
"lines": {
"data": [
{
"amount": 74,
"currency": "USD",
"discountable": true,
"discounts": [
"sample-value"
],
"id": "obj_289178944af24c5eb1346abb65",
"livemode": false,
"metadata": {},
"object": "line_item",
"period": {
"end": 21,
"start": 4
},
"subtotal": 32
}
],
"has_more": true,
"object": "list",
"url": "https://example.com/b0ee50f2"
},
"livemode": true,
"payment_settings": {
"default_mandate": "sample-value",
"payment_method_options": {
"acss_debit": {
"mandate_options": {
"transaction_type": "business"
},
"verification_method": "automatic"
},
"bancontact": {
"preferred_language": "de"
},
"card": {
"installments": {
"enabled": true
},
"request_three_d_secure": "any"
},
"customer_balance": {
"bank_transfer": {
"eu_bank_transfer": {
"country": "US"
},
"type": "default"
},
"funding_type": "bank_transfer"
},
"konbini": {},
"payto": {
"mandate_options": {
"amount": 0,
"amount_type": "fixed",
"purpose": "dependant_support"
}
},
"sepa_debit": {},
"us_bank_account": {
"financial_connections": {
"filters": {
"account_subcategories": [
"checking"
]
},
"permissions": [
"balances"
],
"prefetch": [
"balances"
]
},
"verification_method": "automatic"
}
},
"payment_method_types": [
"ach_credit_transfer"
]
},
"period_end": 70,
"period_start": 80,
"post_payment_credit_notes_amount": 9,
"pre_payment_credit_notes_amount": 32,
"starting_balance": 70,
"status_transitions": {
"finalized_at": 14,
"marked_uncollectible_at": 82,
"paid_at": 63,
"voided_at": 48
},
"subtotal": 23,
"account_country": null,
"account_name": null,
"account_tax_ids": null,
"application": null,
"automatically_finalizes_at": null,
"billing_reason": null,
"confirmation_secret": "[redacted]",
"custom_fields": null,
"customer_account": null,
"customer_address": null,
"customer_email": null,
"customer_name": null,
"customer_phone": null,
"customer_shipping": null,
"customer_tax_exempt": null,
"customer_tax_ids": null,
"default_payment_method": null,
"default_source": null,
"description": null,
"due_date": null,
"effective_at": null,
"ending_balance": null,
"footer": null,
"from_invoice": null,
"hosted_invoice_url": null,
"invoice_pdf": null,
"last_finalization_error": null,
"latest_revision": null,
"metadata": null,
"next_payment_attempt": null,
"number": null,
"on_behalf_of": null,
"receipt_number": null,
"rendering": null,
"shipping_cost": null,
"shipping_details": null,
"statement_descriptor": null,
"subtotal_excluding_tax": null,
"test_clock": null,
"total_discount_amounts": null,
"total_excluding_tax": null,
"total_pretax_credit_amounts": null,
"total_taxes": null,
"webhooks_delivered_at": null
}
],
"has_more": false,
"object": "list",
"url": "/v1/invoices"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/198897286c/v1/invoices
{
"host": "fetchsandbox.com",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/invoices' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/customers/cus_WFOTIBWGPNDNHNRP · HTTP 200
We sent
GET /v1/customers/cus_WFOTIBWGPNDNHNRP
No body shown for this read.
Server returned
HTTP 200
{
"address": null,
"balance": 0,
"business_name": "Sample Business",
"cash_balance": null,
"created": 57,
"currency": "USD",
"customer_account": null,
"default_source": null,
"delinquent": false,
"description": null,
"discount": null,
"email": "[email protected]",
"id": "cus_WFOTIBWGPNDNHNRP",
"individual_name": "Sample Individual",
"invoice_prefix": null,
"livemode": false,
"name": "Dana Billing",
"object": "customer",
"phone": "+14155550100",
"preferred_locales": null,
"shipping": null,
"tax_exempt": "exempt",
"test_clock": null,
"invoice_settings[default_payment_method]": "pm_card_chargeCustomerFail"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/198897286c/v1/customers/cus_WFOTIBWGPNDNHNRP
{
"host": "fetchsandbox.com",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/customers/cus_WFOTIBWGPNDNHNRP' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/payment_methods · HTTP 200
We sent
GET /v1/payment_methods
No body shown for this read.
Server returned
HTTP 200
{
"data": [],
"has_more": false,
"object": "list",
"url": "/v1/payment_methods"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/198897286c/v1/payment_methods
{
"host": "fetchsandbox.com",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/payment_methods' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/invoices/in_HZV2FOX5SENPYNC7RR3C0IYH · HTTP 200
We sent
GET /v1/invoices/in_HZV2FOX5SENPYNC7RR3C0IYH
No body shown for this read.
Server returned
HTTP 200
{
"account_country": null,
"account_name": "Sample Account",
"account_tax_ids": null,
"amount_due": 60000,
"amount_overpaid": 6,
"amount_paid": 0,
"amount_remaining": 60000,
"amount_shipping": 77,
"application": null,
"attempt_count": 0,
"attempted": true,
"auto_advance": true,
"automatic_tax": {
"disabled_reason": "finalization_requires_location_inputs",
"enabled": true,
"liability": null,
"provider": "default",
"status": "complete"
},
"automatically_finalizes_at": null,
"billing_reason": "automatic_pending_invoice_item_invoice",
"collection_method": "charge_automatically",
"confirmation_secret": "[redacted]",
"created": 1792695275,
"currency": "usd",
"custom_fields": null,
"customer": "cus_WFOTIBWGPNDNHNRP",
"customer_account": null,
"customer_address": null,
"customer_email": null,
"customer_name": "Sample Customer",
"customer_phone": null,
"customer_shipping": null,
"customer_tax_exempt": "exempt",
"customer_tax_ids": null,
"default_payment_method": null,
"default_source": null,
"default_tax_rates": [
{
"active": true,
"country": "US",
"created": 7,
"description": null,
"display_name": "Item 871",
"effective_percentage": null,
"flat_amount": null,
"id": "obj_bb56b3e602ba4726821e0af0a1",
"inclusive": true,
"jurisdiction": null,
"jurisdiction_level": "city",
"livemode": false,
"metadata": null,
"object": "tax_rate",
"percentage": 88.7321,
"rate_type": "flat_amount",
"state": null,
"tax_type": "amusement_tax"
}
],
"description": null,
"discounts": [
"sample-value"
],
"due_date": null,
"effective_at": null,
"ending_balance": null,
"footer": null,
"from_invoice": null,
"hosted_invoice_url": "https://example.com/e93a162b",
"id": "in_HZV2FOX5SENPYNC7RR3C0IYH",
"invoice_pdf": null,
"issuer": {
"type": "account"
},
"last_finalization_error": null,
"latest_revision": null,
"lines": {
"data": [
{
"amount": 98,
"currency": "USD",
"description": null,
"discount_amounts": null,
"discountable": true,
"discounts": [
"sample-value"
],
"id": "obj_06def705680e41d39426804e63",
"invoice": null,
"livemode": false,
"metadata": {},
"object": "line_item",
"parent": null,
"period": {
"end": 4,
"start": 91
},
"pretax_credit_amounts": null,
"pricing": null,
"quantity": null,
"subscription": null,
"subtotal": 7,
"taxes": null
}
],
"has_more": true,
"object": "list",
"url": "https://example.com/7015dae7"
},
"livemode": false,
"metadata": null,
"next_payment_attempt": null,
"number": null,
"object": "invoice",
"on_behalf_of": null,
"parent": {
"type": "subscription_details",
"subscription_details": {
"subscription": "sub_5GFMMEQUI7OW4HTDD69ACV0K",
"metadata": {}
}
},
"payment_settings": {
"default_mandate": "sample-value",
"payment_method_options": {
"acss_debit": {
"mandate_options": "sample-value",
"verification_method": "automatic"
},
"bancontact": {
"preferred_language": "de"
},
"card": {
"installments": "sample-value",
"request_three_d_secure": "any"
},
"customer_balance": {
"bank_transfer": "sample-value",
"funding_type": "bank_transfer"
},
"konbini": {},
"payto": {
"mandate_options": "sample-value"
},
"sepa_debit": {},
"us_bank_account": {
"financial_connections": "sample-value",
"verification_method": "automatic"
}
},
"payment_method_types": [
"ach_credit_transfer"
]
},
"period_end": 31,
"period_start": 13,
"post_payment_credit_notes_amount": 60,
"pre_payment_credit_notes_amount": 75,
"receipt_number": null,
"rendering": null,
"shipping_cost": null,
"shipping_details": null,
"starting_balance": 91,
"statement_descriptor": null,
"status": "open",
"status_transitions": {
"finalized_at": 52,
"marked_uncollectible_at": 9,
"paid_at": 15,
"voided_at": 64
},
"subtotal": 9,
"subtotal_excluding_tax": null,
"test_clock": null,
"total": 60000,
"total_discount_amounts": null,
"total_excluding_tax": null,
"total_pretax_credit_amounts": null,
"total_taxes": null,
"webhooks_delivered_at": null,
"payments": {
"object": "list",
"data": [
{
"id": "inpay_G3ARARQZTS4CNR4LV9EM21V9",
"object": "invoice_payment",
"invoice": "in_HZV2FOX5SENPYNC7RR3C0IYH",
"amount_requested": 60000,
"amount_paid": null,
"currency": "usd",
"created": 1792695275,
"is_default": true,
"livemode": false,
"status": "open",
"status_transitions": {
"paid_at": null,
"canceled_at": null
},
"payment": {
"type": "payment_intent",
"payment_intent": "pi_RKWTM2N3RU1EVNA7LT1SCGB3"
}
}
],
"has_more": false,
"url": "/v1/invoice_payments?invoice=in_HZV2FOX5SENPYNC7RR3C0IYH"
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/198897286c/v1/invoices/in_HZV2FOX5SENPYNC7RR3C0IYH
{
"host": "fetchsandbox.com",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/invoices/in_HZV2FOX5SENPYNC7RR3C0IYH' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/customers/cus_WFOTIBWGPNDNHNRP · HTTP 200
We sent
GET /v1/customers/cus_WFOTIBWGPNDNHNRP
No body shown for this read.
Server returned
HTTP 200
{
"address": null,
"balance": 0,
"business_name": "Sample Business",
"cash_balance": null,
"created": 57,
"currency": "USD",
"customer_account": null,
"default_source": null,
"delinquent": false,
"description": null,
"discount": null,
"email": "[email protected]",
"id": "cus_WFOTIBWGPNDNHNRP",
"individual_name": "Sample Individual",
"invoice_prefix": null,
"livemode": false,
"name": "Dana Billing",
"object": "customer",
"phone": "+14155550100",
"preferred_locales": null,
"shipping": null,
"tax_exempt": "exempt",
"test_clock": null,
"invoice_settings[default_payment_method]": "pm_card_chargeCustomerFail"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/198897286c/v1/customers/cus_WFOTIBWGPNDNHNRP
{
"host": "fetchsandbox.com",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/customers/cus_WFOTIBWGPNDNHNRP' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
gmail · POST /gmail/v1/users/me/drafts · HTTP 200
We sent
POST /gmail/v1/users/me/drafts
{
"message": {
"raw": "RnJvbTogbWUNClRvOiBkdW4tY2FuY2VsbGF0aW9uLW5lZWRzLWFwcHJvdmFsQGJpbGxpbmcuZXhhbXBsZS5jb20NClN1YmplY3Q6IEZpbmFsIG5vdGljZTogJDYwMC4wMCBvdmVyZHVlDQpNZXNzYWdlLUlEOiA8NWI5MDg3YmMzZjhkY2YxMi5kdW5uaW5nLWZpbmFsX25vdGljZS1hYTU1MGUzYTFhQG9wcy5hY21lLmV4YW1wbGU-DQpNSU1FLVZlcnNpb246IDEuMA0KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCINCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQNCg0KSGVsbG8sCgpJbnZvaWNlIGluX0haVjJGT1g1U0VOUFlOQzdSUjNDMElZSCBmb3IgJDYwMC4wMCBpcyBvdmVyZHVlLiBJZiBpdCBzdGF5cyB1bnBhaWQsIHlvdXIgc3Vic2NyaXB0aW9uIHdpbGwgYmUgY2FuY2VsbGVkIGFmdGVyIGEgcmV2aWV3IGJ5IG91ciBiaWxsaW5nIHRlYW0uCgpBQ01FIEJpbGxpbmc"
}
}Server returned
HTTP 200
{
"message": {
"raw": "RnJvbTogbWUNClRvOiBkdW4tY2FuY2VsbGF0aW9uLW5lZWRzLWFwcHJvdmFsQGJpbGxpbmcuZXhhbXBsZS5jb20NClN1YmplY3Q6IEZpbmFsIG5vdGljZTogJDYwMC4wMCBvdmVyZHVlDQpNZXNzYWdlLUlEOiA8NWI5MDg3YmMzZjhkY2YxMi5kdW5uaW5nLWZpbmFsX25vdGljZS1hYTU1MGUzYTFhQG9wcy5hY21lLmV4YW1wbGU-DQpNSU1FLVZlcnNpb246IDEuMA0KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCINCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQNCg0KSGVsbG8sCgpJbnZvaWNlIGluX0haVjJGT1g1U0VOUFlOQzdSUjNDMElZSCBmb3IgJDYwMC4wMCBpcyBvdmVyZHVlLiBJZiBpdCBzdGF5cyB1bnBhaWQsIHlvdXIgc3Vic2NyaXB0aW9uIHdpbGwgYmUgY2FuY2VsbGVkIGFmdGVyIGEgcmV2aWV3IGJ5IG91ciBiaWxsaW5nIHRlYW0uCgpBQ01FIEJpbGxpbmc",
"payload": {
"mimeType": "text/plain",
"headers": [
{
"name": "From",
"value": "me"
},
{
"name": "To",
"value": "[email protected]"
},
{
"name": "Subject",
"value": "Final notice: $600.00 overdue"
},
{
"name": "Message-ID",
"value": "<5b9087bc3f8dcf12.dunning-final_notice-aa550e3a1a@ops.acme.example>"
},
{
"name": "MIME-Version",
"value": "1.0"
},
{
"name": "Content-Type",
"value": "text/plain; charset=\"UTF-8\""
},
{
"name": "Content-Transfer-Encoding",
"value": "8bit"
}
],
"body": {
"size": 173,
"data": "SGVsbG8sCgpJbnZvaWNlIGluX0haVjJGT1g1U0VOUFlOQzdSUjNDMElZSCBmb3IgJDYwMC4wMCBpcyBvdmVyZHVlLiBJZiBpdCBzdGF5cyB1bnBhaWQsIHlvdXIgc3Vic2NyaXB0aW9uIHdpbGwgYmUgY2FuY2VsbGVkIGFmdGVyIGEgcmV2aWV3IGJ5IG91ciBiaWxsaW5nIHRlYW0uCgpBQ01FIEJpbGxpbmc"
}
},
"sizeEstimate": 458,
"labelIds": [
"DRAFT"
],
"id": "58400e2f38a34b7e"
},
"user_id": "me",
"id": "r4703700278633427"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/caf533faa2/gmail/v1/users/me/drafts
{
"host": "fetchsandbox.com",
"content-length": "633",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"content-type": "application/json; charset=utf-8"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/caf533faa2/gmail/v1/users/me/drafts' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \
--header 'content-type: application/json; charset=utf-8' \
--data-raw '{
"message": {
"raw": "RnJvbTogbWUNClRvOiBkdW4tY2FuY2VsbGF0aW9uLW5lZWRzLWFwcHJvdmFsQGJpbGxpbmcuZXhhbXBsZS5jb20NClN1YmplY3Q6IEZpbmFsIG5vdGljZTogJDYwMC4wMCBvdmVyZHVlDQpNZXNzYWdlLUlEOiA8NWI5MDg3YmMzZjhkY2YxMi5kdW5uaW5nLWZpbmFsX25vdGljZS1hYTU1MGUzYTFhQG9wcy5hY21lLmV4YW1wbGU-DQpNSU1FLVZlcnNpb246IDEuMA0KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCINCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQNCg0KSGVsbG8sCgpJbnZvaWNlIGluX0haVjJGT1g1U0VOUFlOQzdSUjNDMElZSCBmb3IgJDYwMC4wMCBpcyBvdmVyZHVlLiBJZiBpdCBzdGF5cyB1bnBhaWQsIHlvdXIgc3Vic2NyaXB0aW9uIHdpbGwgYmUgY2FuY2VsbGVkIGFmdGVyIGEgcmV2aWV3IGJ5IG91ciBiaWxsaW5nIHRlYW0uCgpBQ01FIEJpbGxpbmc"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · POST /v1/customers/cus_WFOTIBWGPNDNHNRP · HTTP 200
We sent
POST /v1/customers/cus_WFOTIBWGPNDNHNRP
{
"metadata": {
"acme_dunning_in_HZV2FOX5SENPYNC7RR3C0IYH": "final_notice"
}
}Server returned
HTTP 200
{
"email": "[email protected]",
"name": "Dana Billing",
"id": "cus_WFOTIBWGPNDNHNRP",
"address": null,
"balance": 0,
"business_name": "Sample Business",
"cash_balance": null,
"created": 57,
"currency": "USD",
"customer_account": null,
"default_source": null,
"delinquent": false,
"description": null,
"discount": null,
"individual_name": "Sample Individual",
"invoice_prefix": null,
"livemode": false,
"object": "customer",
"phone": "+14155550100",
"preferred_locales": null,
"shipping": null,
"tax_exempt": "exempt",
"test_clock": null,
"invoice_settings[default_payment_method]": "pm_card_chargeCustomerFail",
"metadata": {
"acme_dunning_in_HZV2FOX5SENPYNC7RR3C0IYH": "final_notice"
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/198897286c/v1/customers/cus_WFOTIBWGPNDNHNRP
{
"host": "fetchsandbox.com",
"content-length": "67",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"content-type": "application/x-www-form-urlencoded"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/198897286c/v1/customers/cus_WFOTIBWGPNDNHNRP' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \
--header 'content-type: application/x-www-form-urlencoded' \
--data-raw '{
"metadata": {
"acme_dunning_in_HZV2FOX5SENPYNC7RR3C0IYH": "final_notice"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
A second delivery of the same failure (a new trigger) finds the step taken and sends nothing more
repeated_failure_no_second_noticeWhat we probed
A second delivery of the same failure (a new trigger) finds the step taken and sends nothing more
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocationsPOST /invocations
Expected vs actual
- Expected
- A second delivery of the same failure (a new trigger) finds the step taken and sends nothing more
- Actual
- runs[*]: expected exactly 2, found 2; runs[*]: expected exactly 1, found 0; runs[*]: expected exactly 1, found 2
Requests and responses
01GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/repeated_failure_no_second_notice/runs200
We sent
GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/repeated_failure_no_second_notice/runs
This request had no body.
Server returned
HTTP 200
{
"runs": []
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/repeated_failure_no_second_notice/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/repeated_failure_no_second_notice/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
02POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "repeated-failure-no-second-notice-vr_243352f82fcf4575922b792da8a81865",
"input": {
"stage": "payment_failed",
"invoiceId": "in_0BNQI4GJ00GOV3LFS2DPBFS0",
"financeChannel": "C0BILLING01",
"approvers": [
"U_CONTROLLER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "repeated_failure_no_second_notice"
}
}Server returned
HTTP 200
{
"runId": "repeated-failure-no-second-notice-vr_243352f82fcf4575922b792da8a81865",
"workflow": "failed-payment-dunning",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "Finance",
"team": "billing-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "repeated_failure_no_second_notice"
},
"duplicateStarts": 0,
"agents": [
{
"name": "invoice-check",
"status": "ok",
"summary": "1 invoice(s), 0 open",
"durationMs": 596
},
{
"name": "dunning-plan",
"status": "ok",
"summary": "0 step(s) due",
"durationMs": 0
}
],
"actions": [],
"counts": {
"applied": 0,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": null,
"output": {
"mode": "nothing",
"invoices": 1,
"steps": [],
"skipped": [
"in_0BNQI4GJ00GOV3LFS2DPBFS0: invoice is paid"
]
},
"events": [
{
"at": "2026-10-22T18:56:29.745Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T18:56:30.342Z",
"msg": "agents: invoice-check=ok"
},
{
"at": "2026-10-22T18:56:30.345Z",
"msg": "planned 0 action(s): 0 need approval"
},
{
"at": "2026-10-22T18:56:30.345Z",
"msg": "done (ok)"
}
],
"createdAt": "2026-10-22T18:56:29.745Z",
"updatedAt": "2026-10-22T18:56:30.345Z",
"duplicate": false
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "381",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "repeated-failure-no-second-notice-vr_243352f82fcf4575922b792da8a81865",
"input": {
"stage": "payment_failed",
"invoiceId": "in_0BNQI4GJ00GOV3LFS2DPBFS0",
"financeChannel": "C0BILLING01",
"approvers": [
"U_CONTROLLER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "repeated_failure_no_second_notice"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
03POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "repeat-b-vr_243352f82fcf4575922b792da8a81865",
"input": {
"stage": "payment_failed",
"invoiceId": "in_0BNQI4GJ00GOV3LFS2DPBFS0",
"financeChannel": "C0BILLING01",
"approvers": [
"U_CONTROLLER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "repeated_failure_no_second_notice"
}
}Server returned
HTTP 200
{
"runId": "repeat-b-vr_243352f82fcf4575922b792da8a81865",
"workflow": "failed-payment-dunning",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "Finance",
"team": "billing-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "repeated_failure_no_second_notice"
},
"duplicateStarts": 0,
"agents": [
{
"name": "invoice-check",
"status": "ok",
"summary": "1 invoice(s), 0 open",
"durationMs": 623
},
{
"name": "dunning-plan",
"status": "ok",
"summary": "0 step(s) due",
"durationMs": 0
}
],
"actions": [],
"counts": {
"applied": 0,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": null,
"output": {
"mode": "nothing",
"invoices": 1,
"steps": [],
"skipped": [
"in_0BNQI4GJ00GOV3LFS2DPBFS0: invoice is paid"
]
},
"events": [
{
"at": "2026-10-22T18:56:30.575Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T18:56:31.199Z",
"msg": "agents: invoice-check=ok"
},
{
"at": "2026-10-22T18:56:31.201Z",
"msg": "planned 0 action(s): 0 need approval"
},
{
"at": "2026-10-22T18:56:31.202Z",
"msg": "done (ok)"
}
],
"createdAt": "2026-10-22T18:56:30.575Z",
"updatedAt": "2026-10-22T18:56:31.202Z",
"duplicate": false
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "356",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "repeat-b-vr_243352f82fcf4575922b792da8a81865",
"input": {
"stage": "payment_failed",
"invoiceId": "in_0BNQI4GJ00GOV3LFS2DPBFS0",
"financeChannel": "C0BILLING01",
"approvers": [
"U_CONTROLLER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "repeated_failure_no_second_notice"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
04GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/repeated_failure_no_second_notice/runs200
We sent
GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/repeated_failure_no_second_notice/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "repeated-failure-no-second-notice-vr_243352f82fcf4575922b792da8a81865",
"workflow": "failed-payment-dunning",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "Finance",
"team": "billing-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "repeated_failure_no_second_notice"
},
"duplicateStarts": 0,
"agents": [
{
"name": "invoice-check",
"status": "ok",
"summary": "1 invoice(s), 0 open",
"durationMs": 596
},
{
"name": "dunning-plan",
"status": "ok",
"summary": "0 step(s) due",
"durationMs": 0
}
],
"actions": [],
"counts": {
"applied": 0,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": null,
"output": {
"mode": "nothing",
"invoices": 1,
"steps": [],
"skipped": [
"in_0BNQI4GJ00GOV3LFS2DPBFS0: invoice is paid"
]
},
"events": [
{
"at": "2026-10-22T18:56:29.745Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T18:56:30.342Z",
"msg": "agents: invoice-check=ok"
},
{
"at": "2026-10-22T18:56:30.345Z",
"msg": "planned 0 action(s): 0 need approval"
},
{
"at": "2026-10-22T18:56:30.345Z",
"msg": "done (ok)"
}
],
"createdAt": "2026-10-22T18:56:29.745Z",
"updatedAt": "2026-10-22T18:56:30.345Z"
},
{
"runId": "repeat-b-vr_243352f82fcf4575922b792da8a81865",
"workflow": "failed-payment-dunning",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "Finance",
"team": "billing-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "repeated_failure_no_second_notice"
},
"duplicateStarts": 0,
"agents": [
{
"name": "invoice-check",
"status": "ok",
"summary": "1 invoice(s), 0 open",
"durationMs": 623
},
{
"name": "dunning-plan",
"status": "ok",
"summary": "0 step(s) due",
"durationMs": 0
}
],
"actions": [],
"counts": {
"applied": 0,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": null,
"output": {
"mode": "nothing",
"invoices": 1,
"steps": [],
"skipped": [
"in_0BNQI4GJ00GOV3LFS2DPBFS0: invoice is paid"
]
},
"events": [
{
"at": "2026-10-22T18:56:30.575Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T18:56:31.199Z",
"msg": "agents: invoice-check=ok"
},
{
"at": "2026-10-22T18:56:31.201Z",
"msg": "planned 0 action(s): 0 need approval"
},
{
"at": "2026-10-22T18:56:31.202Z",
"msg": "done (ok)"
}
],
"createdAt": "2026-10-22T18:56:30.575Z",
"updatedAt": "2026-10-22T18:56:31.202Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/repeated_failure_no_second_notice/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/repeated_failure_no_second_notice/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Evidence
- Run
vr_243352f82fcf4575922b792da8a81865- App version (declared)
acme-ops-failed-payment-dunn…- Source receipt
- Source receipt ↗
Technical reference
repeated_failure_no_second_noticeApp version (declared): acme-ops-failed-payment-dunning-1.0.0-4ac41d8
A second delivery of the same failure (a new trigger) finds the step taken and sends nothing more
runs[*]: expected exactly 2, found 2; runs[*]: expected exactly 1, found 0; runs[*]: expected exactly 1, found 2
- Verification covers the declared HTTP actions and state reads in this run.
- The app version shown was supplied by the app itself, not independently checked.
- Passing all checks in this run does not certify the whole app as production-ready.
- The verifier session does not survive a restart. This says nothing about the durability of the app under test.
- App state shown here is what the app's own endpoint reported. It is not independently checked against the database.
Provider traffic in the same time window (6)
These calls were recorded during the same request window as this check but are not directly linked to it. Timing alone is not proof that they caused or were caused by this check.
stripe · GET /v1/invoices/in_0BNQI4GJ00GOV3LFS2DPBFS0 · HTTP 200
We sent
GET /v1/invoices/in_0BNQI4GJ00GOV3LFS2DPBFS0
No body shown for this read.
Server returned
HTTP 200
{
"account_country": null,
"account_name": "Sample Account",
"account_tax_ids": null,
"amount_due": 0,
"amount_overpaid": 0,
"amount_paid": 0,
"amount_remaining": 0,
"amount_shipping": 0,
"application": null,
"attempt_count": 0,
"attempted": false,
"auto_advance": false,
"automatic_tax": {
"enabled": false,
"disabled_reason": null,
"liability": null,
"provider": null,
"status": null
},
"automatically_finalizes_at": null,
"billing_reason": "automatic_pending_invoice_item_invoice",
"collection_method": "charge_automatically",
"confirmation_secret": "[redacted]",
"created": 1792695277,
"currency": "usd",
"custom_fields": null,
"customer": "cus_LJ2IJ2SMNJW4I01A",
"customer_account": null,
"customer_address": null,
"customer_email": "[email protected]",
"customer_name": "Sample Customer",
"customer_phone": null,
"customer_shipping": null,
"customer_tax_exempt": "exempt",
"customer_tax_ids": null,
"default_payment_method": null,
"default_source": null,
"default_tax_rates": [],
"description": null,
"discounts": [],
"due_date": null,
"effective_at": null,
"ending_balance": 0,
"footer": null,
"from_invoice": null,
"hosted_invoice_url": null,
"id": "in_0BNQI4GJ00GOV3LFS2DPBFS0",
"invoice_pdf": null,
"issuer": {
"type": "account"
},
"last_finalization_error": null,
"latest_revision": null,
"lines": {
"object": "list",
"data": [],
"has_more": false,
"total_count": 0,
"url": "/v1/invoices/in_0BNQI4GJ00GOV3LFS2DPBFS0/lines"
},
"livemode": false,
"metadata": {},
"next_payment_attempt": null,
"number": "FS-00GOV3LFS2DPBFS0",
"object": "invoice",
"on_behalf_of": null,
"parent": null,
"payment_settings": {
"default_mandate": null,
"payment_method_options": null,
"payment_method_types": null
},
"period_end": 1792695277,
"period_start": 1792695277,
"post_payment_credit_notes_amount": 0,
"pre_payment_credit_notes_amount": 0,
"receipt_number": null,
"rendering": null,
"shipping_cost": null,
"shipping_details": null,
"starting_balance": 0,
"statement_descriptor": null,
"status": "paid",
"status_transitions": {
"finalized_at": 1792695278,
"paid_at": 1792695278,
"voided_at": null,
"marked_uncollectible_at": null
},
"subtotal": 0,
"subtotal_excluding_tax": 0,
"test_clock": null,
"total": 0,
"total_discount_amounts": [],
"total_excluding_tax": 0,
"total_pretax_credit_amounts": [],
"total_taxes": [],
"webhooks_delivered_at": null
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/198897286c/v1/invoices/in_0BNQI4GJ00GOV3LFS2DPBFS0
{
"host": "fetchsandbox.com",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/invoices/in_0BNQI4GJ00GOV3LFS2DPBFS0' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/customers/cus_LJ2IJ2SMNJW4I01A · HTTP 200
We sent
GET /v1/customers/cus_LJ2IJ2SMNJW4I01A
No body shown for this read.
Server returned
HTTP 200
{
"address": null,
"balance": 0,
"business_name": "Sample Business",
"cash_balance": null,
"created": 22,
"currency": "USD",
"customer_account": null,
"default_source": null,
"delinquent": false,
"description": null,
"discount": null,
"email": "[email protected]",
"id": "cus_LJ2IJ2SMNJW4I01A",
"individual_name": "Sample Individual",
"invoice_prefix": null,
"livemode": false,
"name": "Dana Billing",
"object": "customer",
"phone": "+14155550100",
"preferred_locales": null,
"shipping": null,
"tax_exempt": "exempt",
"test_clock": null,
"invoice_settings[default_payment_method]": "pm_card_chargeCustomerFail"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/198897286c/v1/customers/cus_LJ2IJ2SMNJW4I01A
{
"host": "fetchsandbox.com",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/customers/cus_LJ2IJ2SMNJW4I01A' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/payment_methods · HTTP 200
We sent
GET /v1/payment_methods
No body shown for this read.
Server returned
HTTP 200
{
"data": [],
"has_more": false,
"object": "list",
"url": "/v1/payment_methods"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/198897286c/v1/payment_methods
{
"host": "fetchsandbox.com",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/payment_methods' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/invoices/in_0BNQI4GJ00GOV3LFS2DPBFS0 · HTTP 200
We sent
GET /v1/invoices/in_0BNQI4GJ00GOV3LFS2DPBFS0
No body shown for this read.
Server returned
HTTP 200
{
"account_country": null,
"account_name": "Sample Account",
"account_tax_ids": null,
"amount_due": 0,
"amount_overpaid": 0,
"amount_paid": 0,
"amount_remaining": 0,
"amount_shipping": 0,
"application": null,
"attempt_count": 0,
"attempted": false,
"auto_advance": false,
"automatic_tax": {
"enabled": false,
"disabled_reason": null,
"liability": null,
"provider": null,
"status": null
},
"automatically_finalizes_at": null,
"billing_reason": "automatic_pending_invoice_item_invoice",
"collection_method": "charge_automatically",
"confirmation_secret": "[redacted]",
"created": 1792695277,
"currency": "usd",
"custom_fields": null,
"customer": "cus_LJ2IJ2SMNJW4I01A",
"customer_account": null,
"customer_address": null,
"customer_email": "[email protected]",
"customer_name": "Sample Customer",
"customer_phone": null,
"customer_shipping": null,
"customer_tax_exempt": "exempt",
"customer_tax_ids": null,
"default_payment_method": null,
"default_source": null,
"default_tax_rates": [],
"description": null,
"discounts": [],
"due_date": null,
"effective_at": null,
"ending_balance": 0,
"footer": null,
"from_invoice": null,
"hosted_invoice_url": null,
"id": "in_0BNQI4GJ00GOV3LFS2DPBFS0",
"invoice_pdf": null,
"issuer": {
"type": "account"
},
"last_finalization_error": null,
"latest_revision": null,
"lines": {
"object": "list",
"data": [],
"has_more": false,
"total_count": 0,
"url": "/v1/invoices/in_0BNQI4GJ00GOV3LFS2DPBFS0/lines"
},
"livemode": false,
"metadata": {},
"next_payment_attempt": null,
"number": "FS-00GOV3LFS2DPBFS0",
"object": "invoice",
"on_behalf_of": null,
"parent": null,
"payment_settings": {
"default_mandate": null,
"payment_method_options": null,
"payment_method_types": null
},
"period_end": 1792695277,
"period_start": 1792695277,
"post_payment_credit_notes_amount": 0,
"pre_payment_credit_notes_amount": 0,
"receipt_number": null,
"rendering": null,
"shipping_cost": null,
"shipping_details": null,
"starting_balance": 0,
"statement_descriptor": null,
"status": "paid",
"status_transitions": {
"finalized_at": 1792695278,
"paid_at": 1792695278,
"voided_at": null,
"marked_uncollectible_at": null
},
"subtotal": 0,
"subtotal_excluding_tax": 0,
"test_clock": null,
"total": 0,
"total_discount_amounts": [],
"total_excluding_tax": 0,
"total_pretax_credit_amounts": [],
"total_taxes": [],
"webhooks_delivered_at": null
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/198897286c/v1/invoices/in_0BNQI4GJ00GOV3LFS2DPBFS0
{
"host": "fetchsandbox.com",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/invoices/in_0BNQI4GJ00GOV3LFS2DPBFS0' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/customers/cus_LJ2IJ2SMNJW4I01A · HTTP 200
We sent
GET /v1/customers/cus_LJ2IJ2SMNJW4I01A
No body shown for this read.
Server returned
HTTP 200
{
"address": null,
"balance": 0,
"business_name": "Sample Business",
"cash_balance": null,
"created": 22,
"currency": "USD",
"customer_account": null,
"default_source": null,
"delinquent": false,
"description": null,
"discount": null,
"email": "[email protected]",
"id": "cus_LJ2IJ2SMNJW4I01A",
"individual_name": "Sample Individual",
"invoice_prefix": null,
"livemode": false,
"name": "Dana Billing",
"object": "customer",
"phone": "+14155550100",
"preferred_locales": null,
"shipping": null,
"tax_exempt": "exempt",
"test_clock": null,
"invoice_settings[default_payment_method]": "pm_card_chargeCustomerFail"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/198897286c/v1/customers/cus_LJ2IJ2SMNJW4I01A
{
"host": "fetchsandbox.com",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/customers/cus_LJ2IJ2SMNJW4I01A' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/payment_methods · HTTP 200
We sent
GET /v1/payment_methods
No body shown for this read.
Server returned
HTTP 200
{
"data": [],
"has_more": false,
"object": "list",
"url": "/v1/payment_methods"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/198897286c/v1/payment_methods
{
"host": "fetchsandbox.com",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/payment_methods' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
A failure event for an invoice that is paid by now contacts nobody
paid_invoice_contacts_nobodyWhat we probed
A failure event for an invoice that is paid by now contacts nobody
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocations
Expected vs actual
- Expected
- A failure event for an invoice that is paid by now contacts nobody
- Actual
- expected exactly 1, found 1; stable under 2 repeats (1)
Requests and responses
01GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/paid_invoice_contacts_nobody/runs200
We sent
GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/paid_invoice_contacts_nobody/runs
This request had no body.
Server returned
HTTP 200
{
"runs": []
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/paid_invoice_contacts_nobody/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/paid_invoice_contacts_nobody/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
02POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "paid-invoice-contacts-nobody-vr_243352f82fcf4575922b792da8a81865",
"input": {
"stage": "payment_failed",
"invoiceId": "in_OE4FE8TDOME60765PJ9JPR0A",
"financeChannel": "C0BILLING01",
"approvers": [
"U_CONTROLLER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "paid_invoice_contacts_nobody"
}
}Server returned
HTTP 200
{
"runId": "paid-invoice-contacts-nobody-vr_243352f82fcf4575922b792da8a81865",
"workflow": "failed-payment-dunning",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "Finance",
"team": "billing-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "paid_invoice_contacts_nobody"
},
"duplicateStarts": 0,
"agents": [
{
"name": "invoice-check",
"status": "ok",
"summary": "1 invoice(s), 0 open",
"durationMs": 646
},
{
"name": "dunning-plan",
"status": "ok",
"summary": "0 step(s) due",
"durationMs": 1
}
],
"actions": [],
"counts": {
"applied": 0,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": null,
"output": {
"mode": "nothing",
"invoices": 1,
"steps": [],
"skipped": [
"in_OE4FE8TDOME60765PJ9JPR0A: invoice is paid"
]
},
"events": [
{
"at": "2026-10-22T18:56:32.037Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T18:56:32.685Z",
"msg": "agents: invoice-check=ok"
},
{
"at": "2026-10-22T18:56:32.688Z",
"msg": "planned 0 action(s): 0 need approval"
},
{
"at": "2026-10-22T18:56:32.689Z",
"msg": "done (ok)"
}
],
"createdAt": "2026-10-22T18:56:32.037Z",
"updatedAt": "2026-10-22T18:56:32.689Z",
"duplicate": false
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "371",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "paid-invoice-contacts-nobody-vr_243352f82fcf4575922b792da8a81865",
"input": {
"stage": "payment_failed",
"invoiceId": "in_OE4FE8TDOME60765PJ9JPR0A",
"financeChannel": "C0BILLING01",
"approvers": [
"U_CONTROLLER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "paid_invoice_contacts_nobody"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
03GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/paid_invoice_contacts_nobody/runs200
We sent
GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/paid_invoice_contacts_nobody/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "paid-invoice-contacts-nobody-vr_243352f82fcf4575922b792da8a81865",
"workflow": "failed-payment-dunning",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "Finance",
"team": "billing-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "paid_invoice_contacts_nobody"
},
"duplicateStarts": 0,
"agents": [
{
"name": "invoice-check",
"status": "ok",
"summary": "1 invoice(s), 0 open",
"durationMs": 646
},
{
"name": "dunning-plan",
"status": "ok",
"summary": "0 step(s) due",
"durationMs": 1
}
],
"actions": [],
"counts": {
"applied": 0,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": null,
"output": {
"mode": "nothing",
"invoices": 1,
"steps": [],
"skipped": [
"in_OE4FE8TDOME60765PJ9JPR0A: invoice is paid"
]
},
"events": [
{
"at": "2026-10-22T18:56:32.037Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T18:56:32.685Z",
"msg": "agents: invoice-check=ok"
},
{
"at": "2026-10-22T18:56:32.688Z",
"msg": "planned 0 action(s): 0 need approval"
},
{
"at": "2026-10-22T18:56:32.689Z",
"msg": "done (ok)"
}
],
"createdAt": "2026-10-22T18:56:32.037Z",
"updatedAt": "2026-10-22T18:56:32.689Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/paid_invoice_contacts_nobody/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/paid_invoice_contacts_nobody/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
04POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "paid-invoice-contacts-nobody-vr_243352f82fcf4575922b792da8a81865",
"input": {
"stage": "payment_failed",
"invoiceId": "in_OE4FE8TDOME60765PJ9JPR0A",
"financeChannel": "C0BILLING01",
"approvers": [
"U_CONTROLLER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "paid_invoice_contacts_nobody"
}
}Server returned
HTTP 200
{
"runId": "paid-invoice-contacts-nobody-vr_243352f82fcf4575922b792da8a81865",
"workflow": "failed-payment-dunning",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "Finance",
"team": "billing-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "paid_invoice_contacts_nobody"
},
"duplicateStarts": 1,
"agents": [
{
"name": "invoice-check",
"status": "ok",
"summary": "1 invoice(s), 0 open",
"durationMs": 646
},
{
"name": "dunning-plan",
"status": "ok",
"summary": "0 step(s) due",
"durationMs": 1
}
],
"actions": [],
"counts": {
"applied": 0,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": null,
"output": {
"mode": "nothing",
"invoices": 1,
"steps": [],
"skipped": [
"in_OE4FE8TDOME60765PJ9JPR0A: invoice is paid"
]
},
"events": [
{
"at": "2026-10-22T18:56:32.037Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T18:56:32.685Z",
"msg": "agents: invoice-check=ok"
},
{
"at": "2026-10-22T18:56:32.688Z",
"msg": "planned 0 action(s): 0 need approval"
},
{
"at": "2026-10-22T18:56:32.689Z",
"msg": "done (ok)"
},
{
"at": "2026-10-22T18:56:33.291Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-22T18:56:32.037Z",
"updatedAt": "2026-10-22T18:56:33.291Z",
"duplicate": true
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "371",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "paid-invoice-contacts-nobody-vr_243352f82fcf4575922b792da8a81865",
"input": {
"stage": "payment_failed",
"invoiceId": "in_OE4FE8TDOME60765PJ9JPR0A",
"financeChannel": "C0BILLING01",
"approvers": [
"U_CONTROLLER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "paid_invoice_contacts_nobody"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
05GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/paid_invoice_contacts_nobody/runs200
We sent
GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/paid_invoice_contacts_nobody/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "paid-invoice-contacts-nobody-vr_243352f82fcf4575922b792da8a81865",
"workflow": "failed-payment-dunning",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "Finance",
"team": "billing-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "paid_invoice_contacts_nobody"
},
"duplicateStarts": 1,
"agents": [
{
"name": "invoice-check",
"status": "ok",
"summary": "1 invoice(s), 0 open",
"durationMs": 646
},
{
"name": "dunning-plan",
"status": "ok",
"summary": "0 step(s) due",
"durationMs": 1
}
],
"actions": [],
"counts": {
"applied": 0,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": null,
"output": {
"mode": "nothing",
"invoices": 1,
"steps": [],
"skipped": [
"in_OE4FE8TDOME60765PJ9JPR0A: invoice is paid"
]
},
"events": [
{
"at": "2026-10-22T18:56:32.037Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T18:56:32.685Z",
"msg": "agents: invoice-check=ok"
},
{
"at": "2026-10-22T18:56:32.688Z",
"msg": "planned 0 action(s): 0 need approval"
},
{
"at": "2026-10-22T18:56:32.689Z",
"msg": "done (ok)"
},
{
"at": "2026-10-22T18:56:33.291Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-22T18:56:32.037Z",
"updatedAt": "2026-10-22T18:56:33.291Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/paid_invoice_contacts_nobody/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/paid_invoice_contacts_nobody/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Evidence
- Run
vr_243352f82fcf4575922b792da8a81865- App version (declared)
acme-ops-failed-payment-dunn…- Source receipt
- Source receipt ↗
Technical reference
paid_invoice_contacts_nobodyApp version (declared): acme-ops-failed-payment-dunning-1.0.0-4ac41d8
A failure event for an invoice that is paid by now contacts nobody
expected exactly 1, found 1; stable under 2 repeats (1)
- Verification covers the declared HTTP actions and state reads in this run.
- The app version shown was supplied by the app itself, not independently checked.
- Passing all checks in this run does not certify the whole app as production-ready.
- The verifier session does not survive a restart. This says nothing about the durability of the app under test.
- App state shown here is what the app's own endpoint reported. It is not independently checked against the database.
Provider traffic in the same time window (3)
These calls were recorded during the same request window as this check but are not directly linked to it. Timing alone is not proof that they caused or were caused by this check.
stripe · GET /v1/invoices/in_OE4FE8TDOME60765PJ9JPR0A · HTTP 200
We sent
GET /v1/invoices/in_OE4FE8TDOME60765PJ9JPR0A
No body shown for this read.
Server returned
HTTP 200
{
"account_country": null,
"account_name": "Sample Account",
"account_tax_ids": null,
"amount_due": 0,
"amount_overpaid": 0,
"amount_paid": 0,
"amount_remaining": 0,
"amount_shipping": 0,
"application": null,
"attempt_count": 0,
"attempted": false,
"auto_advance": false,
"automatic_tax": {
"enabled": false,
"disabled_reason": null,
"liability": null,
"provider": null,
"status": null
},
"automatically_finalizes_at": null,
"billing_reason": "automatic_pending_invoice_item_invoice",
"collection_method": "charge_automatically",
"confirmation_secret": "[redacted]",
"created": 1792695282,
"currency": "usd",
"custom_fields": null,
"customer": "cus_VZJ0DM2HOB9TXRQH",
"customer_account": null,
"customer_address": null,
"customer_email": "[email protected]",
"customer_name": "Sample Customer",
"customer_phone": null,
"customer_shipping": null,
"customer_tax_exempt": "exempt",
"customer_tax_ids": null,
"default_payment_method": null,
"default_source": null,
"default_tax_rates": [],
"description": null,
"discounts": [],
"due_date": null,
"effective_at": null,
"ending_balance": 0,
"footer": null,
"from_invoice": null,
"hosted_invoice_url": null,
"id": "in_OE4FE8TDOME60765PJ9JPR0A",
"invoice_pdf": null,
"issuer": {
"type": "account"
},
"last_finalization_error": null,
"latest_revision": null,
"lines": {
"object": "list",
"data": [],
"has_more": false,
"total_count": 0,
"url": "/v1/invoices/in_OE4FE8TDOME60765PJ9JPR0A/lines"
},
"livemode": false,
"metadata": {},
"next_payment_attempt": null,
"number": "FS-OME60765PJ9JPR0A",
"object": "invoice",
"on_behalf_of": null,
"parent": null,
"payment_settings": {
"default_mandate": null,
"payment_method_options": null,
"payment_method_types": null
},
"period_end": 1792695282,
"period_start": 1792695282,
"post_payment_credit_notes_amount": 0,
"pre_payment_credit_notes_amount": 0,
"receipt_number": null,
"rendering": null,
"shipping_cost": null,
"shipping_details": null,
"starting_balance": 0,
"statement_descriptor": null,
"status": "paid",
"status_transitions": {
"finalized_at": 1792695282,
"paid_at": 1792695282,
"voided_at": null,
"marked_uncollectible_at": null
},
"subtotal": 0,
"subtotal_excluding_tax": 0,
"test_clock": null,
"total": 0,
"total_discount_amounts": [],
"total_excluding_tax": 0,
"total_pretax_credit_amounts": [],
"total_taxes": [],
"webhooks_delivered_at": null
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/198897286c/v1/invoices/in_OE4FE8TDOME60765PJ9JPR0A
{
"host": "fetchsandbox.com",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/invoices/in_OE4FE8TDOME60765PJ9JPR0A' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/customers/cus_VZJ0DM2HOB9TXRQH · HTTP 200
We sent
GET /v1/customers/cus_VZJ0DM2HOB9TXRQH
No body shown for this read.
Server returned
HTTP 200
{
"address": null,
"balance": 0,
"business_name": "Sample Business",
"cash_balance": null,
"created": 10,
"currency": "USD",
"customer_account": null,
"default_source": null,
"delinquent": false,
"description": null,
"discount": null,
"email": "[email protected]",
"id": "cus_VZJ0DM2HOB9TXRQH",
"individual_name": "Sample Individual",
"invoice_prefix": null,
"livemode": false,
"name": "Dana Billing",
"object": "customer",
"phone": "+14155550100",
"preferred_locales": null,
"shipping": null,
"tax_exempt": "exempt",
"test_clock": null,
"invoice_settings[default_payment_method]": "pm_card_visa"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/198897286c/v1/customers/cus_VZJ0DM2HOB9TXRQH
{
"host": "fetchsandbox.com",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/customers/cus_VZJ0DM2HOB9TXRQH' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/payment_methods · HTTP 200
We sent
GET /v1/payment_methods
No body shown for this read.
Server returned
HTTP 200
{
"data": [],
"has_more": false,
"object": "list",
"url": "/v1/payment_methods"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/198897286c/v1/payment_methods
{
"host": "fetchsandbox.com",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/payment_methods' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
An invoice Stripe doesn't know contacts nobody and alerts finance
unknown_invoice_contacts_nobodyWhat we probed
An invoice Stripe doesn't know contacts nobody and alerts finance
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocations
Expected vs actual
- Expected
- An invoice Stripe doesn't know contacts nobody and alerts finance
- Actual
- expected exactly 1, found 1; stable under 2 repeats (1)
Requests and responses
01GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/unknown_invoice_contacts_nobody/runs200
We sent
GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/unknown_invoice_contacts_nobody/runs
This request had no body.
Server returned
HTTP 200
{
"runs": []
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/unknown_invoice_contacts_nobody/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/unknown_invoice_contacts_nobody/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
02POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "unknown-invoice-contacts-nobody-vr_243352f82fcf4575922b792da8a81865",
"input": {
"stage": "payment_failed",
"invoiceId": "in_doesnotexist0000",
"financeChannel": "C0BILLING01",
"approvers": [
"U_CONTROLLER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "unknown_invoice_contacts_nobody"
}
}Server returned
HTTP 200
{
"runId": "unknown-invoice-contacts-nobody-vr_243352f82fcf4575922b792da8a81865",
"workflow": "failed-payment-dunning",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "Finance",
"team": "billing-ops",
"phase": "DONE",
"closed": true,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "unknown_invoice_contacts_nobody"
},
"duplicateStarts": 0,
"agents": [
{
"name": "invoice-check",
"status": "failed",
"error": "stripe 404 resource_missing: GET /v1/invoices/in_doesnotexist0000 → 404 resource_missing",
"errorCode": "stripe:resource_missing",
"durationMs": 170
},
{
"name": "dunning-plan",
"status": "ok",
"summary": "blocked: invoices unreadable",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.escalate:blocked",
"kind": "slack.escalate",
"provider": "slack",
"agent": "dunning-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"blocked": true
},
"attempts": 1,
"ref": "17LEMA0B87.HF7QYY",
"appliedAt": "2026-10-22T18:56:34.706Z",
"reconciled": null
}
],
"counts": {
"applied": 1,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": null,
"output": {
"mode": "blocked",
"invoices": 0,
"steps": [],
"skipped": []
},
"events": [
{
"at": "2026-10-22T18:56:34.349Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T18:56:34.522Z",
"msg": "agents: invoice-check=failed"
},
{
"at": "2026-10-22T18:56:34.524Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T18:56:34.706Z",
"msg": "slack.escalate:blocked: applied"
},
{
"at": "2026-10-22T18:56:34.707Z",
"msg": "done (partial)"
}
],
"createdAt": "2026-10-22T18:56:34.349Z",
"updatedAt": "2026-10-22T18:56:34.707Z",
"duplicate": false
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "369",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "unknown-invoice-contacts-nobody-vr_243352f82fcf4575922b792da8a81865",
"input": {
"stage": "payment_failed",
"invoiceId": "in_doesnotexist0000",
"financeChannel": "C0BILLING01",
"approvers": [
"U_CONTROLLER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "unknown_invoice_contacts_nobody"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
03GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/unknown_invoice_contacts_nobody/runs200
We sent
GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/unknown_invoice_contacts_nobody/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "unknown-invoice-contacts-nobody-vr_243352f82fcf4575922b792da8a81865",
"workflow": "failed-payment-dunning",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "Finance",
"team": "billing-ops",
"phase": "DONE",
"closed": true,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "unknown_invoice_contacts_nobody"
},
"duplicateStarts": 0,
"agents": [
{
"name": "invoice-check",
"status": "failed",
"error": "stripe 404 resource_missing: GET /v1/invoices/in_doesnotexist0000 → 404 resource_missing",
"errorCode": "stripe:resource_missing",
"durationMs": 170
},
{
"name": "dunning-plan",
"status": "ok",
"summary": "blocked: invoices unreadable",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.escalate:blocked",
"kind": "slack.escalate",
"provider": "slack",
"agent": "dunning-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"blocked": true
},
"attempts": 1,
"ref": "17LEMA0B87.HF7QYY",
"appliedAt": "2026-10-22T18:56:34.706Z",
"reconciled": null
}
],
"counts": {
"applied": 1,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": null,
"output": {
"mode": "blocked",
"invoices": 0,
"steps": [],
"skipped": []
},
"events": [
{
"at": "2026-10-22T18:56:34.349Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T18:56:34.522Z",
"msg": "agents: invoice-check=failed"
},
{
"at": "2026-10-22T18:56:34.524Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T18:56:34.706Z",
"msg": "slack.escalate:blocked: applied"
},
{
"at": "2026-10-22T18:56:34.707Z",
"msg": "done (partial)"
}
],
"createdAt": "2026-10-22T18:56:34.349Z",
"updatedAt": "2026-10-22T18:56:34.707Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/unknown_invoice_contacts_nobody/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/unknown_invoice_contacts_nobody/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
04POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "unknown-invoice-contacts-nobody-vr_243352f82fcf4575922b792da8a81865",
"input": {
"stage": "payment_failed",
"invoiceId": "in_doesnotexist0000",
"financeChannel": "C0BILLING01",
"approvers": [
"U_CONTROLLER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "unknown_invoice_contacts_nobody"
}
}Server returned
HTTP 200
{
"runId": "unknown-invoice-contacts-nobody-vr_243352f82fcf4575922b792da8a81865",
"workflow": "failed-payment-dunning",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "Finance",
"team": "billing-ops",
"phase": "DONE",
"closed": true,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "unknown_invoice_contacts_nobody"
},
"duplicateStarts": 1,
"agents": [
{
"name": "invoice-check",
"status": "failed",
"error": "stripe 404 resource_missing: GET /v1/invoices/in_doesnotexist0000 → 404 resource_missing",
"errorCode": "stripe:resource_missing",
"durationMs": 170
},
{
"name": "dunning-plan",
"status": "ok",
"summary": "blocked: invoices unreadable",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.escalate:blocked",
"kind": "slack.escalate",
"provider": "slack",
"agent": "dunning-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"blocked": true
},
"attempts": 1,
"ref": "17LEMA0B87.HF7QYY",
"appliedAt": "2026-10-22T18:56:34.706Z",
"reconciled": null
}
],
"counts": {
"applied": 1,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": null,
"output": {
"mode": "blocked",
"invoices": 0,
"steps": [],
"skipped": []
},
"events": [
{
"at": "2026-10-22T18:56:34.349Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T18:56:34.522Z",
"msg": "agents: invoice-check=failed"
},
{
"at": "2026-10-22T18:56:34.524Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T18:56:34.706Z",
"msg": "slack.escalate:blocked: applied"
},
{
"at": "2026-10-22T18:56:34.707Z",
"msg": "done (partial)"
},
{
"at": "2026-10-22T18:56:35.291Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-22T18:56:34.349Z",
"updatedAt": "2026-10-22T18:56:35.291Z",
"duplicate": true
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "369",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "unknown-invoice-contacts-nobody-vr_243352f82fcf4575922b792da8a81865",
"input": {
"stage": "payment_failed",
"invoiceId": "in_doesnotexist0000",
"financeChannel": "C0BILLING01",
"approvers": [
"U_CONTROLLER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "unknown_invoice_contacts_nobody"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
05GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/unknown_invoice_contacts_nobody/runs200
We sent
GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/unknown_invoice_contacts_nobody/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "unknown-invoice-contacts-nobody-vr_243352f82fcf4575922b792da8a81865",
"workflow": "failed-payment-dunning",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "Finance",
"team": "billing-ops",
"phase": "DONE",
"closed": true,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "unknown_invoice_contacts_nobody"
},
"duplicateStarts": 1,
"agents": [
{
"name": "invoice-check",
"status": "failed",
"error": "stripe 404 resource_missing: GET /v1/invoices/in_doesnotexist0000 → 404 resource_missing",
"errorCode": "stripe:resource_missing",
"durationMs": 170
},
{
"name": "dunning-plan",
"status": "ok",
"summary": "blocked: invoices unreadable",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.escalate:blocked",
"kind": "slack.escalate",
"provider": "slack",
"agent": "dunning-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"blocked": true
},
"attempts": 1,
"ref": "17LEMA0B87.HF7QYY",
"appliedAt": "2026-10-22T18:56:34.706Z",
"reconciled": null
}
],
"counts": {
"applied": 1,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": null,
"output": {
"mode": "blocked",
"invoices": 0,
"steps": [],
"skipped": []
},
"events": [
{
"at": "2026-10-22T18:56:34.349Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T18:56:34.522Z",
"msg": "agents: invoice-check=failed"
},
{
"at": "2026-10-22T18:56:34.524Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T18:56:34.706Z",
"msg": "slack.escalate:blocked: applied"
},
{
"at": "2026-10-22T18:56:34.707Z",
"msg": "done (partial)"
},
{
"at": "2026-10-22T18:56:35.291Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-22T18:56:34.349Z",
"updatedAt": "2026-10-22T18:56:35.291Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/unknown_invoice_contacts_nobody/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/unknown_invoice_contacts_nobody/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Evidence
- Run
vr_243352f82fcf4575922b792da8a81865- App version (declared)
acme-ops-failed-payment-dunn…- Source receipt
- Source receipt ↗
Technical reference
unknown_invoice_contacts_nobodyApp version (declared): acme-ops-failed-payment-dunning-1.0.0-4ac41d8
An invoice Stripe doesn't know contacts nobody and alerts finance
expected exactly 1, found 1; stable under 2 repeats (1)
- Verification covers the declared HTTP actions and state reads in this run.
- The app version shown was supplied by the app itself, not independently checked.
- Passing all checks in this run does not certify the whole app as production-ready.
- The verifier session does not survive a restart. This says nothing about the durability of the app under test.
- App state shown here is what the app's own endpoint reported. It is not independently checked against the database.
Provider traffic in the same time window (2)
These calls were recorded during the same request window as this check but are not directly linked to it. Timing alone is not proof that they caused or were caused by this check.
stripe · GET /v1/invoices/in_doesnotexist0000 · HTTP 404
We sent
GET /v1/invoices/in_doesnotexist0000
No body shown for this read.
Server returned
HTTP 404
{
"error": {
"type": "invalid_request_error",
"code": "resource_missing",
"doc_url": "https://stripe.com/docs/error-codes/resource-missing",
"message": "Resource in_doesnotexist0000 not found"
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/198897286c/v1/invoices/in_doesnotexist0000
{
"host": "fetchsandbox.com",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/invoices/in_doesnotexist0000' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
slack · POST /api/chat.postMessage · HTTP 200
We sent
POST /api/chat.postMessage
{
"channel": "C0BILLING01",
"text": ":rotating_light: Dunning payment_failed: invoices could not be read; no customer was contacted.",
"unfurl_links": false,
"unfurl_media": false
}Server returned
HTTP 200
{
"channel": "C0BILLING01",
"message": {
"bot_id": "bot_b5c05ea7034d42188f6c36c21c",
"client_msg_id": "cli_272e05e4f4484f40b7ba4468c4",
"name": "item-fc96d3",
"old_name": "Sample Old",
"parent_user_id": "par_6aa768a979f440c684f062e955",
"permalink": "my-resource",
"reply_count": 0,
"reply_users_count": 0,
"text": "Sample text content",
"ts": "sample-value",
"type": "default",
"unread_count": 0,
"username": "acme-corp"
},
"ok": true,
"ts": "17LEMA0B87.HF7QYY"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/e495c5e124/api/chat.postMessage
{
"host": "fetchsandbox.com",
"content-length": "172",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"content-type": "application/json; charset=utf-8"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/e495c5e124/api/chat.postMessage' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \
--header 'content-type: application/json; charset=utf-8' \
--data-raw '{
"channel": "C0BILLING01",
"text": ":rotating_light: Dunning payment_failed: invoices could not be read; no customer was contacted.",
"unfurl_links": false,
"unfurl_media": false
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Without Stripe nobody is contacted and finance is alerted
stripe_auth_failureWhat we probed
Without Stripe nobody is contacted and finance is alerted
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
Declared stripe fault: auth_failure.
POST /invocations
Expected vs actual
- Expected
- Without Stripe nobody is contacted and finance is alerted
- Actual
- expected exactly 1, found 1; stable under 2 repeats (1)
Requests and responses
01GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/stripe_auth_failure/runs200
We sent
GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/stripe_auth_failure/runs
This request had no body.
Server returned
HTTP 200
{
"runs": []
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/stripe_auth_failure/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/stripe_auth_failure/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
02POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "stripe-auth-failure-vr_243352f82fcf4575922b792da8a81865",
"input": {
"stage": "payment_failed",
"invoiceId": "in_J0ZXEQDTWMVHKUYO1F0Z884W",
"financeChannel": "C0BILLING01",
"approvers": [
"U_CONTROLLER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "stripe_auth_failure"
}
}Server returned
HTTP 200
{
"runId": "stripe-auth-failure-vr_243352f82fcf4575922b792da8a81865",
"workflow": "failed-payment-dunning",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "Finance",
"team": "billing-ops",
"phase": "DONE",
"closed": true,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "stripe_auth_failure"
},
"duplicateStarts": 0,
"agents": [
{
"name": "invoice-check",
"status": "failed",
"error": "stripe 401 authentication_required: GET /v1/invoices/in_J0ZXEQDTWMVHKUYO1F0Z884W → 401 authentication_required",
"errorCode": "stripe:authentication_required",
"durationMs": 172
},
{
"name": "dunning-plan",
"status": "ok",
"summary": "blocked: invoices unreadable",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.escalate:blocked",
"kind": "slack.escalate",
"provider": "slack",
"agent": "dunning-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"blocked": true
},
"attempts": 1,
"ref": "17FCZ1GKQY.0G9QXV",
"appliedAt": "2026-10-22T18:56:36.564Z",
"reconciled": null
}
],
"counts": {
"applied": 1,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": null,
"output": {
"mode": "blocked",
"invoices": 0,
"steps": [],
"skipped": []
},
"events": [
{
"at": "2026-10-22T18:56:36.146Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T18:56:36.320Z",
"msg": "agents: invoice-check=failed"
},
{
"at": "2026-10-22T18:56:36.323Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T18:56:36.564Z",
"msg": "slack.escalate:blocked: applied"
},
{
"at": "2026-10-22T18:56:36.565Z",
"msg": "done (partial)"
}
],
"createdAt": "2026-10-22T18:56:36.146Z",
"updatedAt": "2026-10-22T18:56:36.565Z",
"duplicate": false
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "353",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "stripe-auth-failure-vr_243352f82fcf4575922b792da8a81865",
"input": {
"stage": "payment_failed",
"invoiceId": "in_J0ZXEQDTWMVHKUYO1F0Z884W",
"financeChannel": "C0BILLING01",
"approvers": [
"U_CONTROLLER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "stripe_auth_failure"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
03stripe · GET /v1/invoices/in_J0ZXEQDTWMVHKUYO1F0Z884W401
We sent
GET /v1/invoices/in_J0ZXEQDTWMVHKUYO1F0Z884W
No body shown for this read.
Server returned
HTTP 401
{
"error": {
"type": "invalid_request_error",
"code": "authentication_required",
"doc_url": "https://stripe.com/docs/error-codes/authentication-required",
"message": "Invalid API key provided. You did not provide a valid API key. Ensure your Authorization header contains a valid Bearer token."
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
{
"host": "fetchsandbox.com",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET '<STRIPE_TWIN_BASE_URL>/v1/invoices/in_J0ZXEQDTWMVHKUYO1F0Z884W' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
04GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/stripe_auth_failure/runs200
We sent
GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/stripe_auth_failure/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "stripe-auth-failure-vr_243352f82fcf4575922b792da8a81865",
"workflow": "failed-payment-dunning",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "Finance",
"team": "billing-ops",
"phase": "DONE",
"closed": true,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "stripe_auth_failure"
},
"duplicateStarts": 0,
"agents": [
{
"name": "invoice-check",
"status": "failed",
"error": "stripe 401 authentication_required: GET /v1/invoices/in_J0ZXEQDTWMVHKUYO1F0Z884W → 401 authentication_required",
"errorCode": "stripe:authentication_required",
"durationMs": 172
},
{
"name": "dunning-plan",
"status": "ok",
"summary": "blocked: invoices unreadable",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.escalate:blocked",
"kind": "slack.escalate",
"provider": "slack",
"agent": "dunning-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"blocked": true
},
"attempts": 1,
"ref": "17FCZ1GKQY.0G9QXV",
"appliedAt": "2026-10-22T18:56:36.564Z",
"reconciled": null
}
],
"counts": {
"applied": 1,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": null,
"output": {
"mode": "blocked",
"invoices": 0,
"steps": [],
"skipped": []
},
"events": [
{
"at": "2026-10-22T18:56:36.146Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T18:56:36.320Z",
"msg": "agents: invoice-check=failed"
},
{
"at": "2026-10-22T18:56:36.323Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T18:56:36.564Z",
"msg": "slack.escalate:blocked: applied"
},
{
"at": "2026-10-22T18:56:36.565Z",
"msg": "done (partial)"
}
],
"createdAt": "2026-10-22T18:56:36.146Z",
"updatedAt": "2026-10-22T18:56:36.565Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/stripe_auth_failure/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/stripe_auth_failure/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
05POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "stripe-auth-failure-vr_243352f82fcf4575922b792da8a81865",
"input": {
"stage": "payment_failed",
"invoiceId": "in_J0ZXEQDTWMVHKUYO1F0Z884W",
"financeChannel": "C0BILLING01",
"approvers": [
"U_CONTROLLER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "stripe_auth_failure"
}
}Server returned
HTTP 200
{
"runId": "stripe-auth-failure-vr_243352f82fcf4575922b792da8a81865",
"workflow": "failed-payment-dunning",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "Finance",
"team": "billing-ops",
"phase": "DONE",
"closed": true,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "stripe_auth_failure"
},
"duplicateStarts": 1,
"agents": [
{
"name": "invoice-check",
"status": "failed",
"error": "stripe 401 authentication_required: GET /v1/invoices/in_J0ZXEQDTWMVHKUYO1F0Z884W → 401 authentication_required",
"errorCode": "stripe:authentication_required",
"durationMs": 172
},
{
"name": "dunning-plan",
"status": "ok",
"summary": "blocked: invoices unreadable",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.escalate:blocked",
"kind": "slack.escalate",
"provider": "slack",
"agent": "dunning-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"blocked": true
},
"attempts": 1,
"ref": "17FCZ1GKQY.0G9QXV",
"appliedAt": "2026-10-22T18:56:36.564Z",
"reconciled": null
}
],
"counts": {
"applied": 1,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": null,
"output": {
"mode": "blocked",
"invoices": 0,
"steps": [],
"skipped": []
},
"events": [
{
"at": "2026-10-22T18:56:36.146Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T18:56:36.320Z",
"msg": "agents: invoice-check=failed"
},
{
"at": "2026-10-22T18:56:36.323Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T18:56:36.564Z",
"msg": "slack.escalate:blocked: applied"
},
{
"at": "2026-10-22T18:56:36.565Z",
"msg": "done (partial)"
},
{
"at": "2026-10-22T18:56:37.120Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-22T18:56:36.146Z",
"updatedAt": "2026-10-22T18:56:37.120Z",
"duplicate": true
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "353",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "stripe-auth-failure-vr_243352f82fcf4575922b792da8a81865",
"input": {
"stage": "payment_failed",
"invoiceId": "in_J0ZXEQDTWMVHKUYO1F0Z884W",
"financeChannel": "C0BILLING01",
"approvers": [
"U_CONTROLLER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "stripe_auth_failure"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
06GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/stripe_auth_failure/runs200
We sent
GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/stripe_auth_failure/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "stripe-auth-failure-vr_243352f82fcf4575922b792da8a81865",
"workflow": "failed-payment-dunning",
"metadata": {
"organization": "Acme",
"company": "Acme Corporation",
"environment": "unconfigured",
"owner": "unassigned",
"department": "unassigned",
"ownerTeam": "unassigned",
"oncall": "unassigned",
"version": "unversioned",
"sourceCommit": "unrecorded"
},
"org": "Finance",
"team": "billing-ops",
"phase": "DONE",
"closed": true,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "stripe_auth_failure"
},
"duplicateStarts": 1,
"agents": [
{
"name": "invoice-check",
"status": "failed",
"error": "stripe 401 authentication_required: GET /v1/invoices/in_J0ZXEQDTWMVHKUYO1F0Z884W → 401 authentication_required",
"errorCode": "stripe:authentication_required",
"durationMs": 172
},
{
"name": "dunning-plan",
"status": "ok",
"summary": "blocked: invoices unreadable",
"durationMs": 0
}
],
"actions": [
{
"id": "slack.escalate:blocked",
"kind": "slack.escalate",
"provider": "slack",
"agent": "dunning-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"blocked": true
},
"attempts": 1,
"ref": "17FCZ1GKQY.0G9QXV",
"appliedAt": "2026-10-22T18:56:36.564Z",
"reconciled": null
}
],
"counts": {
"applied": 1,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0,
"scheduled": 0,
"awaitingSignal": 0,
"compensated": 0
},
"wakeAt": null,
"audit": null,
"output": {
"mode": "blocked",
"invoices": 0,
"steps": [],
"skipped": []
},
"events": [
{
"at": "2026-10-22T18:56:36.146Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-22T18:56:36.320Z",
"msg": "agents: invoice-check=failed"
},
{
"at": "2026-10-22T18:56:36.323Z",
"msg": "planned 1 action(s): 0 need approval"
},
{
"at": "2026-10-22T18:56:36.564Z",
"msg": "slack.escalate:blocked: applied"
},
{
"at": "2026-10-22T18:56:36.565Z",
"msg": "done (partial)"
},
{
"at": "2026-10-22T18:56:37.120Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-22T18:56:36.146Z",
"updatedAt": "2026-10-22T18:56:37.120Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/stripe_auth_failure/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/stripe_auth_failure/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Evidence
- Run
vr_243352f82fcf4575922b792da8a81865- App version (declared)
acme-ops-failed-payment-dunn…- Source receipt
- Source receipt ↗
Technical reference
stripe_auth_failureApp version (declared): acme-ops-failed-payment-dunning-1.0.0-4ac41d8
Without Stripe nobody is contacted and finance is alerted
expected exactly 1, found 1; stable under 2 repeats (1)
- Verification covers the declared HTTP actions and state reads in this run.
- The app version shown was supplied by the app itself, not independently checked.
- Passing all checks in this run does not certify the whole app as production-ready.
- The verifier session does not survive a restart. This says nothing about the durability of the app under test.
- App state shown here is what the app's own endpoint reported. It is not independently checked against the database.
Provider traffic in the same time window (2)
These calls were recorded during the same request window as this check but are not directly linked to it. Timing alone is not proof that they caused or were caused by this check.
stripe · GET /v1/invoices/in_J0ZXEQDTWMVHKUYO1F0Z884W · HTTP 401
We sent
GET /v1/invoices/in_J0ZXEQDTWMVHKUYO1F0Z884W
No body shown for this read.
Server returned
HTTP 401
{
"error": {
"type": "invalid_request_error",
"code": "authentication_required",
"doc_url": "https://stripe.com/docs/error-codes/authentication-required",
"message": "Invalid API key provided. You did not provide a valid API key. Ensure your Authorization header contains a valid Bearer token."
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/198897286c/v1/invoices/in_J0ZXEQDTWMVHKUYO1F0Z884W
{
"host": "fetchsandbox.com",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/invoices/in_J0ZXEQDTWMVHKUYO1F0Z884W' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
slack · POST /api/chat.postMessage · HTTP 200
We sent
POST /api/chat.postMessage
{
"channel": "C0BILLING01",
"text": ":rotating_light: Dunning payment_failed: invoices could not be read; no customer was contacted.",
"unfurl_links": false,
"unfurl_media": false
}Server returned
HTTP 200
{
"channel": "C0BILLING01",
"message": {
"bot_id": "bot_8b350f54a78749d6b50183e96c",
"client_msg_id": "cli_0ff95ea841b34493a39946a2b9",
"name": "item-d915ad",
"old_name": "Sample Old",
"parent_user_id": "par_6b7b0bbd2b56491e99484e8ee0",
"permalink": "my-resource",
"reply_count": 0,
"reply_users_count": 0,
"text": "Sample text content",
"ts": "sample-value",
"type": "default",
"unread_count": 0,
"username": "acme-corp"
},
"ok": true,
"ts": "17FCZ1GKQY.0G9QXV"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/e495c5e124/api/chat.postMessage
{
"host": "fetchsandbox.com",
"content-length": "172",
"user-agent": "node",
"accept": "application/json",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"content-type": "application/json; charset=utf-8"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/e495c5e124/api/chat.postMessage' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \
--header 'content-type: application/json; charset=utf-8' \
--data-raw '{
"channel": "C0BILLING01",
"text": ":rotating_light: Dunning payment_failed: invoices could not be read; no customer was contacted.",
"unfurl_links": false,
"unfurl_media": false
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
A malformed invoice id is rejected before any agent runs
invalid_input_rejectedWhat we probed
A malformed invoice id is rejected before any agent runs
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocations
Expected vs actual
- Expected
- A malformed invoice id is rejected before any agent runs
- Actual
- expected exactly 0, found 0; stable under 2 repeats (0)
Requests and responses
01GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/invalid_input_rejected/runs200
We sent
GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/invalid_input_rejected/runs
This request had no body.
Server returned
HTTP 200
{
"runs": []
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/invalid_input_rejected/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/invalid_input_rejected/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
02POST /invocations400
We sent
POST /invocations
{
"action": "start",
"runId": "invalid-input-rejected-vr_243352f82fcf4575922b792da8a81865",
"input": {
"stage": "payment_failed",
"invoiceId": "ch_123",
"financeChannel": "C0BILLING01",
"approvers": [
"U_CONTROLLER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "invalid_input_rejected"
}
}Server returned
HTTP 400
{
"error": "invalid input",
"issues": [
"invoiceId: Invalid string: must match pattern /^in_\\w+$/"
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "338",
"content-type": "application/json"
}{
"content-type": "application/json",
"content-length": "96"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "invalid-input-rejected-vr_243352f82fcf4575922b792da8a81865",
"input": {
"stage": "payment_failed",
"invoiceId": "ch_123",
"financeChannel": "C0BILLING01",
"approvers": [
"U_CONTROLLER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "invalid_input_rejected"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
03GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/invalid_input_rejected/runs200
We sent
GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/invalid_input_rejected/runs
This request had no body.
Server returned
HTTP 200
{
"runs": []
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/invalid_input_rejected/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/invalid_input_rejected/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
04POST /invocations400
We sent
POST /invocations
{
"action": "start",
"runId": "invalid-input-rejected-vr_243352f82fcf4575922b792da8a81865",
"input": {
"stage": "payment_failed",
"invoiceId": "ch_123",
"financeChannel": "C0BILLING01",
"approvers": [
"U_CONTROLLER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "invalid_input_rejected"
}
}Server returned
HTTP 400
{
"error": "invalid input",
"issues": [
"invoiceId: Invalid string: must match pattern /^in_\\w+$/"
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "338",
"content-type": "application/json"
}{
"content-type": "application/json",
"content-length": "96"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "invalid-input-rejected-vr_243352f82fcf4575922b792da8a81865",
"input": {
"stage": "payment_failed",
"invoiceId": "ch_123",
"financeChannel": "C0BILLING01",
"approvers": [
"U_CONTROLLER"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_243352f82fcf4575922b792da8a81865",
"fs_case": "invalid_input_rejected"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
05GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/invalid_input_rejected/runs200
We sent
GET /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/invalid_input_rejected/runs
This request had no body.
Server returned
HTTP 200
{
"runs": []
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/invalid_input_rejected/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/invalid_input_rejected/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Evidence
- Run
vr_243352f82fcf4575922b792da8a81865- App version (declared)
acme-ops-failed-payment-dunn…- Source receipt
- Source receipt ↗
Technical reference
invalid_input_rejectedApp version (declared): acme-ops-failed-payment-dunning-1.0.0-4ac41d8
A malformed invoice id is rejected before any agent runs
expected exactly 0, found 0; stable under 2 repeats (0)
- Verification covers the declared HTTP actions and state reads in this run.
- The app version shown was supplied by the app itself, not independently checked.
- Passing all checks in this run does not certify the whole app as production-ready.
- The verifier session does not survive a restart. This says nothing about the durability of the app under test.
- App state shown here is what the app's own endpoint reported. It is not independently checked against the database.
Run details
Run vr_243352f82fcf4575922b792da8a81865
10 required checks for the declared application workflow. Results apply to the recorded observation windows.
5 passed · 3 failed · 2 not checked
Coverage beyond the declared checks
Passing these checks does not establish every production behavior.
- Normal successful behavior · Linked checks passed · baseline
- The right user gets the right access · Proposed as not applicable
- Valid data and boundary values · Linked checks passed · invalid_input_rejected, unknown_invoice_contacts_nobody
- Correct amount, currency and quantity · Not checked · second_failure_tries_backup_card
- Duplicate requests and events · Linked check failed · repeated_failure_no_second_notice
- Requests arriving together · Proposed as not applicable
- Out-of-order and stale events · Linked check failed · paid_invoice_contacts_nobody, repeated_failure_no_second_notice
- Delayed or missing events · Linked check failed · final_notice_after_14_days, cancellation_needs_approval
- Provider authentication and permissions · Linked checks passed · stripe_auth_failure
- Rate limits, server failures and timeouts · Linked checks passed · stripe_auth_failure
- Completed action with a lost response · Proposed as not applicable
- Partial completion and recovery · Not checked · second_failure_tries_backup_card
- Restart without losing or duplicating work · Proposed as not applicable
- Finding and repairing inconsistent state · Proposed as not applicable
- Cancellation, refunds and access · Linked check failed · cancellation_needs_approval
- Data ownership and privacy · Proposed as not applicable
- Test isolation and cleanup · Linked checks passed · baseline
Applicability comes from the proposed plan. Test results come from the recorded execution.
App version: acme-ops-failed-payment-dunning-1.0.0-4ac41d8 (declared)
Measured run: 2026-10-22T18:56:13.778941+00:00 – 2026-10-22T18:56:38.998181+00:00
Recorded execution
Recorded application requests and state reads for the declared HTTP contract.
The timeline below merges all requests from this run, sorted by recorded timestamp.
Recorded requests and deliveries: 88/95 successful · checkpoints: 8/10 recorded
Why checks are unmeasured
- first_failure_card_update_notice: required observation 'attempt_count' is missing
- second_failure_tries_backup_card: required observation 'attempt_count' is missing
Sanitized request and event timeline (93 events)
- · GET app request /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/baseline/runs · baseline · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/baseline/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:14.080024+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json", "content-length": "11" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [] } - · POST app request /invocations · baseline · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "baseline-vr_243352f82fcf4575922b792da8a81865", "input": { "stage": "sweep", "customers": [ "[email protected]" ], "financeChannel": "C0BILLING01", "approvers": [ "U_CONTROLLER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "baseline" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:16.605119+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "329", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "baseline-vr_243352f82fcf4575922b792da8a81865", "input": { "stage": "sweep", "customers": [ "[email protected]" ], "financeChannel": "C0BILLING01", "approvers": [ "U_CONTROLLER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "baseline" } }Recorded response · HTTP 200
{ "runId": "baseline-vr_243352f82fcf4575922b792da8a81865", "workflow": "failed-payment-dunning", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "Finance", "team": "billing-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "baseline" }, "duplicateStarts": 0, "agents": [ { "name": "invoice-check", "status": "ok", "summary": "1 invoice(s), 1 open", "durationMs": 1183 }, { "name": "dunning-plan", "status": "ok", "summary": "1 step(s) due", "durationMs": 0 } ], "actions": [ { "id": "gmail.draft_final_notice:b7fb0ca22f", "kind": "gmail.draft_notice", "provider": "gmail", "agent": "dunning-plan", "gate": "auto", "status": "applied", "summary": { "invoice": "in_6SBPHSM12A00QSSMX9S69ZEM", "step": "final_notice", "sent": false }, "attempts": 1, "ref": "r1286141135367425", "appliedAt": "2026-10-22T18:56:16.242Z", "reconciled": null }, { "id": "stripe.record_step:in_6SBPHSM12A00QSSMX9S69ZEM", "kind": "stripe.record_step", "provider": "stripe", "agent": "dunning-plan", "gate": "auto", "status": "applied", "summary": { "invoice": "in_6SBPHSM12A00QSSMX9S69ZEM", "step": "final_notice" }, "attempts": 1, "ref": "cus_9H4EI7H2QMIJEIHW", "detail": { "step": "final_notice" }, "appliedAt": "2026-10-22T18:56:16.457Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": null, "output": { "mode": "dunning", "invoices": 1, "steps": [ "in_6SBPHSM12A00QSSMX9S69ZEM:final_notice" ], "skipped": [] }, "events": [ { "at": "2026-10-22T18:56:14.203Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T18:56:15.387Z", "msg": "agents: invoice-check=ok" }, { "at": "2026-10-22T18:56:15.411Z", "msg": "planned 2 action(s): 0 need approval" }, { "at": "2026-10-22T18:56:16.243Z", "msg": "gmail.draft_final_notice:b7fb0ca22f: applied" }, { "at": "2026-10-22T18:56:16.457Z", "msg": "stripe.record_step:in_6SBPHSM12A00QSSMX9S69ZEM: applied" }, { "at": "2026-10-22T18:56:16.458Z", "msg": "done (ok)" } ], "createdAt": "2026-10-22T18:56:14.203Z", "updatedAt": "2026-10-22T18:56:16.458Z", "duplicate": false } - · GET stripe request · provider traffic · /v1/customers · HTTP 200 · request 339e0d2c96fe · processing 15.55ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/customers' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 15.55ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [ { "email": "[email protected]", "name": "Dana Billing", "id": "cus_9H4EI7H2QMIJEIHW", "address": null, "balance": 0, "business_name": "Sample Business", "cash_balance": null, "created": 60, "currency": "USD", "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "individual_name": "Sample Individual", "invoice_prefix": null, "livemode": false, "object": "customer", "phone": "+14155550100", "preferred_locales": null, "shipping": null, "tax_exempt": "exempt", "test_clock": null } ], "has_more": false, "object": "list", "url": "/v1/customers" } - · GET stripe request · provider traffic · /v1/invoices · HTTP 200 · request 64b30a712bf5 · processing 286.03ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/invoices' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 286.03ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [ { "object": "invoice", "parent": { "type": "subscription_details", "subscription_details": { "subscription": "sub_62DJCPKGKNJT4RRSQH5X568M", "metadata": {} } }, "customer": "cus_9H4EI7H2QMIJEIHW", "currency": "usd", "total": 60000, "amount_due": 60000, "amount_paid": 0, "amount_remaining": 60000, "status": "open", "created": 1792695266, "id": "in_6SBPHSM12A00QSSMX9S69ZEM", "payments": { "object": "list", "data": [ { "id": "inpay_DCW2Z8RE00V87VLKO3G0LXJE", "object": "invoice_payment", "invoice": "in_6SBPHSM12A00QSSMX9S69ZEM", "amount_requested": 60000, "amount_paid": null, "currency": "usd", "created": 1792695266, "is_default": true, "livemode": false, "status": "open", "status_transitions": { "paid_at": null, "canceled_at": null }, "payment": { "type": "payment_intent", "payment_intent": "pi_51EUBMNU08KD65J9DHYTWBEI" } } ], "has_more": false, "url": "/v1/invoice_payments?invoice=in_6SBPHSM12A00QSSMX9S69ZEM" }, "amount_overpaid": 91, "amount_shipping": 57, "attempt_count": 19, "attempted": true, "auto_advance": true, "automatic_tax": { "disabled_reason": "finalization_requires_location_inputs", "enabled": true, "provider": "default", "status": "complete" }, "collection_method": "charge_automatically", "default_tax_rates": [ { "active": true, "country": "US", "created": 0, "display_name": "Item 283", "id": "obj_33b6feb3949e4195877e17b13f", "inclusive": true, "jurisdiction_level": "city", "livemode": false, "object": "tax_rate", "percentage": 107.2205, "rate_type": "flat_amount", "tax_type": "amusement_tax" } ], "discounts": [ "sample-value" ], "issuer": { "type": "account" }, "lines": { "data": [ { "amount": 92, "currency": "USD", "discountable": true, "discounts": [ "sample-value" ], "id": "obj_c3196cda93084567a36d788b0c", "livemode": false, "metadata": {}, "object": "line_item", "period": { "end": 50, "start": 11 }, "subtotal": 84 } ], "has_more": true, "object": "list", "url": "https://example.com/c9a081a8" }, "livemode": true, "payment_settings": { "default_mandate": "sample-value", "payment_method_options": { "acss_debit": { "mandate_options": { "transaction_type": "business" }, "verification_method": "automatic" }, "bancontact": { "preferred_language": "de" }, "card": { "installments": { "enabled": true }, "request_three_d_secure": "any" }, "customer_balance": { "bank_transfer": { "eu_bank_transfer": { "country": "US" }, "type": "default" }, "funding_type": "bank_transfer" }, "konbini": {}, "payto": { "mandate_options": { "amount": 78, "amount_type": "fixed", "purpose": "dependant_support" } }, "sepa_debit": {}, "us_bank_account": { "financial_connections": { "filters": { "account_subcategories": [ "checking" ] }, "permissions": [ "balances" ], "prefetch": [ "balances" ] }, "verification_method": "automatic" } }, "payment_method_types": [ "ach_credit_transfer" ] }, "period_end": 67, "period_start": 73, "post_payment_credit_notes_amount": 20, "pre_payment_credit_notes_amount": 54, "starting_balance": 66, "status_transitions": { "finalized_at": 16, "marked_uncollectible_at": 59, "paid_at": 27, "voided_at": 91 }, "subtotal": 40, "account_country": null, "account_name": null, "account_tax_ids": null, "application": null, "automatically_finalizes_at": null, "billing_reason": null, "confirmation_secret": "[redacted]", "custom_fields": null, "customer_account": null, "customer_address": null, "customer_email": null, "customer_name": null, "customer_phone": null, "customer_shipping": null, "customer_tax_exempt": null, "customer_tax_ids": null, "default_payment_method": null, "default_source": null, "description": null, "due_date": null, "effective_at": null, "ending_balance": null, "footer": null, "from_invoice": null, "hosted_invoice_url": null, "invoice_pdf": null, "last_finalization_error": null, "latest_revision": null, "metadata": null, "next_payment_attempt": null, "number": null, "on_behalf_of": null, "receipt_number": null, "rendering": null, "shipping_cost": null, "shipping_details": null, "statement_descriptor": null, "subtotal_excluding_tax": null, "test_clock": null, "total_discount_amounts": null, "total_excluding_tax": null, "total_pretax_credit_amounts": null, "total_taxes": null, "webhooks_delivered_at": null } ], "has_more": false, "object": "list", "url": "/v1/invoices" } - · GET stripe request · provider traffic · /v1/customers/cus_9H4EI7H2QMIJEIHW · HTTP 200 · request ac7917cf0087 · processing 18.44ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/customers/cus_9H4EI7H2QMIJEIHW' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 18.44ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "address": null, "balance": 0, "business_name": "Sample Business", "cash_balance": null, "created": 60, "currency": "USD", "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "[email protected]", "id": "cus_9H4EI7H2QMIJEIHW", "individual_name": "Sample Individual", "invoice_prefix": null, "livemode": false, "name": "Dana Billing", "object": "customer", "phone": "+14155550100", "preferred_locales": null, "shipping": null, "tax_exempt": "exempt", "test_clock": null, "invoice_settings[default_payment_method]": "pm_card_chargeCustomerFail" } - · GET stripe request · provider traffic · /v1/payment_methods · HTTP 200 · request e4b42b3b0f07 · processing 2.63ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/payment_methods' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 2.63ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [], "has_more": false, "object": "list", "url": "/v1/payment_methods" } - · GET stripe request · provider traffic · /v1/invoices/in_6SBPHSM12A00QSSMX9S69ZEM · HTTP 200 · request 1dd3316e522c · processing 222.32ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/invoices/in_6SBPHSM12A00QSSMX9S69ZEM' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 222.32ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "account_country": null, "account_name": "Sample Account", "account_tax_ids": null, "amount_due": 60000, "amount_overpaid": 35, "amount_paid": 0, "amount_remaining": 60000, "amount_shipping": 14, "application": null, "attempt_count": 0, "attempted": true, "auto_advance": true, "automatic_tax": { "disabled_reason": "finalization_requires_location_inputs", "enabled": true, "liability": null, "provider": "default", "status": "complete" }, "automatically_finalizes_at": null, "billing_reason": "automatic_pending_invoice_item_invoice", "collection_method": "charge_automatically", "confirmation_secret": "[redacted]", "created": 1792695266, "currency": "usd", "custom_fields": null, "customer": "cus_9H4EI7H2QMIJEIHW", "customer_account": null, "customer_address": null, "customer_email": null, "customer_name": "Sample Customer", "customer_phone": null, "customer_shipping": null, "customer_tax_exempt": "exempt", "customer_tax_ids": null, "default_payment_method": null, "default_source": null, "default_tax_rates": [ { "active": true, "country": "US", "created": 79, "description": null, "display_name": "Item 345", "effective_percentage": null, "flat_amount": null, "id": "obj_095040b2d77b4a189019b13345", "inclusive": true, "jurisdiction": null, "jurisdiction_level": "city", "livemode": false, "metadata": null, "object": "tax_rate", "percentage": 339.3676, "rate_type": "flat_amount", "state": null, "tax_type": "amusement_tax" } ], "description": null, "discounts": [ "sample-value" ], "due_date": null, "effective_at": null, "ending_balance": null, "footer": null, "from_invoice": null, "hosted_invoice_url": "https://example.com/53e8fd6d", "id": "in_6SBPHSM12A00QSSMX9S69ZEM", "invoice_pdf": null, "issuer": { "type": "account" }, "last_finalization_error": null, "latest_revision": null, "lines": { "data": [ { "amount": 87, "currency": "USD", "description": null, "discount_amounts": null, "discountable": true, "discounts": [ "sample-value" ], "id": "obj_79d69aff8e384bcca6af9428b6", "invoice": null, "livemode": false, "metadata": {}, "object": "line_item", "parent": null, "period": { "end": 95, "start": 53 }, "pretax_credit_amounts": null, "pricing": null, "quantity": null, "subscription": null, "subtotal": 53, "taxes": null } ], "has_more": true, "object": "list", "url": "https://example.com/fd09241e" }, "livemode": false, "metadata": null, "next_payment_attempt": null, "number": null, "object": "invoice", "on_behalf_of": null, "parent": { "type": "subscription_details", "subscription_details": { "subscription": "sub_62DJCPKGKNJT4RRSQH5X568M", "metadata": {} } }, "payment_settings": { "default_mandate": "sample-value", "payment_method_options": { "acss_debit": { "mandate_options": "sample-value", "verification_method": "automatic" }, "bancontact": { "preferred_language": "de" }, "card": { "installments": "sample-value", "request_three_d_secure": "any" }, "customer_balance": { "bank_transfer": "sample-value", "funding_type": "bank_transfer" }, "konbini": {}, "payto": { "mandate_options": "sample-value" }, "sepa_debit": {}, "us_bank_account": { "financial_connections": "sample-value", "verification_method": "automatic" } }, "payment_method_types": [ "ach_credit_transfer" ] }, "period_end": 36, "period_start": 0, "post_payment_credit_notes_amount": 37, "pre_payment_credit_notes_amount": 5, "receipt_number": null, "rendering": null, "shipping_cost": null, "shipping_details": null, "starting_balance": 7, "statement_descriptor": null, "status": "open", "status_transitions": { "finalized_at": 69, "marked_uncollectible_at": 72, "paid_at": 20, "voided_at": 34 }, "subtotal": 8, "subtotal_excluding_tax": null, "test_clock": null, "total": 60000, "total_discount_amounts": null, "total_excluding_tax": null, "total_pretax_credit_amounts": null, "total_taxes": null, "webhooks_delivered_at": null, "payments": { "object": "list", "data": [ { "id": "inpay_DCW2Z8RE00V87VLKO3G0LXJE", "object": "invoice_payment", "invoice": "in_6SBPHSM12A00QSSMX9S69ZEM", "amount_requested": 60000, "amount_paid": null, "currency": "usd", "created": 1792695266, "is_default": true, "livemode": false, "status": "open", "status_transitions": { "paid_at": null, "canceled_at": null }, "payment": { "type": "payment_intent", "payment_intent": "pi_51EUBMNU08KD65J9DHYTWBEI" } } ], "has_more": false, "url": "/v1/invoice_payments?invoice=in_6SBPHSM12A00QSSMX9S69ZEM" } } - · GET stripe request · provider traffic · /v1/customers/cus_9H4EI7H2QMIJEIHW · HTTP 200 · request 3c39e261e940 · processing 15.26ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/customers/cus_9H4EI7H2QMIJEIHW' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 15.26ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "address": null, "balance": 0, "business_name": "Sample Business", "cash_balance": null, "created": 60, "currency": "USD", "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "[email protected]", "id": "cus_9H4EI7H2QMIJEIHW", "individual_name": "Sample Individual", "invoice_prefix": null, "livemode": false, "name": "Dana Billing", "object": "customer", "phone": "+14155550100", "preferred_locales": null, "shipping": null, "tax_exempt": "exempt", "test_clock": null, "invoice_settings[default_payment_method]": "pm_card_chargeCustomerFail" } - · POST gmail request · provider traffic · /gmail/v1/users/me/drafts · HTTP 200 · request b9b8e2d13a0f · processing 12.31ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/caf533faa2/gmail/v1/users/me/drafts' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'content-type: application/json; charset=utf-8' \ --data-raw '{ "message": { "raw": "RnJvbTogbWUNClRvOiBkdW4tYmFzZWxpbmVAYmlsbGluZy5leGFtcGxlLmNvbQ0KU3ViamVjdDogRmluYWwgbm90aWNlOiAkNjAwLjAwIG92ZXJkdWUNCk1lc3NhZ2UtSUQ6IDxkMmM2ZWEzNzBmZTBiMDVkLmR1bm5pbmctZmluYWxfbm90aWNlLWI3ZmIwY2EyMmZAb3BzLmFjbWUuZXhhbXBsZT4NCk1JTUUtVmVyc2lvbjogMS4wDQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04Ig0KQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdA0KDQpIZWxsbywKCkludm9pY2UgaW5fNlNCUEhTTTEyQTAwUVNTTVg5UzY5WkVNIGZvciAkNjAwLjAwIGlzIG92ZXJkdWUuIElmIGl0IHN0YXlzIHVucGFpZCwgeW91ciBzdWJzY3JpcHRpb24gd2lsbCBiZSBjYW5jZWxsZWQgYWZ0ZXIgYSByZXZpZXcgYnkgb3VyIGJpbGxpbmcgdGVhbS4KCkFDTUUgQmlsbGluZw" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 12.31ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "608", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "content-type": "application/json; charset=utf-8" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "message": { "raw": "RnJvbTogbWUNClRvOiBkdW4tYmFzZWxpbmVAYmlsbGluZy5leGFtcGxlLmNvbQ0KU3ViamVjdDogRmluYWwgbm90aWNlOiAkNjAwLjAwIG92ZXJkdWUNCk1lc3NhZ2UtSUQ6IDxkMmM2ZWEzNzBmZTBiMDVkLmR1bm5pbmctZmluYWxfbm90aWNlLWI3ZmIwY2EyMmZAb3BzLmFjbWUuZXhhbXBsZT4NCk1JTUUtVmVyc2lvbjogMS4wDQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04Ig0KQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdA0KDQpIZWxsbywKCkludm9pY2UgaW5fNlNCUEhTTTEyQTAwUVNTTVg5UzY5WkVNIGZvciAkNjAwLjAwIGlzIG92ZXJkdWUuIElmIGl0IHN0YXlzIHVucGFpZCwgeW91ciBzdWJzY3JpcHRpb24gd2lsbCBiZSBjYW5jZWxsZWQgYWZ0ZXIgYSByZXZpZXcgYnkgb3VyIGJpbGxpbmcgdGVhbS4KCkFDTUUgQmlsbGluZw" } }Recorded response · HTTP 200
{ "message": { "raw": "RnJvbTogbWUNClRvOiBkdW4tYmFzZWxpbmVAYmlsbGluZy5leGFtcGxlLmNvbQ0KU3ViamVjdDogRmluYWwgbm90aWNlOiAkNjAwLjAwIG92ZXJkdWUNCk1lc3NhZ2UtSUQ6IDxkMmM2ZWEzNzBmZTBiMDVkLmR1bm5pbmctZmluYWxfbm90aWNlLWI3ZmIwY2EyMmZAb3BzLmFjbWUuZXhhbXBsZT4NCk1JTUUtVmVyc2lvbjogMS4wDQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04Ig0KQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdA0KDQpIZWxsbywKCkludm9pY2UgaW5fNlNCUEhTTTEyQTAwUVNTTVg5UzY5WkVNIGZvciAkNjAwLjAwIGlzIG92ZXJkdWUuIElmIGl0IHN0YXlzIHVucGFpZCwgeW91ciBzdWJzY3JpcHRpb24gd2lsbCBiZSBjYW5jZWxsZWQgYWZ0ZXIgYSByZXZpZXcgYnkgb3VyIGJpbGxpbmcgdGVhbS4KCkFDTUUgQmlsbGluZw", "payload": { "mimeType": "text/plain", "headers": [ { "name": "From", "value": "me" }, { "name": "To", "value": "[email protected]" }, { "name": "Subject", "value": "Final notice: $600.00 overdue" }, { "name": "Message-ID", "value": "<d2c6ea370fe0b05d.dunning-final_notice-b7fb0ca22f@ops.acme.example>" }, { "name": "MIME-Version", "value": "1.0" }, { "name": "Content-Type", "value": "text/plain; charset=\"UTF-8\"" }, { "name": "Content-Transfer-Encoding", "value": "8bit" } ], "body": { "size": 173, "data": "SGVsbG8sCgpJbnZvaWNlIGluXzZTQlBIU00xMkEwMFFTU01YOVM2OVpFTSBmb3IgJDYwMC4wMCBpcyBvdmVyZHVlLiBJZiBpdCBzdGF5cyB1bnBhaWQsIHlvdXIgc3Vic2NyaXB0aW9uIHdpbGwgYmUgY2FuY2VsbGVkIGFmdGVyIGEgcmV2aWV3IGJ5IG91ciBiaWxsaW5nIHRlYW0uCgpBQ01FIEJpbGxpbmc" } }, "sizeEstimate": 439, "labelIds": [ "DRAFT" ], "id": "1972144355a44809" }, "user_id": "me", "id": "r1286141135367425" } - · POST stripe request · provider traffic · /v1/customers/cus_9H4EI7H2QMIJEIHW · HTTP 200 · request 1b535db88f0f · processing 16.5ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/198897286c/v1/customers/cus_9H4EI7H2QMIJEIHW' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'content-type: application/x-www-form-urlencoded' \ --data-raw '{ "metadata": { "acme_dunning_in_6SBPHSM12A00QSSMX9S69ZEM": "final_notice" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 16.5ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "67", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "content-type": "application/x-www-form-urlencoded" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "metadata": { "acme_dunning_in_6SBPHSM12A00QSSMX9S69ZEM": "final_notice" } }Recorded response · HTTP 200
{ "email": "[email protected]", "name": "Dana Billing", "id": "cus_9H4EI7H2QMIJEIHW", "address": null, "balance": 0, "business_name": "Sample Business", "cash_balance": null, "created": 60, "currency": "USD", "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "individual_name": "Sample Individual", "invoice_prefix": null, "livemode": false, "object": "customer", "phone": "+14155550100", "preferred_locales": null, "shipping": null, "tax_exempt": "exempt", "test_clock": null, "invoice_settings[default_payment_method]": "pm_card_chargeCustomerFail", "metadata": { "acme_dunning_in_6SBPHSM12A00QSSMX9S69ZEM": "final_notice" } } - · GET app request /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/baseline/runs · baseline · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/baseline/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:16.955183+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "baseline-vr_243352f82fcf4575922b792da8a81865", "workflow": "failed-payment-dunning", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "Finance", "team": "billing-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "baseline" }, "duplicateStarts": 0, "agents": [ { "name": "invoice-check", "status": "ok", "summary": "1 invoice(s), 1 open", "durationMs": 1183 }, { "name": "dunning-plan", "status": "ok", "summary": "1 step(s) due", "durationMs": 0 } ], "actions": [ { "id": "gmail.draft_final_notice:b7fb0ca22f", "kind": "gmail.draft_notice", "provider": "gmail", "agent": "dunning-plan", "gate": "auto", "status": "applied", "summary": { "invoice": "in_6SBPHSM12A00QSSMX9S69ZEM", "step": "final_notice", "sent": false }, "attempts": 1, "ref": "r1286141135367425", "appliedAt": "2026-10-22T18:56:16.242Z", "reconciled": null }, { "id": "stripe.record_step:in_6SBPHSM12A00QSSMX9S69ZEM", "kind": "stripe.record_step", "provider": "stripe", "agent": "dunning-plan", "gate": "auto", "status": "applied", "summary": { "invoice": "in_6SBPHSM12A00QSSMX9S69ZEM", "step": "final_notice" }, "attempts": 1, "ref": "cus_9H4EI7H2QMIJEIHW", "detail": { "step": "final_notice" }, "appliedAt": "2026-10-22T18:56:16.457Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": null, "output": { "mode": "dunning", "invoices": 1, "steps": [ "in_6SBPHSM12A00QSSMX9S69ZEM:final_notice" ], "skipped": [] }, "events": [ { "at": "2026-10-22T18:56:14.203Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T18:56:15.387Z", "msg": "agents: invoice-check=ok" }, { "at": "2026-10-22T18:56:15.411Z", "msg": "planned 2 action(s): 0 need approval" }, { "at": "2026-10-22T18:56:16.243Z", "msg": "gmail.draft_final_notice:b7fb0ca22f: applied" }, { "at": "2026-10-22T18:56:16.457Z", "msg": "stripe.record_step:in_6SBPHSM12A00QSSMX9S69ZEM: applied" }, { "at": "2026-10-22T18:56:16.458Z", "msg": "done (ok)" } ], "createdAt": "2026-10-22T18:56:14.203Z", "updatedAt": "2026-10-22T18:56:16.458Z" } ] } - · POST app request /invocations · baseline · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "baseline-vr_243352f82fcf4575922b792da8a81865", "input": { "stage": "sweep", "customers": [ "[email protected]" ], "financeChannel": "C0BILLING01", "approvers": [ "U_CONTROLLER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "baseline" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:17.207937+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "329", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "baseline-vr_243352f82fcf4575922b792da8a81865", "input": { "stage": "sweep", "customers": [ "[email protected]" ], "financeChannel": "C0BILLING01", "approvers": [ "U_CONTROLLER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "baseline" } }Recorded response · HTTP 200
{ "runId": "baseline-vr_243352f82fcf4575922b792da8a81865", "workflow": "failed-payment-dunning", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "Finance", "team": "billing-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "baseline" }, "duplicateStarts": 1, "agents": [ { "name": "invoice-check", "status": "ok", "summary": "1 invoice(s), 1 open", "durationMs": 1183 }, { "name": "dunning-plan", "status": "ok", "summary": "1 step(s) due", "durationMs": 0 } ], "actions": [ { "id": "gmail.draft_final_notice:b7fb0ca22f", "kind": "gmail.draft_notice", "provider": "gmail", "agent": "dunning-plan", "gate": "auto", "status": "applied", "summary": { "invoice": "in_6SBPHSM12A00QSSMX9S69ZEM", "step": "final_notice", "sent": false }, "attempts": 1, "ref": "r1286141135367425", "appliedAt": "2026-10-22T18:56:16.242Z", "reconciled": null }, { "id": "stripe.record_step:in_6SBPHSM12A00QSSMX9S69ZEM", "kind": "stripe.record_step", "provider": "stripe", "agent": "dunning-plan", "gate": "auto", "status": "applied", "summary": { "invoice": "in_6SBPHSM12A00QSSMX9S69ZEM", "step": "final_notice" }, "attempts": 1, "ref": "cus_9H4EI7H2QMIJEIHW", "detail": { "step": "final_notice" }, "appliedAt": "2026-10-22T18:56:16.457Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": null, "output": { "mode": "dunning", "invoices": 1, "steps": [ "in_6SBPHSM12A00QSSMX9S69ZEM:final_notice" ], "skipped": [] }, "events": [ { "at": "2026-10-22T18:56:14.203Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T18:56:15.387Z", "msg": "agents: invoice-check=ok" }, { "at": "2026-10-22T18:56:15.411Z", "msg": "planned 2 action(s): 0 need approval" }, { "at": "2026-10-22T18:56:16.243Z", "msg": "gmail.draft_final_notice:b7fb0ca22f: applied" }, { "at": "2026-10-22T18:56:16.457Z", "msg": "stripe.record_step:in_6SBPHSM12A00QSSMX9S69ZEM: applied" }, { "at": "2026-10-22T18:56:16.458Z", "msg": "done (ok)" }, { "at": "2026-10-22T18:56:17.067Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-22T18:56:14.203Z", "updatedAt": "2026-10-22T18:56:17.067Z", "duplicate": true } - · GET app request /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/baseline/runs · baseline · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/baseline/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:17.546013+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "baseline-vr_243352f82fcf4575922b792da8a81865", "workflow": "failed-payment-dunning", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "Finance", "team": "billing-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "baseline" }, "duplicateStarts": 1, "agents": [ { "name": "invoice-check", "status": "ok", "summary": "1 invoice(s), 1 open", "durationMs": 1183 }, { "name": "dunning-plan", "status": "ok", "summary": "1 step(s) due", "durationMs": 0 } ], "actions": [ { "id": "gmail.draft_final_notice:b7fb0ca22f", "kind": "gmail.draft_notice", "provider": "gmail", "agent": "dunning-plan", "gate": "auto", "status": "applied", "summary": { "invoice": "in_6SBPHSM12A00QSSMX9S69ZEM", "step": "final_notice", "sent": false }, "attempts": 1, "ref": "r1286141135367425", "appliedAt": "2026-10-22T18:56:16.242Z", "reconciled": null }, { "id": "stripe.record_step:in_6SBPHSM12A00QSSMX9S69ZEM", "kind": "stripe.record_step", "provider": "stripe", "agent": "dunning-plan", "gate": "auto", "status": "applied", "summary": { "invoice": "in_6SBPHSM12A00QSSMX9S69ZEM", "step": "final_notice" }, "attempts": 1, "ref": "cus_9H4EI7H2QMIJEIHW", "detail": { "step": "final_notice" }, "appliedAt": "2026-10-22T18:56:16.457Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": null, "output": { "mode": "dunning", "invoices": 1, "steps": [ "in_6SBPHSM12A00QSSMX9S69ZEM:final_notice" ], "skipped": [] }, "events": [ { "at": "2026-10-22T18:56:14.203Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T18:56:15.387Z", "msg": "agents: invoice-check=ok" }, { "at": "2026-10-22T18:56:15.411Z", "msg": "planned 2 action(s): 0 need approval" }, { "at": "2026-10-22T18:56:16.243Z", "msg": "gmail.draft_final_notice:b7fb0ca22f: applied" }, { "at": "2026-10-22T18:56:16.457Z", "msg": "stripe.record_step:in_6SBPHSM12A00QSSMX9S69ZEM: applied" }, { "at": "2026-10-22T18:56:16.458Z", "msg": "done (ok)" }, { "at": "2026-10-22T18:56:17.067Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-22T18:56:14.203Z", "updatedAt": "2026-10-22T18:56:17.067Z" } ] } - · GET app request /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/first_failure_card_update_notice/runs · first failure card update notice · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/first_failure_card_update_notice/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:17.801945+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json", "content-length": "11" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [] } - · POST app request /invocations · first failure card update notice · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "first-failure-card-update-notice-vr_243352f82fcf4575922b792da8a81865", "input": { "stage": "payment_failed", "invoiceId": "in_D4F157M1PQMOMXU8WUXWPY90", "financeChannel": "C0BILLING01", "approvers": [ "U_CONTROLLER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "first_failure_card_update_notice" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:18.748059+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "379", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "first-failure-card-update-notice-vr_243352f82fcf4575922b792da8a81865", "input": { "stage": "payment_failed", "invoiceId": "in_D4F157M1PQMOMXU8WUXWPY90", "financeChannel": "C0BILLING01", "approvers": [ "U_CONTROLLER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "first_failure_card_update_notice" } }Recorded response · HTTP 200
{ "runId": "first-failure-card-update-notice-vr_243352f82fcf4575922b792da8a81865", "workflow": "failed-payment-dunning", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "Finance", "team": "billing-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "first_failure_card_update_notice" }, "duplicateStarts": 0, "agents": [ { "name": "invoice-check", "status": "ok", "summary": "1 invoice(s), 0 open", "durationMs": 686 }, { "name": "dunning-plan", "status": "ok", "summary": "0 step(s) due", "durationMs": 0 } ], "actions": [], "counts": { "applied": 0, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": null, "output": { "mode": "nothing", "invoices": 1, "steps": [], "skipped": [ "in_D4F157M1PQMOMXU8WUXWPY90: invoice is paid" ] }, "events": [ { "at": "2026-10-22T18:56:17.923Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T18:56:18.610Z", "msg": "agents: invoice-check=ok" }, { "at": "2026-10-22T18:56:18.612Z", "msg": "planned 0 action(s): 0 need approval" }, { "at": "2026-10-22T18:56:18.615Z", "msg": "done (ok)" } ], "createdAt": "2026-10-22T18:56:17.923Z", "updatedAt": "2026-10-22T18:56:18.615Z", "duplicate": false } - · GET stripe request · provider traffic · /v1/invoices/in_D4F157M1PQMOMXU8WUXWPY90 · HTTP 200 · request c7cd9f26d692 · processing 96.99ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/invoices/in_D4F157M1PQMOMXU8WUXWPY90' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 96.99ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "account_country": null, "account_name": "Sample Account", "account_tax_ids": null, "amount_due": 0, "amount_overpaid": 0, "amount_paid": 0, "amount_remaining": 0, "amount_shipping": 0, "application": null, "attempt_count": 0, "attempted": false, "auto_advance": false, "automatic_tax": { "enabled": false, "disabled_reason": null, "liability": null, "provider": null, "status": null }, "automatically_finalizes_at": null, "billing_reason": "automatic_pending_invoice_item_invoice", "collection_method": "charge_automatically", "confirmation_secret": "[redacted]", "created": 1792695268, "currency": "usd", "custom_fields": null, "customer": "cus_SW7TNDGMHXLQZGVO", "customer_account": null, "customer_address": null, "customer_email": "[email protected]", "customer_name": "Sample Customer", "customer_phone": null, "customer_shipping": null, "customer_tax_exempt": "exempt", "customer_tax_ids": null, "default_payment_method": null, "default_source": null, "default_tax_rates": [], "description": null, "discounts": [], "due_date": null, "effective_at": null, "ending_balance": 0, "footer": null, "from_invoice": null, "hosted_invoice_url": null, "id": "in_D4F157M1PQMOMXU8WUXWPY90", "invoice_pdf": null, "issuer": { "type": "account" }, "last_finalization_error": null, "latest_revision": null, "lines": { "object": "list", "data": [], "has_more": false, "total_count": 0, "url": "/v1/invoices/in_D4F157M1PQMOMXU8WUXWPY90/lines" }, "livemode": false, "metadata": {}, "next_payment_attempt": null, "number": "FS-PQMOMXU8WUXWPY90", "object": "invoice", "on_behalf_of": null, "parent": null, "payment_settings": { "default_mandate": null, "payment_method_options": null, "payment_method_types": null }, "period_end": 1792695268, "period_start": 1792695268, "post_payment_credit_notes_amount": 0, "pre_payment_credit_notes_amount": 0, "receipt_number": null, "rendering": null, "shipping_cost": null, "shipping_details": null, "starting_balance": 0, "statement_descriptor": null, "status": "paid", "status_transitions": { "finalized_at": 1792695269, "paid_at": 1792695269, "voided_at": null, "marked_uncollectible_at": null }, "subtotal": 0, "subtotal_excluding_tax": 0, "test_clock": null, "total": 0, "total_discount_amounts": [], "total_excluding_tax": 0, "total_pretax_credit_amounts": [], "total_taxes": [], "webhooks_delivered_at": null } - · GET stripe request · provider traffic · /v1/customers/cus_SW7TNDGMHXLQZGVO · HTTP 200 · request e5a9a891cf2c · processing 16.94ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/customers/cus_SW7TNDGMHXLQZGVO' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 16.94ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "address": null, "balance": 0, "business_name": "Sample Business", "cash_balance": null, "created": 9, "currency": "USD", "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "[email protected]", "id": "cus_SW7TNDGMHXLQZGVO", "individual_name": "Sample Individual", "invoice_prefix": null, "livemode": false, "name": "Dana Billing", "object": "customer", "phone": "+14155550100", "preferred_locales": null, "shipping": null, "tax_exempt": "exempt", "test_clock": null, "invoice_settings[default_payment_method]": "pm_card_chargeCustomerFail" } - · GET stripe request · provider traffic · /v1/payment_methods · HTTP 200 · request ad279d9b9d34 · processing 2.55ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/payment_methods' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 2.55ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [], "has_more": false, "object": "list", "url": "/v1/payment_methods" } - · GET app request /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/first_failure_card_update_notice/runs · first failure card update notice · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/first_failure_card_update_notice/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:19.075269+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "first-failure-card-update-notice-vr_243352f82fcf4575922b792da8a81865", "workflow": "failed-payment-dunning", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "Finance", "team": "billing-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "first_failure_card_update_notice" }, "duplicateStarts": 0, "agents": [ { "name": "invoice-check", "status": "ok", "summary": "1 invoice(s), 0 open", "durationMs": 686 }, { "name": "dunning-plan", "status": "ok", "summary": "0 step(s) due", "durationMs": 0 } ], "actions": [], "counts": { "applied": 0, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": null, "output": { "mode": "nothing", "invoices": 1, "steps": [], "skipped": [ "in_D4F157M1PQMOMXU8WUXWPY90: invoice is paid" ] }, "events": [ { "at": "2026-10-22T18:56:17.923Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T18:56:18.610Z", "msg": "agents: invoice-check=ok" }, { "at": "2026-10-22T18:56:18.612Z", "msg": "planned 0 action(s): 0 need approval" }, { "at": "2026-10-22T18:56:18.615Z", "msg": "done (ok)" } ], "createdAt": "2026-10-22T18:56:17.923Z", "updatedAt": "2026-10-22T18:56:18.615Z" } ] } - · POST app request /invocations · first failure card update notice · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "first-failure-card-update-notice-vr_243352f82fcf4575922b792da8a81865", "input": { "stage": "payment_failed", "invoiceId": "in_D4F157M1PQMOMXU8WUXWPY90", "financeChannel": "C0BILLING01", "approvers": [ "U_CONTROLLER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "first_failure_card_update_notice" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:19.325602+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "379", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "first-failure-card-update-notice-vr_243352f82fcf4575922b792da8a81865", "input": { "stage": "payment_failed", "invoiceId": "in_D4F157M1PQMOMXU8WUXWPY90", "financeChannel": "C0BILLING01", "approvers": [ "U_CONTROLLER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "first_failure_card_update_notice" } }Recorded response · HTTP 200
{ "runId": "first-failure-card-update-notice-vr_243352f82fcf4575922b792da8a81865", "workflow": "failed-payment-dunning", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "Finance", "team": "billing-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "first_failure_card_update_notice" }, "duplicateStarts": 1, "agents": [ { "name": "invoice-check", "status": "ok", "summary": "1 invoice(s), 0 open", "durationMs": 686 }, { "name": "dunning-plan", "status": "ok", "summary": "0 step(s) due", "durationMs": 0 } ], "actions": [], "counts": { "applied": 0, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": null, "output": { "mode": "nothing", "invoices": 1, "steps": [], "skipped": [ "in_D4F157M1PQMOMXU8WUXWPY90: invoice is paid" ] }, "events": [ { "at": "2026-10-22T18:56:17.923Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T18:56:18.610Z", "msg": "agents: invoice-check=ok" }, { "at": "2026-10-22T18:56:18.612Z", "msg": "planned 0 action(s): 0 need approval" }, { "at": "2026-10-22T18:56:18.615Z", "msg": "done (ok)" }, { "at": "2026-10-22T18:56:19.195Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-22T18:56:17.923Z", "updatedAt": "2026-10-22T18:56:19.195Z", "duplicate": true } - · GET app request /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/first_failure_card_update_notice/runs · first failure card update notice · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/first_failure_card_update_notice/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:19.672148+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "first-failure-card-update-notice-vr_243352f82fcf4575922b792da8a81865", "workflow": "failed-payment-dunning", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "Finance", "team": "billing-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "first_failure_card_update_notice" }, "duplicateStarts": 1, "agents": [ { "name": "invoice-check", "status": "ok", "summary": "1 invoice(s), 0 open", "durationMs": 686 }, { "name": "dunning-plan", "status": "ok", "summary": "0 step(s) due", "durationMs": 0 } ], "actions": [], "counts": { "applied": 0, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": null, "output": { "mode": "nothing", "invoices": 1, "steps": [], "skipped": [ "in_D4F157M1PQMOMXU8WUXWPY90: invoice is paid" ] }, "events": [ { "at": "2026-10-22T18:56:17.923Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T18:56:18.610Z", "msg": "agents: invoice-check=ok" }, { "at": "2026-10-22T18:56:18.612Z", "msg": "planned 0 action(s): 0 need approval" }, { "at": "2026-10-22T18:56:18.615Z", "msg": "done (ok)" }, { "at": "2026-10-22T18:56:19.195Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-22T18:56:17.923Z", "updatedAt": "2026-10-22T18:56:19.195Z" } ] } - · GET app request /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/second_failure_tries_backup_card/runs · second failure tries backup card · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/second_failure_tries_backup_card/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:19.924256+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json", "content-length": "11" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [] } - · POST app request /invocations · second failure tries backup card · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "second-failure-tries-backup-card-vr_243352f82fcf4575922b792da8a81865", "input": { "stage": "payment_failed", "invoiceId": "in_ZHX7UR385JQFUO0K0GOWK40Y", "financeChannel": "C0BILLING01", "approvers": [ "U_CONTROLLER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "second_failure_tries_backup_card" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:20.846318+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "379", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "second-failure-tries-backup-card-vr_243352f82fcf4575922b792da8a81865", "input": { "stage": "payment_failed", "invoiceId": "in_ZHX7UR385JQFUO0K0GOWK40Y", "financeChannel": "C0BILLING01", "approvers": [ "U_CONTROLLER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "second_failure_tries_backup_card" } }Recorded response · HTTP 200
{ "runId": "second-failure-tries-backup-card-vr_243352f82fcf4575922b792da8a81865", "workflow": "failed-payment-dunning", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "Finance", "team": "billing-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "second_failure_tries_backup_card" }, "duplicateStarts": 0, "agents": [ { "name": "invoice-check", "status": "ok", "summary": "1 invoice(s), 0 open", "durationMs": 653 }, { "name": "dunning-plan", "status": "ok", "summary": "0 step(s) due", "durationMs": 0 } ], "actions": [], "counts": { "applied": 0, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": null, "output": { "mode": "nothing", "invoices": 1, "steps": [], "skipped": [ "in_ZHX7UR385JQFUO0K0GOWK40Y: invoice is paid" ] }, "events": [ { "at": "2026-10-22T18:56:20.057Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T18:56:20.711Z", "msg": "agents: invoice-check=ok" }, { "at": "2026-10-22T18:56:20.713Z", "msg": "planned 0 action(s): 0 need approval" }, { "at": "2026-10-22T18:56:20.714Z", "msg": "done (ok)" } ], "createdAt": "2026-10-22T18:56:20.057Z", "updatedAt": "2026-10-22T18:56:20.714Z", "duplicate": false } - · GET stripe request · provider traffic · /v1/invoices/in_ZHX7UR385JQFUO0K0GOWK40Y · HTTP 200 · request 38ac67bcbd3f · processing 93.07ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/invoices/in_ZHX7UR385JQFUO0K0GOWK40Y' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 93.07ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "account_country": null, "account_name": "Sample Account", "account_tax_ids": null, "amount_due": 0, "amount_overpaid": 0, "amount_paid": 0, "amount_remaining": 0, "amount_shipping": 0, "application": null, "attempt_count": 0, "attempted": false, "auto_advance": false, "automatic_tax": { "enabled": false, "disabled_reason": null, "liability": null, "provider": null, "status": null }, "automatically_finalizes_at": null, "billing_reason": "automatic_pending_invoice_item_invoice", "collection_method": "charge_automatically", "confirmation_secret": "[redacted]", "created": 1792695271, "currency": "usd", "custom_fields": null, "customer": "cus_9EO3QVSB8GE5TK8C", "customer_account": null, "customer_address": null, "customer_email": "[email protected]", "customer_name": "Sample Customer", "customer_phone": null, "customer_shipping": null, "customer_tax_exempt": "exempt", "customer_tax_ids": null, "default_payment_method": null, "default_source": null, "default_tax_rates": [], "description": null, "discounts": [], "due_date": null, "effective_at": null, "ending_balance": 0, "footer": null, "from_invoice": null, "hosted_invoice_url": null, "id": "in_ZHX7UR385JQFUO0K0GOWK40Y", "invoice_pdf": null, "issuer": { "type": "account" }, "last_finalization_error": null, "latest_revision": null, "lines": { "object": "list", "data": [], "has_more": false, "total_count": 0, "url": "/v1/invoices/in_ZHX7UR385JQFUO0K0GOWK40Y/lines" }, "livemode": false, "metadata": {}, "next_payment_attempt": null, "number": "FS-5JQFUO0K0GOWK40Y", "object": "invoice", "on_behalf_of": null, "parent": null, "payment_settings": { "default_mandate": null, "payment_method_options": null, "payment_method_types": null }, "period_end": 1792695271, "period_start": 1792695271, "post_payment_credit_notes_amount": 0, "pre_payment_credit_notes_amount": 0, "receipt_number": null, "rendering": null, "shipping_cost": null, "shipping_details": null, "starting_balance": 0, "statement_descriptor": null, "status": "paid", "status_transitions": { "finalized_at": 1792695271, "paid_at": 1792695271, "voided_at": null, "marked_uncollectible_at": null }, "subtotal": 0, "subtotal_excluding_tax": 0, "test_clock": null, "total": 0, "total_discount_amounts": [], "total_excluding_tax": 0, "total_pretax_credit_amounts": [], "total_taxes": [], "webhooks_delivered_at": null } - · GET stripe request · provider traffic · /v1/customers/cus_9EO3QVSB8GE5TK8C · HTTP 200 · request be4995728ae0 · processing 16.15ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/customers/cus_9EO3QVSB8GE5TK8C' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 16.15ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "address": null, "balance": 0, "business_name": "Sample Business", "cash_balance": null, "created": 72, "currency": "USD", "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "[email protected]", "id": "cus_9EO3QVSB8GE5TK8C", "individual_name": "Sample Individual", "invoice_prefix": null, "livemode": false, "name": "Dana Billing", "object": "customer", "phone": "+14155550100", "preferred_locales": null, "shipping": null, "tax_exempt": "exempt", "test_clock": null, "invoice_settings[default_payment_method]": "pm_card_chargeCustomerFail" } - · GET stripe request · provider traffic · /v1/payment_methods · HTTP 200 · request 13fc5d58ec27 · processing 2.57ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/payment_methods' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 2.57ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [], "has_more": false, "object": "list", "url": "/v1/payment_methods" } - · GET app request /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/second_failure_tries_backup_card/runs · second failure tries backup card · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/second_failure_tries_backup_card/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:21.183110+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "second-failure-tries-backup-card-vr_243352f82fcf4575922b792da8a81865", "workflow": "failed-payment-dunning", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "Finance", "team": "billing-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "second_failure_tries_backup_card" }, "duplicateStarts": 0, "agents": [ { "name": "invoice-check", "status": "ok", "summary": "1 invoice(s), 0 open", "durationMs": 653 }, { "name": "dunning-plan", "status": "ok", "summary": "0 step(s) due", "durationMs": 0 } ], "actions": [], "counts": { "applied": 0, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": null, "output": { "mode": "nothing", "invoices": 1, "steps": [], "skipped": [ "in_ZHX7UR385JQFUO0K0GOWK40Y: invoice is paid" ] }, "events": [ { "at": "2026-10-22T18:56:20.057Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T18:56:20.711Z", "msg": "agents: invoice-check=ok" }, { "at": "2026-10-22T18:56:20.713Z", "msg": "planned 0 action(s): 0 need approval" }, { "at": "2026-10-22T18:56:20.714Z", "msg": "done (ok)" } ], "createdAt": "2026-10-22T18:56:20.057Z", "updatedAt": "2026-10-22T18:56:20.714Z" } ] } - · POST app request /invocations · second failure tries backup card · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "second-failure-tries-backup-card-vr_243352f82fcf4575922b792da8a81865", "input": { "stage": "payment_failed", "invoiceId": "in_ZHX7UR385JQFUO0K0GOWK40Y", "financeChannel": "C0BILLING01", "approvers": [ "U_CONTROLLER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "second_failure_tries_backup_card" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:21.460101+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "379", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "second-failure-tries-backup-card-vr_243352f82fcf4575922b792da8a81865", "input": { "stage": "payment_failed", "invoiceId": "in_ZHX7UR385JQFUO0K0GOWK40Y", "financeChannel": "C0BILLING01", "approvers": [ "U_CONTROLLER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "second_failure_tries_backup_card" } }Recorded response · HTTP 200
{ "runId": "second-failure-tries-backup-card-vr_243352f82fcf4575922b792da8a81865", "workflow": "failed-payment-dunning", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "Finance", "team": "billing-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "second_failure_tries_backup_card" }, "duplicateStarts": 1, "agents": [ { "name": "invoice-check", "status": "ok", "summary": "1 invoice(s), 0 open", "durationMs": 653 }, { "name": "dunning-plan", "status": "ok", "summary": "0 step(s) due", "durationMs": 0 } ], "actions": [], "counts": { "applied": 0, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": null, "output": { "mode": "nothing", "invoices": 1, "steps": [], "skipped": [ "in_ZHX7UR385JQFUO0K0GOWK40Y: invoice is paid" ] }, "events": [ { "at": "2026-10-22T18:56:20.057Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T18:56:20.711Z", "msg": "agents: invoice-check=ok" }, { "at": "2026-10-22T18:56:20.713Z", "msg": "planned 0 action(s): 0 need approval" }, { "at": "2026-10-22T18:56:20.714Z", "msg": "done (ok)" }, { "at": "2026-10-22T18:56:21.338Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-22T18:56:20.057Z", "updatedAt": "2026-10-22T18:56:21.338Z", "duplicate": true } - · GET app request /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/second_failure_tries_backup_card/runs · second failure tries backup card · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/second_failure_tries_backup_card/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:21.807264+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "second-failure-tries-backup-card-vr_243352f82fcf4575922b792da8a81865", "workflow": "failed-payment-dunning", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "Finance", "team": "billing-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "second_failure_tries_backup_card" }, "duplicateStarts": 1, "agents": [ { "name": "invoice-check", "status": "ok", "summary": "1 invoice(s), 0 open", "durationMs": 653 }, { "name": "dunning-plan", "status": "ok", "summary": "0 step(s) due", "durationMs": 0 } ], "actions": [], "counts": { "applied": 0, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": null, "output": { "mode": "nothing", "invoices": 1, "steps": [], "skipped": [ "in_ZHX7UR385JQFUO0K0GOWK40Y: invoice is paid" ] }, "events": [ { "at": "2026-10-22T18:56:20.057Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T18:56:20.711Z", "msg": "agents: invoice-check=ok" }, { "at": "2026-10-22T18:56:20.713Z", "msg": "planned 0 action(s): 0 need approval" }, { "at": "2026-10-22T18:56:20.714Z", "msg": "done (ok)" }, { "at": "2026-10-22T18:56:21.338Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-22T18:56:20.057Z", "updatedAt": "2026-10-22T18:56:21.338Z" } ] } - · GET app request /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/final_notice_after_14_days/runs · final notice after 14 days · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/final_notice_after_14_days/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:22.063930+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json", "content-length": "11" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [] } - · POST app request /invocations · final notice after 14 days · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "final-notice-after-14-days-vr_243352f82fcf4575922b792da8a81865", "input": { "stage": "sweep", "customers": [ "[email protected]" ], "financeChannel": "C0BILLING01", "approvers": [ "U_CONTROLLER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "final_notice_after_14_days" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:24.661029+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "383", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "final-notice-after-14-days-vr_243352f82fcf4575922b792da8a81865", "input": { "stage": "sweep", "customers": [ "[email protected]" ], "financeChannel": "C0BILLING01", "approvers": [ "U_CONTROLLER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "final_notice_after_14_days" } }Recorded response · HTTP 200
{ "runId": "final-notice-after-14-days-vr_243352f82fcf4575922b792da8a81865", "workflow": "failed-payment-dunning", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "Finance", "team": "billing-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "final_notice_after_14_days" }, "duplicateStarts": 0, "agents": [ { "name": "invoice-check", "status": "ok", "summary": "1 invoice(s), 1 open", "durationMs": 1361 }, { "name": "dunning-plan", "status": "ok", "summary": "1 step(s) due", "durationMs": 0 } ], "actions": [ { "id": "gmail.draft_final_notice:bc023cb3cb", "kind": "gmail.draft_notice", "provider": "gmail", "agent": "dunning-plan", "gate": "auto", "status": "applied", "summary": { "invoice": "in_JXNXH2QPPEPTV15T8PSPL0PC", "step": "final_notice", "sent": false }, "attempts": 1, "ref": "r2968987519549496", "appliedAt": "2026-10-22T18:56:24.330Z", "reconciled": null }, { "id": "stripe.record_step:in_JXNXH2QPPEPTV15T8PSPL0PC", "kind": "stripe.record_step", "provider": "stripe", "agent": "dunning-plan", "gate": "auto", "status": "applied", "summary": { "invoice": "in_JXNXH2QPPEPTV15T8PSPL0PC", "step": "final_notice" }, "attempts": 1, "ref": "cus_PY3QZKYU9K5GP5IV", "detail": { "step": "final_notice" }, "appliedAt": "2026-10-22T18:56:24.534Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": null, "output": { "mode": "dunning", "invoices": 1, "steps": [ "in_JXNXH2QPPEPTV15T8PSPL0PC:final_notice" ], "skipped": [] }, "events": [ { "at": "2026-10-22T18:56:22.183Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T18:56:23.546Z", "msg": "agents: invoice-check=ok" }, { "at": "2026-10-22T18:56:23.550Z", "msg": "planned 2 action(s): 0 need approval" }, { "at": "2026-10-22T18:56:24.330Z", "msg": "gmail.draft_final_notice:bc023cb3cb: applied" }, { "at": "2026-10-22T18:56:24.534Z", "msg": "stripe.record_step:in_JXNXH2QPPEPTV15T8PSPL0PC: applied" }, { "at": "2026-10-22T18:56:24.535Z", "msg": "done (ok)" } ], "createdAt": "2026-10-22T18:56:22.183Z", "updatedAt": "2026-10-22T18:56:24.535Z", "duplicate": false } - · GET stripe request · provider traffic · /v1/customers · HTTP 200 · request 34d097f5f391 · processing 15.27ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/customers' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 15.27ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [ { "email": "[email protected]", "name": "Dana Billing", "id": "cus_PY3QZKYU9K5GP5IV", "address": null, "balance": 0, "business_name": "Sample Business", "cash_balance": null, "created": 22, "currency": "USD", "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "individual_name": "Sample Individual", "invoice_prefix": null, "livemode": false, "object": "customer", "phone": "+14155550100", "preferred_locales": null, "shipping": null, "tax_exempt": "exempt", "test_clock": null } ], "has_more": false, "object": "list", "url": "/v1/customers" } - · GET stripe request · provider traffic · /v1/invoices · HTTP 200 · request b9adda9cb7c8 · processing 624.01ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/invoices' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 624.01ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [ { "object": "invoice", "parent": { "type": "subscription_details", "subscription_details": { "subscription": "sub_LK0DD4WSL5PPIO67G5OL557M", "metadata": {} } }, "customer": "cus_PY3QZKYU9K5GP5IV", "currency": "usd", "total": 60000, "amount_due": 60000, "amount_paid": 0, "amount_remaining": 60000, "status": "open", "created": 1792695272, "id": "in_JXNXH2QPPEPTV15T8PSPL0PC", "payments": { "object": "list", "data": [ { "id": "inpay_VTFX6UJHPTRWYODC8ULB56L8", "object": "invoice_payment", "invoice": "in_JXNXH2QPPEPTV15T8PSPL0PC", "amount_requested": 60000, "amount_paid": null, "currency": "usd", "created": 1792695272, "is_default": true, "livemode": false, "status": "open", "status_transitions": { "paid_at": null, "canceled_at": null }, "payment": { "type": "payment_intent", "payment_intent": "pi_EA02JFR4LFDQDFI521PQ0892" } } ], "has_more": false, "url": "/v1/invoice_payments?invoice=in_JXNXH2QPPEPTV15T8PSPL0PC" }, "amount_overpaid": 89, "amount_shipping": 77, "attempt_count": 13, "attempted": true, "auto_advance": true, "automatic_tax": { "disabled_reason": "finalization_requires_location_inputs", "enabled": true, "provider": "default", "status": "complete" }, "collection_method": "charge_automatically", "default_tax_rates": [ { "active": true, "country": "US", "created": 29, "display_name": "Item 826", "id": "obj_86d22bb25f5d43a187f18687fd", "inclusive": true, "jurisdiction_level": "city", "livemode": false, "object": "tax_rate", "percentage": 244.4925, "rate_type": "flat_amount", "tax_type": "amusement_tax" } ], "discounts": [ "sample-value" ], "issuer": { "type": "account" }, "lines": { "data": [ { "amount": 29, "currency": "USD", "discountable": true, "discounts": [ "sample-value" ], "id": "obj_ae02fdd7b2f24bcb869d8807e1", "livemode": false, "metadata": {}, "object": "line_item", "period": { "end": 39, "start": 57 }, "subtotal": 47 } ], "has_more": true, "object": "list", "url": "https://example.com/8e37d143" }, "livemode": true, "payment_settings": { "default_mandate": "sample-value", "payment_method_options": { "acss_debit": { "mandate_options": { "transaction_type": "business" }, "verification_method": "automatic" }, "bancontact": { "preferred_language": "de" }, "card": { "installments": { "enabled": true }, "request_three_d_secure": "any" }, "customer_balance": { "bank_transfer": { "eu_bank_transfer": { "country": "US" }, "type": "default" }, "funding_type": "bank_transfer" }, "konbini": {}, "payto": { "mandate_options": { "amount": 52, "amount_type": "fixed", "purpose": "dependant_support" } }, "sepa_debit": {}, "us_bank_account": { "financial_connections": { "filters": { "account_subcategories": [ "checking" ] }, "permissions": [ "balances" ], "prefetch": [ "balances" ] }, "verification_method": "automatic" } }, "payment_method_types": [ "ach_credit_transfer" ] }, "period_end": 26, "period_start": 65, "post_payment_credit_notes_amount": 13, "pre_payment_credit_notes_amount": 71, "starting_balance": 44, "status_transitions": { "finalized_at": 2, "marked_uncollectible_at": 85, "paid_at": 92, "voided_at": 35 }, "subtotal": 59, "account_country": null, "account_name": null, "account_tax_ids": null, "application": null, "automatically_finalizes_at": null, "billing_reason": null, "confirmation_secret": "[redacted]", "custom_fields": null, "customer_account": null, "customer_address": null, "customer_email": null, "customer_name": null, "customer_phone": null, "customer_shipping": null, "customer_tax_exempt": null, "customer_tax_ids": null, "default_payment_method": null, "default_source": null, "description": null, "due_date": null, "effective_at": null, "ending_balance": null, "footer": null, "from_invoice": null, "hosted_invoice_url": null, "invoice_pdf": null, "last_finalization_error": null, "latest_revision": null, "metadata": null, "next_payment_attempt": null, "number": null, "on_behalf_of": null, "receipt_number": null, "rendering": null, "shipping_cost": null, "shipping_details": null, "statement_descriptor": null, "subtotal_excluding_tax": null, "test_clock": null, "total_discount_amounts": null, "total_excluding_tax": null, "total_pretax_credit_amounts": null, "total_taxes": null, "webhooks_delivered_at": null } ], "has_more": false, "object": "list", "url": "/v1/invoices" } - · GET stripe request · provider traffic · /v1/customers/cus_PY3QZKYU9K5GP5IV · HTTP 200 · request 2723dc3f4a6b · processing 15.78ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/customers/cus_PY3QZKYU9K5GP5IV' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 15.78ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "address": null, "balance": 0, "business_name": "Sample Business", "cash_balance": null, "created": 22, "currency": "USD", "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "[email protected]", "id": "cus_PY3QZKYU9K5GP5IV", "individual_name": "Sample Individual", "invoice_prefix": null, "livemode": false, "name": "Dana Billing", "object": "customer", "phone": "+14155550100", "preferred_locales": null, "shipping": null, "tax_exempt": "exempt", "test_clock": null, "invoice_settings[default_payment_method]": "pm_card_chargeCustomerFail" } - · GET stripe request · provider traffic · /v1/payment_methods · HTTP 200 · request 4d078aff7a41 · processing 2.59ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/payment_methods' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 2.59ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [], "has_more": false, "object": "list", "url": "/v1/payment_methods" } - · GET stripe request · provider traffic · /v1/invoices/in_JXNXH2QPPEPTV15T8PSPL0PC · HTTP 200 · request c19b5f515091 · processing 218.88ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/invoices/in_JXNXH2QPPEPTV15T8PSPL0PC' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 218.88ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "account_country": null, "account_name": "Sample Account", "account_tax_ids": null, "amount_due": 60000, "amount_overpaid": 72, "amount_paid": 0, "amount_remaining": 60000, "amount_shipping": 14, "application": null, "attempt_count": 0, "attempted": true, "auto_advance": true, "automatic_tax": { "disabled_reason": "finalization_requires_location_inputs", "enabled": true, "liability": null, "provider": "default", "status": "complete" }, "automatically_finalizes_at": null, "billing_reason": "automatic_pending_invoice_item_invoice", "collection_method": "charge_automatically", "confirmation_secret": "[redacted]", "created": 1792695272, "currency": "usd", "custom_fields": null, "customer": "cus_PY3QZKYU9K5GP5IV", "customer_account": null, "customer_address": null, "customer_email": null, "customer_name": "Sample Customer", "customer_phone": null, "customer_shipping": null, "customer_tax_exempt": "exempt", "customer_tax_ids": null, "default_payment_method": null, "default_source": null, "default_tax_rates": [ { "active": true, "country": "US", "created": 89, "description": null, "display_name": "Item 650", "effective_percentage": null, "flat_amount": null, "id": "obj_d55b326df86b4126931910d408", "inclusive": true, "jurisdiction": null, "jurisdiction_level": "city", "livemode": false, "metadata": null, "object": "tax_rate", "percentage": 632.5663, "rate_type": "flat_amount", "state": null, "tax_type": "amusement_tax" } ], "description": null, "discounts": [ "sample-value" ], "due_date": null, "effective_at": null, "ending_balance": null, "footer": null, "from_invoice": null, "hosted_invoice_url": "https://example.com/71e8c1c3", "id": "in_JXNXH2QPPEPTV15T8PSPL0PC", "invoice_pdf": null, "issuer": { "type": "account" }, "last_finalization_error": null, "latest_revision": null, "lines": { "data": [ { "amount": 55, "currency": "USD", "description": null, "discount_amounts": null, "discountable": true, "discounts": [ "sample-value" ], "id": "obj_40143cc8cdcf4e158263c4c30c", "invoice": null, "livemode": false, "metadata": {}, "object": "line_item", "parent": null, "period": { "end": 96, "start": 87 }, "pretax_credit_amounts": null, "pricing": null, "quantity": null, "subscription": null, "subtotal": 85, "taxes": null } ], "has_more": true, "object": "list", "url": "https://example.com/04b26012" }, "livemode": false, "metadata": null, "next_payment_attempt": null, "number": null, "object": "invoice", "on_behalf_of": null, "parent": { "type": "subscription_details", "subscription_details": { "subscription": "sub_LK0DD4WSL5PPIO67G5OL557M", "metadata": {} } }, "payment_settings": { "default_mandate": "sample-value", "payment_method_options": { "acss_debit": { "mandate_options": "sample-value", "verification_method": "automatic" }, "bancontact": { "preferred_language": "de" }, "card": { "installments": "sample-value", "request_three_d_secure": "any" }, "customer_balance": { "bank_transfer": "sample-value", "funding_type": "bank_transfer" }, "konbini": {}, "payto": { "mandate_options": "sample-value" }, "sepa_debit": {}, "us_bank_account": { "financial_connections": "sample-value", "verification_method": "automatic" } }, "payment_method_types": [ "ach_credit_transfer" ] }, "period_end": 29, "period_start": 60, "post_payment_credit_notes_amount": 99, "pre_payment_credit_notes_amount": 90, "receipt_number": null, "rendering": null, "shipping_cost": null, "shipping_details": null, "starting_balance": 5, "statement_descriptor": null, "status": "open", "status_transitions": { "finalized_at": 64, "marked_uncollectible_at": 24, "paid_at": 21, "voided_at": 90 }, "subtotal": 3, "subtotal_excluding_tax": null, "test_clock": null, "total": 60000, "total_discount_amounts": null, "total_excluding_tax": null, "total_pretax_credit_amounts": null, "total_taxes": null, "webhooks_delivered_at": null, "payments": { "object": "list", "data": [ { "id": "inpay_VTFX6UJHPTRWYODC8ULB56L8", "object": "invoice_payment", "invoice": "in_JXNXH2QPPEPTV15T8PSPL0PC", "amount_requested": 60000, "amount_paid": null, "currency": "usd", "created": 1792695272, "is_default": true, "livemode": false, "status": "open", "status_transitions": { "paid_at": null, "canceled_at": null }, "payment": { "type": "payment_intent", "payment_intent": "pi_EA02JFR4LFDQDFI521PQ0892" } } ], "has_more": false, "url": "/v1/invoice_payments?invoice=in_JXNXH2QPPEPTV15T8PSPL0PC" } } - · GET stripe request · provider traffic · /v1/customers/cus_PY3QZKYU9K5GP5IV · HTTP 200 · request 4a7b0ff17496 · processing 17.53ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/customers/cus_PY3QZKYU9K5GP5IV' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 17.53ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "address": null, "balance": 0, "business_name": "Sample Business", "cash_balance": null, "created": 22, "currency": "USD", "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "[email protected]", "id": "cus_PY3QZKYU9K5GP5IV", "individual_name": "Sample Individual", "invoice_prefix": null, "livemode": false, "name": "Dana Billing", "object": "customer", "phone": "+14155550100", "preferred_locales": null, "shipping": null, "tax_exempt": "exempt", "test_clock": null, "invoice_settings[default_payment_method]": "pm_card_chargeCustomerFail" } - · POST gmail request · provider traffic · /gmail/v1/users/me/drafts · HTTP 200 · request cbb432671fab · processing 13.53ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/caf533faa2/gmail/v1/users/me/drafts' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'content-type: application/json; charset=utf-8' \ --data-raw '{ "message": { "raw": "RnJvbTogbWUNClRvOiBkdW4tZmluYWwtbm90aWNlLWFmdGVyLTE0LWRheXNAYmlsbGluZy5leGFtcGxlLmNvbQ0KU3ViamVjdDogRmluYWwgbm90aWNlOiAkNjAwLjAwIG92ZXJkdWUNCk1lc3NhZ2UtSUQ6IDw0YzU3NzVhMmUwYzQyMjg5LmR1bm5pbmctZmluYWxfbm90aWNlLWJjMDIzY2IzY2JAb3BzLmFjbWUuZXhhbXBsZT4NCk1JTUUtVmVyc2lvbjogMS4wDQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04Ig0KQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdA0KDQpIZWxsbywKCkludm9pY2UgaW5fSlhOWEgyUVBQRVBUVjE1VDhQU1BMMFBDIGZvciAkNjAwLjAwIGlzIG92ZXJkdWUuIElmIGl0IHN0YXlzIHVucGFpZCwgeW91ciBzdWJzY3JpcHRpb24gd2lsbCBiZSBjYW5jZWxsZWQgYWZ0ZXIgYSByZXZpZXcgYnkgb3VyIGJpbGxpbmcgdGVhbS4KCkFDTUUgQmlsbGluZw" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 13.53ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "632", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "content-type": "application/json; charset=utf-8" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "message": { "raw": "RnJvbTogbWUNClRvOiBkdW4tZmluYWwtbm90aWNlLWFmdGVyLTE0LWRheXNAYmlsbGluZy5leGFtcGxlLmNvbQ0KU3ViamVjdDogRmluYWwgbm90aWNlOiAkNjAwLjAwIG92ZXJkdWUNCk1lc3NhZ2UtSUQ6IDw0YzU3NzVhMmUwYzQyMjg5LmR1bm5pbmctZmluYWxfbm90aWNlLWJjMDIzY2IzY2JAb3BzLmFjbWUuZXhhbXBsZT4NCk1JTUUtVmVyc2lvbjogMS4wDQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04Ig0KQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdA0KDQpIZWxsbywKCkludm9pY2UgaW5fSlhOWEgyUVBQRVBUVjE1VDhQU1BMMFBDIGZvciAkNjAwLjAwIGlzIG92ZXJkdWUuIElmIGl0IHN0YXlzIHVucGFpZCwgeW91ciBzdWJzY3JpcHRpb24gd2lsbCBiZSBjYW5jZWxsZWQgYWZ0ZXIgYSByZXZpZXcgYnkgb3VyIGJpbGxpbmcgdGVhbS4KCkFDTUUgQmlsbGluZw" } }Recorded response · HTTP 200
{ "message": { "raw": "RnJvbTogbWUNClRvOiBkdW4tZmluYWwtbm90aWNlLWFmdGVyLTE0LWRheXNAYmlsbGluZy5leGFtcGxlLmNvbQ0KU3ViamVjdDogRmluYWwgbm90aWNlOiAkNjAwLjAwIG92ZXJkdWUNCk1lc3NhZ2UtSUQ6IDw0YzU3NzVhMmUwYzQyMjg5LmR1bm5pbmctZmluYWxfbm90aWNlLWJjMDIzY2IzY2JAb3BzLmFjbWUuZXhhbXBsZT4NCk1JTUUtVmVyc2lvbjogMS4wDQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04Ig0KQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdA0KDQpIZWxsbywKCkludm9pY2UgaW5fSlhOWEgyUVBQRVBUVjE1VDhQU1BMMFBDIGZvciAkNjAwLjAwIGlzIG92ZXJkdWUuIElmIGl0IHN0YXlzIHVucGFpZCwgeW91ciBzdWJzY3JpcHRpb24gd2lsbCBiZSBjYW5jZWxsZWQgYWZ0ZXIgYSByZXZpZXcgYnkgb3VyIGJpbGxpbmcgdGVhbS4KCkFDTUUgQmlsbGluZw", "payload": { "mimeType": "text/plain", "headers": [ { "name": "From", "value": "me" }, { "name": "To", "value": "[email protected]" }, { "name": "Subject", "value": "Final notice: $600.00 overdue" }, { "name": "Message-ID", "value": "<4c5775a2e0c42289.dunning-final_notice-bc023cb3cb@ops.acme.example>" }, { "name": "MIME-Version", "value": "1.0" }, { "name": "Content-Type", "value": "text/plain; charset=\"UTF-8\"" }, { "name": "Content-Transfer-Encoding", "value": "8bit" } ], "body": { "size": 173, "data": "SGVsbG8sCgpJbnZvaWNlIGluX0pYTlhIMlFQUEVQVFYxNVQ4UFNQTDBQQyBmb3IgJDYwMC4wMCBpcyBvdmVyZHVlLiBJZiBpdCBzdGF5cyB1bnBhaWQsIHlvdXIgc3Vic2NyaXB0aW9uIHdpbGwgYmUgY2FuY2VsbGVkIGFmdGVyIGEgcmV2aWV3IGJ5IG91ciBiaWxsaW5nIHRlYW0uCgpBQ01FIEJpbGxpbmc" } }, "sizeEstimate": 457, "labelIds": [ "DRAFT" ], "id": "7156cf22ddda4a90" }, "user_id": "me", "id": "r2968987519549496" } - · POST stripe request · provider traffic · /v1/customers/cus_PY3QZKYU9K5GP5IV · HTTP 200 · request c29b7bb42086 · processing 16.16ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/198897286c/v1/customers/cus_PY3QZKYU9K5GP5IV' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'content-type: application/x-www-form-urlencoded' \ --data-raw '{ "metadata": { "acme_dunning_in_JXNXH2QPPEPTV15T8PSPL0PC": "final_notice" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 16.16ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "67", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "content-type": "application/x-www-form-urlencoded" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "metadata": { "acme_dunning_in_JXNXH2QPPEPTV15T8PSPL0PC": "final_notice" } }Recorded response · HTTP 200
{ "email": "[email protected]", "name": "Dana Billing", "id": "cus_PY3QZKYU9K5GP5IV", "address": null, "balance": 0, "business_name": "Sample Business", "cash_balance": null, "created": 22, "currency": "USD", "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "individual_name": "Sample Individual", "invoice_prefix": null, "livemode": false, "object": "customer", "phone": "+14155550100", "preferred_locales": null, "shipping": null, "tax_exempt": "exempt", "test_clock": null, "invoice_settings[default_payment_method]": "pm_card_chargeCustomerFail", "metadata": { "acme_dunning_in_JXNXH2QPPEPTV15T8PSPL0PC": "final_notice" } } - · GET app request /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/final_notice_after_14_days/runs · final notice after 14 days · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/final_notice_after_14_days/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:25.033811+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "final-notice-after-14-days-vr_243352f82fcf4575922b792da8a81865", "workflow": "failed-payment-dunning", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "Finance", "team": "billing-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "final_notice_after_14_days" }, "duplicateStarts": 0, "agents": [ { "name": "invoice-check", "status": "ok", "summary": "1 invoice(s), 1 open", "durationMs": 1361 }, { "name": "dunning-plan", "status": "ok", "summary": "1 step(s) due", "durationMs": 0 } ], "actions": [ { "id": "gmail.draft_final_notice:bc023cb3cb", "kind": "gmail.draft_notice", "provider": "gmail", "agent": "dunning-plan", "gate": "auto", "status": "applied", "summary": { "invoice": "in_JXNXH2QPPEPTV15T8PSPL0PC", "step": "final_notice", "sent": false }, "attempts": 1, "ref": "r2968987519549496", "appliedAt": "2026-10-22T18:56:24.330Z", "reconciled": null }, { "id": "stripe.record_step:in_JXNXH2QPPEPTV15T8PSPL0PC", "kind": "stripe.record_step", "provider": "stripe", "agent": "dunning-plan", "gate": "auto", "status": "applied", "summary": { "invoice": "in_JXNXH2QPPEPTV15T8PSPL0PC", "step": "final_notice" }, "attempts": 1, "ref": "cus_PY3QZKYU9K5GP5IV", "detail": { "step": "final_notice" }, "appliedAt": "2026-10-22T18:56:24.534Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": null, "output": { "mode": "dunning", "invoices": 1, "steps": [ "in_JXNXH2QPPEPTV15T8PSPL0PC:final_notice" ], "skipped": [] }, "events": [ { "at": "2026-10-22T18:56:22.183Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T18:56:23.546Z", "msg": "agents: invoice-check=ok" }, { "at": "2026-10-22T18:56:23.550Z", "msg": "planned 2 action(s): 0 need approval" }, { "at": "2026-10-22T18:56:24.330Z", "msg": "gmail.draft_final_notice:bc023cb3cb: applied" }, { "at": "2026-10-22T18:56:24.534Z", "msg": "stripe.record_step:in_JXNXH2QPPEPTV15T8PSPL0PC: applied" }, { "at": "2026-10-22T18:56:24.535Z", "msg": "done (ok)" } ], "createdAt": "2026-10-22T18:56:22.183Z", "updatedAt": "2026-10-22T18:56:24.535Z" } ] } - · POST app request /invocations · final notice after 14 days · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "final-notice-after-14-days-vr_243352f82fcf4575922b792da8a81865", "input": { "stage": "sweep", "customers": [ "[email protected]" ], "financeChannel": "C0BILLING01", "approvers": [ "U_CONTROLLER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "final_notice_after_14_days" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:25.305428+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "383", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "final-notice-after-14-days-vr_243352f82fcf4575922b792da8a81865", "input": { "stage": "sweep", "customers": [ "[email protected]" ], "financeChannel": "C0BILLING01", "approvers": [ "U_CONTROLLER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "final_notice_after_14_days" } }Recorded response · HTTP 200
{ "runId": "final-notice-after-14-days-vr_243352f82fcf4575922b792da8a81865", "workflow": "failed-payment-dunning", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "Finance", "team": "billing-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "final_notice_after_14_days" }, "duplicateStarts": 1, "agents": [ { "name": "invoice-check", "status": "ok", "summary": "1 invoice(s), 1 open", "durationMs": 1361 }, { "name": "dunning-plan", "status": "ok", "summary": "1 step(s) due", "durationMs": 0 } ], "actions": [ { "id": "gmail.draft_final_notice:bc023cb3cb", "kind": "gmail.draft_notice", "provider": "gmail", "agent": "dunning-plan", "gate": "auto", "status": "applied", "summary": { "invoice": "in_JXNXH2QPPEPTV15T8PSPL0PC", "step": "final_notice", "sent": false }, "attempts": 1, "ref": "r2968987519549496", "appliedAt": "2026-10-22T18:56:24.330Z", "reconciled": null }, { "id": "stripe.record_step:in_JXNXH2QPPEPTV15T8PSPL0PC", "kind": "stripe.record_step", "provider": "stripe", "agent": "dunning-plan", "gate": "auto", "status": "applied", "summary": { "invoice": "in_JXNXH2QPPEPTV15T8PSPL0PC", "step": "final_notice" }, "attempts": 1, "ref": "cus_PY3QZKYU9K5GP5IV", "detail": { "step": "final_notice" }, "appliedAt": "2026-10-22T18:56:24.534Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": null, "output": { "mode": "dunning", "invoices": 1, "steps": [ "in_JXNXH2QPPEPTV15T8PSPL0PC:final_notice" ], "skipped": [] }, "events": [ { "at": "2026-10-22T18:56:22.183Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T18:56:23.546Z", "msg": "agents: invoice-check=ok" }, { "at": "2026-10-22T18:56:23.550Z", "msg": "planned 2 action(s): 0 need approval" }, { "at": "2026-10-22T18:56:24.330Z", "msg": "gmail.draft_final_notice:bc023cb3cb: applied" }, { "at": "2026-10-22T18:56:24.534Z", "msg": "stripe.record_step:in_JXNXH2QPPEPTV15T8PSPL0PC: applied" }, { "at": "2026-10-22T18:56:24.535Z", "msg": "done (ok)" }, { "at": "2026-10-22T18:56:25.168Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-22T18:56:22.183Z", "updatedAt": "2026-10-22T18:56:25.168Z", "duplicate": true } - · GET app request /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/final_notice_after_14_days/runs · final notice after 14 days · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/final_notice_after_14_days/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:25.645823+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "final-notice-after-14-days-vr_243352f82fcf4575922b792da8a81865", "workflow": "failed-payment-dunning", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "Finance", "team": "billing-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "final_notice_after_14_days" }, "duplicateStarts": 1, "agents": [ { "name": "invoice-check", "status": "ok", "summary": "1 invoice(s), 1 open", "durationMs": 1361 }, { "name": "dunning-plan", "status": "ok", "summary": "1 step(s) due", "durationMs": 0 } ], "actions": [ { "id": "gmail.draft_final_notice:bc023cb3cb", "kind": "gmail.draft_notice", "provider": "gmail", "agent": "dunning-plan", "gate": "auto", "status": "applied", "summary": { "invoice": "in_JXNXH2QPPEPTV15T8PSPL0PC", "step": "final_notice", "sent": false }, "attempts": 1, "ref": "r2968987519549496", "appliedAt": "2026-10-22T18:56:24.330Z", "reconciled": null }, { "id": "stripe.record_step:in_JXNXH2QPPEPTV15T8PSPL0PC", "kind": "stripe.record_step", "provider": "stripe", "agent": "dunning-plan", "gate": "auto", "status": "applied", "summary": { "invoice": "in_JXNXH2QPPEPTV15T8PSPL0PC", "step": "final_notice" }, "attempts": 1, "ref": "cus_PY3QZKYU9K5GP5IV", "detail": { "step": "final_notice" }, "appliedAt": "2026-10-22T18:56:24.534Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": null, "output": { "mode": "dunning", "invoices": 1, "steps": [ "in_JXNXH2QPPEPTV15T8PSPL0PC:final_notice" ], "skipped": [] }, "events": [ { "at": "2026-10-22T18:56:22.183Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T18:56:23.546Z", "msg": "agents: invoice-check=ok" }, { "at": "2026-10-22T18:56:23.550Z", "msg": "planned 2 action(s): 0 need approval" }, { "at": "2026-10-22T18:56:24.330Z", "msg": "gmail.draft_final_notice:bc023cb3cb: applied" }, { "at": "2026-10-22T18:56:24.534Z", "msg": "stripe.record_step:in_JXNXH2QPPEPTV15T8PSPL0PC: applied" }, { "at": "2026-10-22T18:56:24.535Z", "msg": "done (ok)" }, { "at": "2026-10-22T18:56:25.168Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-22T18:56:22.183Z", "updatedAt": "2026-10-22T18:56:25.168Z" } ] } - · GET app request /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/cancellation_needs_approval/runs · cancellation needs approval · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/cancellation_needs_approval/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:25.888775+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json", "content-length": "11" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [] } - · POST app request /invocations · cancellation needs approval · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "cancellation-needs-approval-vr_243352f82fcf4575922b792da8a81865", "input": { "stage": "sweep", "customers": [ "[email protected]" ], "financeChannel": "C0BILLING01", "approvers": [ "U_CONTROLLER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "cancellation_needs_approval" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:28.436887+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "386", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "cancellation-needs-approval-vr_243352f82fcf4575922b792da8a81865", "input": { "stage": "sweep", "customers": [ "[email protected]" ], "financeChannel": "C0BILLING01", "approvers": [ "U_CONTROLLER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "cancellation_needs_approval" } }Recorded response · HTTP 200
{ "runId": "cancellation-needs-approval-vr_243352f82fcf4575922b792da8a81865", "workflow": "failed-payment-dunning", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "Finance", "team": "billing-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "cancellation_needs_approval" }, "duplicateStarts": 0, "agents": [ { "name": "invoice-check", "status": "ok", "summary": "1 invoice(s), 1 open", "durationMs": 896 }, { "name": "dunning-plan", "status": "ok", "summary": "1 step(s) due", "durationMs": 0 } ], "actions": [ { "id": "gmail.draft_final_notice:aa550e3a1a", "kind": "gmail.draft_notice", "provider": "gmail", "agent": "dunning-plan", "gate": "auto", "status": "applied", "summary": { "invoice": "in_HZV2FOX5SENPYNC7RR3C0IYH", "step": "final_notice", "sent": false }, "attempts": 1, "ref": "r4703700278633427", "appliedAt": "2026-10-22T18:56:28.115Z", "reconciled": null }, { "id": "stripe.record_step:in_HZV2FOX5SENPYNC7RR3C0IYH", "kind": "stripe.record_step", "provider": "stripe", "agent": "dunning-plan", "gate": "auto", "status": "applied", "summary": { "invoice": "in_HZV2FOX5SENPYNC7RR3C0IYH", "step": "final_notice" }, "attempts": 1, "ref": "cus_WFOTIBWGPNDNHNRP", "detail": { "step": "final_notice" }, "appliedAt": "2026-10-22T18:56:28.315Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": null, "output": { "mode": "dunning", "invoices": 1, "steps": [ "in_HZV2FOX5SENPYNC7RR3C0IYH:final_notice" ], "skipped": [] }, "events": [ { "at": "2026-10-22T18:56:26.004Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T18:56:26.902Z", "msg": "agents: invoice-check=ok" }, { "at": "2026-10-22T18:56:26.904Z", "msg": "planned 2 action(s): 0 need approval" }, { "at": "2026-10-22T18:56:28.115Z", "msg": "gmail.draft_final_notice:aa550e3a1a: applied" }, { "at": "2026-10-22T18:56:28.315Z", "msg": "stripe.record_step:in_HZV2FOX5SENPYNC7RR3C0IYH: applied" }, { "at": "2026-10-22T18:56:28.316Z", "msg": "done (ok)" } ], "createdAt": "2026-10-22T18:56:26.004Z", "updatedAt": "2026-10-22T18:56:28.316Z", "duplicate": false } - · GET stripe request · provider traffic · /v1/customers · HTTP 200 · request c7f73b3c5a52 · processing 17.87ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/customers' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 17.87ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [ { "email": "[email protected]", "name": "Dana Billing", "id": "cus_WFOTIBWGPNDNHNRP", "address": null, "balance": 0, "business_name": "Sample Business", "cash_balance": null, "created": 57, "currency": "USD", "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "individual_name": "Sample Individual", "invoice_prefix": null, "livemode": false, "object": "customer", "phone": "+14155550100", "preferred_locales": null, "shipping": null, "tax_exempt": "exempt", "test_clock": null } ], "has_more": false, "object": "list", "url": "/v1/customers" } - · GET stripe request · provider traffic · /v1/invoices · HTTP 200 · request 018258a23e1f · processing 157.65ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/invoices' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 157.65ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [ { "object": "invoice", "parent": { "type": "subscription_details", "subscription_details": { "subscription": "sub_5GFMMEQUI7OW4HTDD69ACV0K", "metadata": {} } }, "customer": "cus_WFOTIBWGPNDNHNRP", "currency": "usd", "total": 60000, "amount_due": 60000, "amount_paid": 0, "amount_remaining": 60000, "status": "open", "created": 1792695275, "id": "in_HZV2FOX5SENPYNC7RR3C0IYH", "payments": { "object": "list", "data": [ { "id": "inpay_G3ARARQZTS4CNR4LV9EM21V9", "object": "invoice_payment", "invoice": "in_HZV2FOX5SENPYNC7RR3C0IYH", "amount_requested": 60000, "amount_paid": null, "currency": "usd", "created": 1792695275, "is_default": true, "livemode": false, "status": "open", "status_transitions": { "paid_at": null, "canceled_at": null }, "payment": { "type": "payment_intent", "payment_intent": "pi_RKWTM2N3RU1EVNA7LT1SCGB3" } } ], "has_more": false, "url": "/v1/invoice_payments?invoice=in_HZV2FOX5SENPYNC7RR3C0IYH" }, "amount_overpaid": 92, "amount_shipping": 17, "attempt_count": 70, "attempted": true, "auto_advance": true, "automatic_tax": { "disabled_reason": "finalization_requires_location_inputs", "enabled": true, "provider": "default", "status": "complete" }, "collection_method": "charge_automatically", "default_tax_rates": [ { "active": true, "country": "US", "created": 42, "display_name": "Item 925", "id": "obj_2906e94946a54b8ba16cc06ce4", "inclusive": true, "jurisdiction_level": "city", "livemode": false, "object": "tax_rate", "percentage": 577.7496, "rate_type": "flat_amount", "tax_type": "amusement_tax" } ], "discounts": [ "sample-value" ], "issuer": { "type": "account" }, "lines": { "data": [ { "amount": 74, "currency": "USD", "discountable": true, "discounts": [ "sample-value" ], "id": "obj_289178944af24c5eb1346abb65", "livemode": false, "metadata": {}, "object": "line_item", "period": { "end": 21, "start": 4 }, "subtotal": 32 } ], "has_more": true, "object": "list", "url": "https://example.com/b0ee50f2" }, "livemode": true, "payment_settings": { "default_mandate": "sample-value", "payment_method_options": { "acss_debit": { "mandate_options": { "transaction_type": "business" }, "verification_method": "automatic" }, "bancontact": { "preferred_language": "de" }, "card": { "installments": { "enabled": true }, "request_three_d_secure": "any" }, "customer_balance": { "bank_transfer": { "eu_bank_transfer": { "country": "US" }, "type": "default" }, "funding_type": "bank_transfer" }, "konbini": {}, "payto": { "mandate_options": { "amount": 0, "amount_type": "fixed", "purpose": "dependant_support" } }, "sepa_debit": {}, "us_bank_account": { "financial_connections": { "filters": { "account_subcategories": [ "checking" ] }, "permissions": [ "balances" ], "prefetch": [ "balances" ] }, "verification_method": "automatic" } }, "payment_method_types": [ "ach_credit_transfer" ] }, "period_end": 70, "period_start": 80, "post_payment_credit_notes_amount": 9, "pre_payment_credit_notes_amount": 32, "starting_balance": 70, "status_transitions": { "finalized_at": 14, "marked_uncollectible_at": 82, "paid_at": 63, "voided_at": 48 }, "subtotal": 23, "account_country": null, "account_name": null, "account_tax_ids": null, "application": null, "automatically_finalizes_at": null, "billing_reason": null, "confirmation_secret": "[redacted]", "custom_fields": null, "customer_account": null, "customer_address": null, "customer_email": null, "customer_name": null, "customer_phone": null, "customer_shipping": null, "customer_tax_exempt": null, "customer_tax_ids": null, "default_payment_method": null, "default_source": null, "description": null, "due_date": null, "effective_at": null, "ending_balance": null, "footer": null, "from_invoice": null, "hosted_invoice_url": null, "invoice_pdf": null, "last_finalization_error": null, "latest_revision": null, "metadata": null, "next_payment_attempt": null, "number": null, "on_behalf_of": null, "receipt_number": null, "rendering": null, "shipping_cost": null, "shipping_details": null, "statement_descriptor": null, "subtotal_excluding_tax": null, "test_clock": null, "total_discount_amounts": null, "total_excluding_tax": null, "total_pretax_credit_amounts": null, "total_taxes": null, "webhooks_delivered_at": null } ], "has_more": false, "object": "list", "url": "/v1/invoices" } - · GET stripe request · provider traffic · /v1/customers/cus_WFOTIBWGPNDNHNRP · HTTP 200 · request c26c73754e61 · processing 15.56ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/customers/cus_WFOTIBWGPNDNHNRP' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 15.56ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "address": null, "balance": 0, "business_name": "Sample Business", "cash_balance": null, "created": 57, "currency": "USD", "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "[email protected]", "id": "cus_WFOTIBWGPNDNHNRP", "individual_name": "Sample Individual", "invoice_prefix": null, "livemode": false, "name": "Dana Billing", "object": "customer", "phone": "+14155550100", "preferred_locales": null, "shipping": null, "tax_exempt": "exempt", "test_clock": null, "invoice_settings[default_payment_method]": "pm_card_chargeCustomerFail" } - · GET stripe request · provider traffic · /v1/payment_methods · HTTP 200 · request d0761a1ca2d1 · processing 2.48ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/payment_methods' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 2.48ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [], "has_more": false, "object": "list", "url": "/v1/payment_methods" } - · GET stripe request · provider traffic · /v1/invoices/in_HZV2FOX5SENPYNC7RR3C0IYH · HTTP 200 · request 8e3ae46304da · processing 684.91ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/invoices/in_HZV2FOX5SENPYNC7RR3C0IYH' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 684.91ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "account_country": null, "account_name": "Sample Account", "account_tax_ids": null, "amount_due": 60000, "amount_overpaid": 6, "amount_paid": 0, "amount_remaining": 60000, "amount_shipping": 77, "application": null, "attempt_count": 0, "attempted": true, "auto_advance": true, "automatic_tax": { "disabled_reason": "finalization_requires_location_inputs", "enabled": true, "liability": null, "provider": "default", "status": "complete" }, "automatically_finalizes_at": null, "billing_reason": "automatic_pending_invoice_item_invoice", "collection_method": "charge_automatically", "confirmation_secret": "[redacted]", "created": 1792695275, "currency": "usd", "custom_fields": null, "customer": "cus_WFOTIBWGPNDNHNRP", "customer_account": null, "customer_address": null, "customer_email": null, "customer_name": "Sample Customer", "customer_phone": null, "customer_shipping": null, "customer_tax_exempt": "exempt", "customer_tax_ids": null, "default_payment_method": null, "default_source": null, "default_tax_rates": [ { "active": true, "country": "US", "created": 7, "description": null, "display_name": "Item 871", "effective_percentage": null, "flat_amount": null, "id": "obj_bb56b3e602ba4726821e0af0a1", "inclusive": true, "jurisdiction": null, "jurisdiction_level": "city", "livemode": false, "metadata": null, "object": "tax_rate", "percentage": 88.7321, "rate_type": "flat_amount", "state": null, "tax_type": "amusement_tax" } ], "description": null, "discounts": [ "sample-value" ], "due_date": null, "effective_at": null, "ending_balance": null, "footer": null, "from_invoice": null, "hosted_invoice_url": "https://example.com/e93a162b", "id": "in_HZV2FOX5SENPYNC7RR3C0IYH", "invoice_pdf": null, "issuer": { "type": "account" }, "last_finalization_error": null, "latest_revision": null, "lines": { "data": [ { "amount": 98, "currency": "USD", "description": null, "discount_amounts": null, "discountable": true, "discounts": [ "sample-value" ], "id": "obj_06def705680e41d39426804e63", "invoice": null, "livemode": false, "metadata": {}, "object": "line_item", "parent": null, "period": { "end": 4, "start": 91 }, "pretax_credit_amounts": null, "pricing": null, "quantity": null, "subscription": null, "subtotal": 7, "taxes": null } ], "has_more": true, "object": "list", "url": "https://example.com/7015dae7" }, "livemode": false, "metadata": null, "next_payment_attempt": null, "number": null, "object": "invoice", "on_behalf_of": null, "parent": { "type": "subscription_details", "subscription_details": { "subscription": "sub_5GFMMEQUI7OW4HTDD69ACV0K", "metadata": {} } }, "payment_settings": { "default_mandate": "sample-value", "payment_method_options": { "acss_debit": { "mandate_options": "sample-value", "verification_method": "automatic" }, "bancontact": { "preferred_language": "de" }, "card": { "installments": "sample-value", "request_three_d_secure": "any" }, "customer_balance": { "bank_transfer": "sample-value", "funding_type": "bank_transfer" }, "konbini": {}, "payto": { "mandate_options": "sample-value" }, "sepa_debit": {}, "us_bank_account": { "financial_connections": "sample-value", "verification_method": "automatic" } }, "payment_method_types": [ "ach_credit_transfer" ] }, "period_end": 31, "period_start": 13, "post_payment_credit_notes_amount": 60, "pre_payment_credit_notes_amount": 75, "receipt_number": null, "rendering": null, "shipping_cost": null, "shipping_details": null, "starting_balance": 91, "statement_descriptor": null, "status": "open", "status_transitions": { "finalized_at": 52, "marked_uncollectible_at": 9, "paid_at": 15, "voided_at": 64 }, "subtotal": 9, "subtotal_excluding_tax": null, "test_clock": null, "total": 60000, "total_discount_amounts": null, "total_excluding_tax": null, "total_pretax_credit_amounts": null, "total_taxes": null, "webhooks_delivered_at": null, "payments": { "object": "list", "data": [ { "id": "inpay_G3ARARQZTS4CNR4LV9EM21V9", "object": "invoice_payment", "invoice": "in_HZV2FOX5SENPYNC7RR3C0IYH", "amount_requested": 60000, "amount_paid": null, "currency": "usd", "created": 1792695275, "is_default": true, "livemode": false, "status": "open", "status_transitions": { "paid_at": null, "canceled_at": null }, "payment": { "type": "payment_intent", "payment_intent": "pi_RKWTM2N3RU1EVNA7LT1SCGB3" } } ], "has_more": false, "url": "/v1/invoice_payments?invoice=in_HZV2FOX5SENPYNC7RR3C0IYH" } } - · GET stripe request · provider traffic · /v1/customers/cus_WFOTIBWGPNDNHNRP · HTTP 200 · request 961754a9b06a · processing 14.65ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/customers/cus_WFOTIBWGPNDNHNRP' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 14.65ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "address": null, "balance": 0, "business_name": "Sample Business", "cash_balance": null, "created": 57, "currency": "USD", "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "[email protected]", "id": "cus_WFOTIBWGPNDNHNRP", "individual_name": "Sample Individual", "invoice_prefix": null, "livemode": false, "name": "Dana Billing", "object": "customer", "phone": "+14155550100", "preferred_locales": null, "shipping": null, "tax_exempt": "exempt", "test_clock": null, "invoice_settings[default_payment_method]": "pm_card_chargeCustomerFail" } - · POST gmail request · provider traffic · /gmail/v1/users/me/drafts · HTTP 200 · request 51f6f023f443 · processing 13.83ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/caf533faa2/gmail/v1/users/me/drafts' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'content-type: application/json; charset=utf-8' \ --data-raw '{ "message": { "raw": "RnJvbTogbWUNClRvOiBkdW4tY2FuY2VsbGF0aW9uLW5lZWRzLWFwcHJvdmFsQGJpbGxpbmcuZXhhbXBsZS5jb20NClN1YmplY3Q6IEZpbmFsIG5vdGljZTogJDYwMC4wMCBvdmVyZHVlDQpNZXNzYWdlLUlEOiA8NWI5MDg3YmMzZjhkY2YxMi5kdW5uaW5nLWZpbmFsX25vdGljZS1hYTU1MGUzYTFhQG9wcy5hY21lLmV4YW1wbGU-DQpNSU1FLVZlcnNpb246IDEuMA0KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCINCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQNCg0KSGVsbG8sCgpJbnZvaWNlIGluX0haVjJGT1g1U0VOUFlOQzdSUjNDMElZSCBmb3IgJDYwMC4wMCBpcyBvdmVyZHVlLiBJZiBpdCBzdGF5cyB1bnBhaWQsIHlvdXIgc3Vic2NyaXB0aW9uIHdpbGwgYmUgY2FuY2VsbGVkIGFmdGVyIGEgcmV2aWV3IGJ5IG91ciBiaWxsaW5nIHRlYW0uCgpBQ01FIEJpbGxpbmc" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 13.83ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "633", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "content-type": "application/json; charset=utf-8" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "message": { "raw": "RnJvbTogbWUNClRvOiBkdW4tY2FuY2VsbGF0aW9uLW5lZWRzLWFwcHJvdmFsQGJpbGxpbmcuZXhhbXBsZS5jb20NClN1YmplY3Q6IEZpbmFsIG5vdGljZTogJDYwMC4wMCBvdmVyZHVlDQpNZXNzYWdlLUlEOiA8NWI5MDg3YmMzZjhkY2YxMi5kdW5uaW5nLWZpbmFsX25vdGljZS1hYTU1MGUzYTFhQG9wcy5hY21lLmV4YW1wbGU-DQpNSU1FLVZlcnNpb246IDEuMA0KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCINCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQNCg0KSGVsbG8sCgpJbnZvaWNlIGluX0haVjJGT1g1U0VOUFlOQzdSUjNDMElZSCBmb3IgJDYwMC4wMCBpcyBvdmVyZHVlLiBJZiBpdCBzdGF5cyB1bnBhaWQsIHlvdXIgc3Vic2NyaXB0aW9uIHdpbGwgYmUgY2FuY2VsbGVkIGFmdGVyIGEgcmV2aWV3IGJ5IG91ciBiaWxsaW5nIHRlYW0uCgpBQ01FIEJpbGxpbmc" } }Recorded response · HTTP 200
{ "message": { "raw": "RnJvbTogbWUNClRvOiBkdW4tY2FuY2VsbGF0aW9uLW5lZWRzLWFwcHJvdmFsQGJpbGxpbmcuZXhhbXBsZS5jb20NClN1YmplY3Q6IEZpbmFsIG5vdGljZTogJDYwMC4wMCBvdmVyZHVlDQpNZXNzYWdlLUlEOiA8NWI5MDg3YmMzZjhkY2YxMi5kdW5uaW5nLWZpbmFsX25vdGljZS1hYTU1MGUzYTFhQG9wcy5hY21lLmV4YW1wbGU-DQpNSU1FLVZlcnNpb246IDEuMA0KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCINCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQNCg0KSGVsbG8sCgpJbnZvaWNlIGluX0haVjJGT1g1U0VOUFlOQzdSUjNDMElZSCBmb3IgJDYwMC4wMCBpcyBvdmVyZHVlLiBJZiBpdCBzdGF5cyB1bnBhaWQsIHlvdXIgc3Vic2NyaXB0aW9uIHdpbGwgYmUgY2FuY2VsbGVkIGFmdGVyIGEgcmV2aWV3IGJ5IG91ciBiaWxsaW5nIHRlYW0uCgpBQ01FIEJpbGxpbmc", "payload": { "mimeType": "text/plain", "headers": [ { "name": "From", "value": "me" }, { "name": "To", "value": "[email protected]" }, { "name": "Subject", "value": "Final notice: $600.00 overdue" }, { "name": "Message-ID", "value": "<5b9087bc3f8dcf12.dunning-final_notice-aa550e3a1a@ops.acme.example>" }, { "name": "MIME-Version", "value": "1.0" }, { "name": "Content-Type", "value": "text/plain; charset=\"UTF-8\"" }, { "name": "Content-Transfer-Encoding", "value": "8bit" } ], "body": { "size": 173, "data": "SGVsbG8sCgpJbnZvaWNlIGluX0haVjJGT1g1U0VOUFlOQzdSUjNDMElZSCBmb3IgJDYwMC4wMCBpcyBvdmVyZHVlLiBJZiBpdCBzdGF5cyB1bnBhaWQsIHlvdXIgc3Vic2NyaXB0aW9uIHdpbGwgYmUgY2FuY2VsbGVkIGFmdGVyIGEgcmV2aWV3IGJ5IG91ciBiaWxsaW5nIHRlYW0uCgpBQ01FIEJpbGxpbmc" } }, "sizeEstimate": 458, "labelIds": [ "DRAFT" ], "id": "58400e2f38a34b7e" }, "user_id": "me", "id": "r4703700278633427" } - · POST stripe request · provider traffic · /v1/customers/cus_WFOTIBWGPNDNHNRP · HTTP 200 · request 29405d154b53 · processing 16.32ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/198897286c/v1/customers/cus_WFOTIBWGPNDNHNRP' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'content-type: application/x-www-form-urlencoded' \ --data-raw '{ "metadata": { "acme_dunning_in_HZV2FOX5SENPYNC7RR3C0IYH": "final_notice" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 16.32ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "67", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "content-type": "application/x-www-form-urlencoded" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "metadata": { "acme_dunning_in_HZV2FOX5SENPYNC7RR3C0IYH": "final_notice" } }Recorded response · HTTP 200
{ "email": "[email protected]", "name": "Dana Billing", "id": "cus_WFOTIBWGPNDNHNRP", "address": null, "balance": 0, "business_name": "Sample Business", "cash_balance": null, "created": 57, "currency": "USD", "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "individual_name": "Sample Individual", "invoice_prefix": null, "livemode": false, "object": "customer", "phone": "+14155550100", "preferred_locales": null, "shipping": null, "tax_exempt": "exempt", "test_clock": null, "invoice_settings[default_payment_method]": "pm_card_chargeCustomerFail", "metadata": { "acme_dunning_in_HZV2FOX5SENPYNC7RR3C0IYH": "final_notice" } } - · GET app request /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/cancellation_needs_approval/runs · cancellation needs approval · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/cancellation_needs_approval/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:28.773838+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "cancellation-needs-approval-vr_243352f82fcf4575922b792da8a81865", "workflow": "failed-payment-dunning", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "Finance", "team": "billing-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "cancellation_needs_approval" }, "duplicateStarts": 0, "agents": [ { "name": "invoice-check", "status": "ok", "summary": "1 invoice(s), 1 open", "durationMs": 896 }, { "name": "dunning-plan", "status": "ok", "summary": "1 step(s) due", "durationMs": 0 } ], "actions": [ { "id": "gmail.draft_final_notice:aa550e3a1a", "kind": "gmail.draft_notice", "provider": "gmail", "agent": "dunning-plan", "gate": "auto", "status": "applied", "summary": { "invoice": "in_HZV2FOX5SENPYNC7RR3C0IYH", "step": "final_notice", "sent": false }, "attempts": 1, "ref": "r4703700278633427", "appliedAt": "2026-10-22T18:56:28.115Z", "reconciled": null }, { "id": "stripe.record_step:in_HZV2FOX5SENPYNC7RR3C0IYH", "kind": "stripe.record_step", "provider": "stripe", "agent": "dunning-plan", "gate": "auto", "status": "applied", "summary": { "invoice": "in_HZV2FOX5SENPYNC7RR3C0IYH", "step": "final_notice" }, "attempts": 1, "ref": "cus_WFOTIBWGPNDNHNRP", "detail": { "step": "final_notice" }, "appliedAt": "2026-10-22T18:56:28.315Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": null, "output": { "mode": "dunning", "invoices": 1, "steps": [ "in_HZV2FOX5SENPYNC7RR3C0IYH:final_notice" ], "skipped": [] }, "events": [ { "at": "2026-10-22T18:56:26.004Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T18:56:26.902Z", "msg": "agents: invoice-check=ok" }, { "at": "2026-10-22T18:56:26.904Z", "msg": "planned 2 action(s): 0 need approval" }, { "at": "2026-10-22T18:56:28.115Z", "msg": "gmail.draft_final_notice:aa550e3a1a: applied" }, { "at": "2026-10-22T18:56:28.315Z", "msg": "stripe.record_step:in_HZV2FOX5SENPYNC7RR3C0IYH: applied" }, { "at": "2026-10-22T18:56:28.316Z", "msg": "done (ok)" } ], "createdAt": "2026-10-22T18:56:26.004Z", "updatedAt": "2026-10-22T18:56:28.316Z" } ] } - · POST app request /invocations · cancellation needs approval · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "cancellation-needs-approval-vr_243352f82fcf4575922b792da8a81865", "input": { "stage": "sweep", "customers": [ "[email protected]" ], "financeChannel": "C0BILLING01", "approvers": [ "U_CONTROLLER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "cancellation_needs_approval" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:29.026198+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "386", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "cancellation-needs-approval-vr_243352f82fcf4575922b792da8a81865", "input": { "stage": "sweep", "customers": [ "[email protected]" ], "financeChannel": "C0BILLING01", "approvers": [ "U_CONTROLLER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "cancellation_needs_approval" } }Recorded response · HTTP 200
{ "runId": "cancellation-needs-approval-vr_243352f82fcf4575922b792da8a81865", "workflow": "failed-payment-dunning", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "Finance", "team": "billing-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "cancellation_needs_approval" }, "duplicateStarts": 1, "agents": [ { "name": "invoice-check", "status": "ok", "summary": "1 invoice(s), 1 open", "durationMs": 896 }, { "name": "dunning-plan", "status": "ok", "summary": "1 step(s) due", "durationMs": 0 } ], "actions": [ { "id": "gmail.draft_final_notice:aa550e3a1a", "kind": "gmail.draft_notice", "provider": "gmail", "agent": "dunning-plan", "gate": "auto", "status": "applied", "summary": { "invoice": "in_HZV2FOX5SENPYNC7RR3C0IYH", "step": "final_notice", "sent": false }, "attempts": 1, "ref": "r4703700278633427", "appliedAt": "2026-10-22T18:56:28.115Z", "reconciled": null }, { "id": "stripe.record_step:in_HZV2FOX5SENPYNC7RR3C0IYH", "kind": "stripe.record_step", "provider": "stripe", "agent": "dunning-plan", "gate": "auto", "status": "applied", "summary": { "invoice": "in_HZV2FOX5SENPYNC7RR3C0IYH", "step": "final_notice" }, "attempts": 1, "ref": "cus_WFOTIBWGPNDNHNRP", "detail": { "step": "final_notice" }, "appliedAt": "2026-10-22T18:56:28.315Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": null, "output": { "mode": "dunning", "invoices": 1, "steps": [ "in_HZV2FOX5SENPYNC7RR3C0IYH:final_notice" ], "skipped": [] }, "events": [ { "at": "2026-10-22T18:56:26.004Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T18:56:26.902Z", "msg": "agents: invoice-check=ok" }, { "at": "2026-10-22T18:56:26.904Z", "msg": "planned 2 action(s): 0 need approval" }, { "at": "2026-10-22T18:56:28.115Z", "msg": "gmail.draft_final_notice:aa550e3a1a: applied" }, { "at": "2026-10-22T18:56:28.315Z", "msg": "stripe.record_step:in_HZV2FOX5SENPYNC7RR3C0IYH: applied" }, { "at": "2026-10-22T18:56:28.316Z", "msg": "done (ok)" }, { "at": "2026-10-22T18:56:28.889Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-22T18:56:26.004Z", "updatedAt": "2026-10-22T18:56:28.889Z", "duplicate": true } - · GET app request /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/cancellation_needs_approval/runs · cancellation needs approval · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/cancellation_needs_approval/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:29.371342+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "cancellation-needs-approval-vr_243352f82fcf4575922b792da8a81865", "workflow": "failed-payment-dunning", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "Finance", "team": "billing-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "cancellation_needs_approval" }, "duplicateStarts": 1, "agents": [ { "name": "invoice-check", "status": "ok", "summary": "1 invoice(s), 1 open", "durationMs": 896 }, { "name": "dunning-plan", "status": "ok", "summary": "1 step(s) due", "durationMs": 0 } ], "actions": [ { "id": "gmail.draft_final_notice:aa550e3a1a", "kind": "gmail.draft_notice", "provider": "gmail", "agent": "dunning-plan", "gate": "auto", "status": "applied", "summary": { "invoice": "in_HZV2FOX5SENPYNC7RR3C0IYH", "step": "final_notice", "sent": false }, "attempts": 1, "ref": "r4703700278633427", "appliedAt": "2026-10-22T18:56:28.115Z", "reconciled": null }, { "id": "stripe.record_step:in_HZV2FOX5SENPYNC7RR3C0IYH", "kind": "stripe.record_step", "provider": "stripe", "agent": "dunning-plan", "gate": "auto", "status": "applied", "summary": { "invoice": "in_HZV2FOX5SENPYNC7RR3C0IYH", "step": "final_notice" }, "attempts": 1, "ref": "cus_WFOTIBWGPNDNHNRP", "detail": { "step": "final_notice" }, "appliedAt": "2026-10-22T18:56:28.315Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": null, "output": { "mode": "dunning", "invoices": 1, "steps": [ "in_HZV2FOX5SENPYNC7RR3C0IYH:final_notice" ], "skipped": [] }, "events": [ { "at": "2026-10-22T18:56:26.004Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T18:56:26.902Z", "msg": "agents: invoice-check=ok" }, { "at": "2026-10-22T18:56:26.904Z", "msg": "planned 2 action(s): 0 need approval" }, { "at": "2026-10-22T18:56:28.115Z", "msg": "gmail.draft_final_notice:aa550e3a1a: applied" }, { "at": "2026-10-22T18:56:28.315Z", "msg": "stripe.record_step:in_HZV2FOX5SENPYNC7RR3C0IYH: applied" }, { "at": "2026-10-22T18:56:28.316Z", "msg": "done (ok)" }, { "at": "2026-10-22T18:56:28.889Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-22T18:56:26.004Z", "updatedAt": "2026-10-22T18:56:28.889Z" } ] } - · GET app request /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/repeated_failure_no_second_notice/runs · repeated failure no second notice · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/repeated_failure_no_second_notice/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:29.630709+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json", "content-length": "11" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [] } - · POST app request /invocations · repeated failure no second notice · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "repeated-failure-no-second-notice-vr_243352f82fcf4575922b792da8a81865", "input": { "stage": "payment_failed", "invoiceId": "in_0BNQI4GJ00GOV3LFS2DPBFS0", "financeChannel": "C0BILLING01", "approvers": [ "U_CONTROLLER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "repeated_failure_no_second_notice" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:30.466097+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "381", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "repeated-failure-no-second-notice-vr_243352f82fcf4575922b792da8a81865", "input": { "stage": "payment_failed", "invoiceId": "in_0BNQI4GJ00GOV3LFS2DPBFS0", "financeChannel": "C0BILLING01", "approvers": [ "U_CONTROLLER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "repeated_failure_no_second_notice" } }Recorded response · HTTP 200
{ "runId": "repeated-failure-no-second-notice-vr_243352f82fcf4575922b792da8a81865", "workflow": "failed-payment-dunning", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "Finance", "team": "billing-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "repeated_failure_no_second_notice" }, "duplicateStarts": 0, "agents": [ { "name": "invoice-check", "status": "ok", "summary": "1 invoice(s), 0 open", "durationMs": 596 }, { "name": "dunning-plan", "status": "ok", "summary": "0 step(s) due", "durationMs": 0 } ], "actions": [], "counts": { "applied": 0, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": null, "output": { "mode": "nothing", "invoices": 1, "steps": [], "skipped": [ "in_0BNQI4GJ00GOV3LFS2DPBFS0: invoice is paid" ] }, "events": [ { "at": "2026-10-22T18:56:29.745Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T18:56:30.342Z", "msg": "agents: invoice-check=ok" }, { "at": "2026-10-22T18:56:30.345Z", "msg": "planned 0 action(s): 0 need approval" }, { "at": "2026-10-22T18:56:30.345Z", "msg": "done (ok)" } ], "createdAt": "2026-10-22T18:56:29.745Z", "updatedAt": "2026-10-22T18:56:30.345Z", "duplicate": false } - · GET stripe request · provider traffic · /v1/invoices/in_0BNQI4GJ00GOV3LFS2DPBFS0 · HTTP 200 · request 55564191b9b5 · processing 90.05ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/invoices/in_0BNQI4GJ00GOV3LFS2DPBFS0' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 90.05ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "account_country": null, "account_name": "Sample Account", "account_tax_ids": null, "amount_due": 0, "amount_overpaid": 0, "amount_paid": 0, "amount_remaining": 0, "amount_shipping": 0, "application": null, "attempt_count": 0, "attempted": false, "auto_advance": false, "automatic_tax": { "enabled": false, "disabled_reason": null, "liability": null, "provider": null, "status": null }, "automatically_finalizes_at": null, "billing_reason": "automatic_pending_invoice_item_invoice", "collection_method": "charge_automatically", "confirmation_secret": "[redacted]", "created": 1792695277, "currency": "usd", "custom_fields": null, "customer": "cus_LJ2IJ2SMNJW4I01A", "customer_account": null, "customer_address": null, "customer_email": "[email protected]", "customer_name": "Sample Customer", "customer_phone": null, "customer_shipping": null, "customer_tax_exempt": "exempt", "customer_tax_ids": null, "default_payment_method": null, "default_source": null, "default_tax_rates": [], "description": null, "discounts": [], "due_date": null, "effective_at": null, "ending_balance": 0, "footer": null, "from_invoice": null, "hosted_invoice_url": null, "id": "in_0BNQI4GJ00GOV3LFS2DPBFS0", "invoice_pdf": null, "issuer": { "type": "account" }, "last_finalization_error": null, "latest_revision": null, "lines": { "object": "list", "data": [], "has_more": false, "total_count": 0, "url": "/v1/invoices/in_0BNQI4GJ00GOV3LFS2DPBFS0/lines" }, "livemode": false, "metadata": {}, "next_payment_attempt": null, "number": "FS-00GOV3LFS2DPBFS0", "object": "invoice", "on_behalf_of": null, "parent": null, "payment_settings": { "default_mandate": null, "payment_method_options": null, "payment_method_types": null }, "period_end": 1792695277, "period_start": 1792695277, "post_payment_credit_notes_amount": 0, "pre_payment_credit_notes_amount": 0, "receipt_number": null, "rendering": null, "shipping_cost": null, "shipping_details": null, "starting_balance": 0, "statement_descriptor": null, "status": "paid", "status_transitions": { "finalized_at": 1792695278, "paid_at": 1792695278, "voided_at": null, "marked_uncollectible_at": null }, "subtotal": 0, "subtotal_excluding_tax": 0, "test_clock": null, "total": 0, "total_discount_amounts": [], "total_excluding_tax": 0, "total_pretax_credit_amounts": [], "total_taxes": [], "webhooks_delivered_at": null } - · GET stripe request · provider traffic · /v1/customers/cus_LJ2IJ2SMNJW4I01A · HTTP 200 · request 231f719d2566 · processing 16.37ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/customers/cus_LJ2IJ2SMNJW4I01A' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 16.37ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "address": null, "balance": 0, "business_name": "Sample Business", "cash_balance": null, "created": 22, "currency": "USD", "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "[email protected]", "id": "cus_LJ2IJ2SMNJW4I01A", "individual_name": "Sample Individual", "invoice_prefix": null, "livemode": false, "name": "Dana Billing", "object": "customer", "phone": "+14155550100", "preferred_locales": null, "shipping": null, "tax_exempt": "exempt", "test_clock": null, "invoice_settings[default_payment_method]": "pm_card_chargeCustomerFail" } - · GET stripe request · provider traffic · /v1/payment_methods · HTTP 200 · request da045787ce0e · processing 2.53ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/payment_methods' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 2.53ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [], "has_more": false, "object": "list", "url": "/v1/payment_methods" } - · POST app request /invocations · repeated failure no second notice · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "repeat-b-vr_243352f82fcf4575922b792da8a81865", "input": { "stage": "payment_failed", "invoiceId": "in_0BNQI4GJ00GOV3LFS2DPBFS0", "financeChannel": "C0BILLING01", "approvers": [ "U_CONTROLLER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "repeated_failure_no_second_notice" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:31.328505+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "356", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "repeat-b-vr_243352f82fcf4575922b792da8a81865", "input": { "stage": "payment_failed", "invoiceId": "in_0BNQI4GJ00GOV3LFS2DPBFS0", "financeChannel": "C0BILLING01", "approvers": [ "U_CONTROLLER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "repeated_failure_no_second_notice" } }Recorded response · HTTP 200
{ "runId": "repeat-b-vr_243352f82fcf4575922b792da8a81865", "workflow": "failed-payment-dunning", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "Finance", "team": "billing-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "repeated_failure_no_second_notice" }, "duplicateStarts": 0, "agents": [ { "name": "invoice-check", "status": "ok", "summary": "1 invoice(s), 0 open", "durationMs": 623 }, { "name": "dunning-plan", "status": "ok", "summary": "0 step(s) due", "durationMs": 0 } ], "actions": [], "counts": { "applied": 0, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": null, "output": { "mode": "nothing", "invoices": 1, "steps": [], "skipped": [ "in_0BNQI4GJ00GOV3LFS2DPBFS0: invoice is paid" ] }, "events": [ { "at": "2026-10-22T18:56:30.575Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T18:56:31.199Z", "msg": "agents: invoice-check=ok" }, { "at": "2026-10-22T18:56:31.201Z", "msg": "planned 0 action(s): 0 need approval" }, { "at": "2026-10-22T18:56:31.202Z", "msg": "done (ok)" } ], "createdAt": "2026-10-22T18:56:30.575Z", "updatedAt": "2026-10-22T18:56:31.202Z", "duplicate": false } - · GET stripe request · provider traffic · /v1/invoices/in_0BNQI4GJ00GOV3LFS2DPBFS0 · HTTP 200 · request 41ccd59c8156 · processing 97.44ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/invoices/in_0BNQI4GJ00GOV3LFS2DPBFS0' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 97.44ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "account_country": null, "account_name": "Sample Account", "account_tax_ids": null, "amount_due": 0, "amount_overpaid": 0, "amount_paid": 0, "amount_remaining": 0, "amount_shipping": 0, "application": null, "attempt_count": 0, "attempted": false, "auto_advance": false, "automatic_tax": { "enabled": false, "disabled_reason": null, "liability": null, "provider": null, "status": null }, "automatically_finalizes_at": null, "billing_reason": "automatic_pending_invoice_item_invoice", "collection_method": "charge_automatically", "confirmation_secret": "[redacted]", "created": 1792695277, "currency": "usd", "custom_fields": null, "customer": "cus_LJ2IJ2SMNJW4I01A", "customer_account": null, "customer_address": null, "customer_email": "[email protected]", "customer_name": "Sample Customer", "customer_phone": null, "customer_shipping": null, "customer_tax_exempt": "exempt", "customer_tax_ids": null, "default_payment_method": null, "default_source": null, "default_tax_rates": [], "description": null, "discounts": [], "due_date": null, "effective_at": null, "ending_balance": 0, "footer": null, "from_invoice": null, "hosted_invoice_url": null, "id": "in_0BNQI4GJ00GOV3LFS2DPBFS0", "invoice_pdf": null, "issuer": { "type": "account" }, "last_finalization_error": null, "latest_revision": null, "lines": { "object": "list", "data": [], "has_more": false, "total_count": 0, "url": "/v1/invoices/in_0BNQI4GJ00GOV3LFS2DPBFS0/lines" }, "livemode": false, "metadata": {}, "next_payment_attempt": null, "number": "FS-00GOV3LFS2DPBFS0", "object": "invoice", "on_behalf_of": null, "parent": null, "payment_settings": { "default_mandate": null, "payment_method_options": null, "payment_method_types": null }, "period_end": 1792695277, "period_start": 1792695277, "post_payment_credit_notes_amount": 0, "pre_payment_credit_notes_amount": 0, "receipt_number": null, "rendering": null, "shipping_cost": null, "shipping_details": null, "starting_balance": 0, "statement_descriptor": null, "status": "paid", "status_transitions": { "finalized_at": 1792695278, "paid_at": 1792695278, "voided_at": null, "marked_uncollectible_at": null }, "subtotal": 0, "subtotal_excluding_tax": 0, "test_clock": null, "total": 0, "total_discount_amounts": [], "total_excluding_tax": 0, "total_pretax_credit_amounts": [], "total_taxes": [], "webhooks_delivered_at": null } - · GET stripe request · provider traffic · /v1/customers/cus_LJ2IJ2SMNJW4I01A · HTTP 200 · request 555a186d7603 · processing 15.99ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/customers/cus_LJ2IJ2SMNJW4I01A' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 15.99ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "address": null, "balance": 0, "business_name": "Sample Business", "cash_balance": null, "created": 22, "currency": "USD", "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "[email protected]", "id": "cus_LJ2IJ2SMNJW4I01A", "individual_name": "Sample Individual", "invoice_prefix": null, "livemode": false, "name": "Dana Billing", "object": "customer", "phone": "+14155550100", "preferred_locales": null, "shipping": null, "tax_exempt": "exempt", "test_clock": null, "invoice_settings[default_payment_method]": "pm_card_chargeCustomerFail" } - · GET stripe request · provider traffic · /v1/payment_methods · HTTP 200 · request c4db28ecda7b · processing 2.62ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/payment_methods' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 2.62ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [], "has_more": false, "object": "list", "url": "/v1/payment_methods" } - · GET app request /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/repeated_failure_no_second_notice/runs · repeated failure no second notice · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/repeated_failure_no_second_notice/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:31.684612+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "repeated-failure-no-second-notice-vr_243352f82fcf4575922b792da8a81865", "workflow": "failed-payment-dunning", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "Finance", "team": "billing-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "repeated_failure_no_second_notice" }, "duplicateStarts": 0, "agents": [ { "name": "invoice-check", "status": "ok", "summary": "1 invoice(s), 0 open", "durationMs": 596 }, { "name": "dunning-plan", "status": "ok", "summary": "0 step(s) due", "durationMs": 0 } ], "actions": [], "counts": { "applied": 0, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": null, "output": { "mode": "nothing", "invoices": 1, "steps": [], "skipped": [ "in_0BNQI4GJ00GOV3LFS2DPBFS0: invoice is paid" ] }, "events": [ { "at": "2026-10-22T18:56:29.745Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T18:56:30.342Z", "msg": "agents: invoice-check=ok" }, { "at": "2026-10-22T18:56:30.345Z", "msg": "planned 0 action(s): 0 need approval" }, { "at": "2026-10-22T18:56:30.345Z", "msg": "done (ok)" } ], "createdAt": "2026-10-22T18:56:29.745Z", "updatedAt": "2026-10-22T18:56:30.345Z" }, { "runId": "repeat-b-vr_243352f82fcf4575922b792da8a81865", "workflow": "failed-payment-dunning", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "Finance", "team": "billing-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "repeated_failure_no_second_notice" }, "duplicateStarts": 0, "agents": [ { "name": "invoice-check", "status": "ok", "summary": "1 invoice(s), 0 open", "durationMs": 623 }, { "name": "dunning-plan", "status": "ok", "summary": "0 step(s) due", "durationMs": 0 } ], "actions": [], "counts": { "applied": 0, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": null, "output": { "mode": "nothing", "invoices": 1, "steps": [], "skipped": [ "in_0BNQI4GJ00GOV3LFS2DPBFS0: invoice is paid" ] }, "events": [ { "at": "2026-10-22T18:56:30.575Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T18:56:31.199Z", "msg": "agents: invoice-check=ok" }, { "at": "2026-10-22T18:56:31.201Z", "msg": "planned 0 action(s): 0 need approval" }, { "at": "2026-10-22T18:56:31.202Z", "msg": "done (ok)" } ], "createdAt": "2026-10-22T18:56:30.575Z", "updatedAt": "2026-10-22T18:56:31.202Z" } ] } - · GET app request /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/paid_invoice_contacts_nobody/runs · paid invoice contacts nobody · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/paid_invoice_contacts_nobody/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:31.911486+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json", "content-length": "11" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [] } - · POST app request /invocations · paid invoice contacts nobody · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "paid-invoice-contacts-nobody-vr_243352f82fcf4575922b792da8a81865", "input": { "stage": "payment_failed", "invoiceId": "in_OE4FE8TDOME60765PJ9JPR0A", "financeChannel": "C0BILLING01", "approvers": [ "U_CONTROLLER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "paid_invoice_contacts_nobody" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:32.809092+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "371", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "paid-invoice-contacts-nobody-vr_243352f82fcf4575922b792da8a81865", "input": { "stage": "payment_failed", "invoiceId": "in_OE4FE8TDOME60765PJ9JPR0A", "financeChannel": "C0BILLING01", "approvers": [ "U_CONTROLLER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "paid_invoice_contacts_nobody" } }Recorded response · HTTP 200
{ "runId": "paid-invoice-contacts-nobody-vr_243352f82fcf4575922b792da8a81865", "workflow": "failed-payment-dunning", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "Finance", "team": "billing-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "paid_invoice_contacts_nobody" }, "duplicateStarts": 0, "agents": [ { "name": "invoice-check", "status": "ok", "summary": "1 invoice(s), 0 open", "durationMs": 646 }, { "name": "dunning-plan", "status": "ok", "summary": "0 step(s) due", "durationMs": 1 } ], "actions": [], "counts": { "applied": 0, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": null, "output": { "mode": "nothing", "invoices": 1, "steps": [], "skipped": [ "in_OE4FE8TDOME60765PJ9JPR0A: invoice is paid" ] }, "events": [ { "at": "2026-10-22T18:56:32.037Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T18:56:32.685Z", "msg": "agents: invoice-check=ok" }, { "at": "2026-10-22T18:56:32.688Z", "msg": "planned 0 action(s): 0 need approval" }, { "at": "2026-10-22T18:56:32.689Z", "msg": "done (ok)" } ], "createdAt": "2026-10-22T18:56:32.037Z", "updatedAt": "2026-10-22T18:56:32.689Z", "duplicate": false } - · GET stripe request · provider traffic · /v1/invoices/in_OE4FE8TDOME60765PJ9JPR0A · HTTP 200 · request ca6f8e56783f · processing 93.01ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/invoices/in_OE4FE8TDOME60765PJ9JPR0A' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 93.01ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "account_country": null, "account_name": "Sample Account", "account_tax_ids": null, "amount_due": 0, "amount_overpaid": 0, "amount_paid": 0, "amount_remaining": 0, "amount_shipping": 0, "application": null, "attempt_count": 0, "attempted": false, "auto_advance": false, "automatic_tax": { "enabled": false, "disabled_reason": null, "liability": null, "provider": null, "status": null }, "automatically_finalizes_at": null, "billing_reason": "automatic_pending_invoice_item_invoice", "collection_method": "charge_automatically", "confirmation_secret": "[redacted]", "created": 1792695282, "currency": "usd", "custom_fields": null, "customer": "cus_VZJ0DM2HOB9TXRQH", "customer_account": null, "customer_address": null, "customer_email": "[email protected]", "customer_name": "Sample Customer", "customer_phone": null, "customer_shipping": null, "customer_tax_exempt": "exempt", "customer_tax_ids": null, "default_payment_method": null, "default_source": null, "default_tax_rates": [], "description": null, "discounts": [], "due_date": null, "effective_at": null, "ending_balance": 0, "footer": null, "from_invoice": null, "hosted_invoice_url": null, "id": "in_OE4FE8TDOME60765PJ9JPR0A", "invoice_pdf": null, "issuer": { "type": "account" }, "last_finalization_error": null, "latest_revision": null, "lines": { "object": "list", "data": [], "has_more": false, "total_count": 0, "url": "/v1/invoices/in_OE4FE8TDOME60765PJ9JPR0A/lines" }, "livemode": false, "metadata": {}, "next_payment_attempt": null, "number": "FS-OME60765PJ9JPR0A", "object": "invoice", "on_behalf_of": null, "parent": null, "payment_settings": { "default_mandate": null, "payment_method_options": null, "payment_method_types": null }, "period_end": 1792695282, "period_start": 1792695282, "post_payment_credit_notes_amount": 0, "pre_payment_credit_notes_amount": 0, "receipt_number": null, "rendering": null, "shipping_cost": null, "shipping_details": null, "starting_balance": 0, "statement_descriptor": null, "status": "paid", "status_transitions": { "finalized_at": 1792695282, "paid_at": 1792695282, "voided_at": null, "marked_uncollectible_at": null }, "subtotal": 0, "subtotal_excluding_tax": 0, "test_clock": null, "total": 0, "total_discount_amounts": [], "total_excluding_tax": 0, "total_pretax_credit_amounts": [], "total_taxes": [], "webhooks_delivered_at": null } - · GET stripe request · provider traffic · /v1/customers/cus_VZJ0DM2HOB9TXRQH · HTTP 200 · request aaf36a19e55a · processing 15.47ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/customers/cus_VZJ0DM2HOB9TXRQH' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 15.47ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "address": null, "balance": 0, "business_name": "Sample Business", "cash_balance": null, "created": 10, "currency": "USD", "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "[email protected]", "id": "cus_VZJ0DM2HOB9TXRQH", "individual_name": "Sample Individual", "invoice_prefix": null, "livemode": false, "name": "Dana Billing", "object": "customer", "phone": "+14155550100", "preferred_locales": null, "shipping": null, "tax_exempt": "exempt", "test_clock": null, "invoice_settings[default_payment_method]": "pm_card_visa" } - · GET stripe request · provider traffic · /v1/payment_methods · HTTP 200 · request f455bd3739da · processing 2.52ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/payment_methods' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 2.52ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [], "has_more": false, "object": "list", "url": "/v1/payment_methods" } - · GET app request /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/paid_invoice_contacts_nobody/runs · paid invoice contacts nobody · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/paid_invoice_contacts_nobody/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:33.192520+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "paid-invoice-contacts-nobody-vr_243352f82fcf4575922b792da8a81865", "workflow": "failed-payment-dunning", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "Finance", "team": "billing-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "paid_invoice_contacts_nobody" }, "duplicateStarts": 0, "agents": [ { "name": "invoice-check", "status": "ok", "summary": "1 invoice(s), 0 open", "durationMs": 646 }, { "name": "dunning-plan", "status": "ok", "summary": "0 step(s) due", "durationMs": 1 } ], "actions": [], "counts": { "applied": 0, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": null, "output": { "mode": "nothing", "invoices": 1, "steps": [], "skipped": [ "in_OE4FE8TDOME60765PJ9JPR0A: invoice is paid" ] }, "events": [ { "at": "2026-10-22T18:56:32.037Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T18:56:32.685Z", "msg": "agents: invoice-check=ok" }, { "at": "2026-10-22T18:56:32.688Z", "msg": "planned 0 action(s): 0 need approval" }, { "at": "2026-10-22T18:56:32.689Z", "msg": "done (ok)" } ], "createdAt": "2026-10-22T18:56:32.037Z", "updatedAt": "2026-10-22T18:56:32.689Z" } ] } - · POST app request /invocations · paid invoice contacts nobody · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "paid-invoice-contacts-nobody-vr_243352f82fcf4575922b792da8a81865", "input": { "stage": "payment_failed", "invoiceId": "in_OE4FE8TDOME60765PJ9JPR0A", "financeChannel": "C0BILLING01", "approvers": [ "U_CONTROLLER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "paid_invoice_contacts_nobody" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:33.519029+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "371", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "paid-invoice-contacts-nobody-vr_243352f82fcf4575922b792da8a81865", "input": { "stage": "payment_failed", "invoiceId": "in_OE4FE8TDOME60765PJ9JPR0A", "financeChannel": "C0BILLING01", "approvers": [ "U_CONTROLLER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "paid_invoice_contacts_nobody" } }Recorded response · HTTP 200
{ "runId": "paid-invoice-contacts-nobody-vr_243352f82fcf4575922b792da8a81865", "workflow": "failed-payment-dunning", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "Finance", "team": "billing-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "paid_invoice_contacts_nobody" }, "duplicateStarts": 1, "agents": [ { "name": "invoice-check", "status": "ok", "summary": "1 invoice(s), 0 open", "durationMs": 646 }, { "name": "dunning-plan", "status": "ok", "summary": "0 step(s) due", "durationMs": 1 } ], "actions": [], "counts": { "applied": 0, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": null, "output": { "mode": "nothing", "invoices": 1, "steps": [], "skipped": [ "in_OE4FE8TDOME60765PJ9JPR0A: invoice is paid" ] }, "events": [ { "at": "2026-10-22T18:56:32.037Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T18:56:32.685Z", "msg": "agents: invoice-check=ok" }, { "at": "2026-10-22T18:56:32.688Z", "msg": "planned 0 action(s): 0 need approval" }, { "at": "2026-10-22T18:56:32.689Z", "msg": "done (ok)" }, { "at": "2026-10-22T18:56:33.291Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-22T18:56:32.037Z", "updatedAt": "2026-10-22T18:56:33.291Z", "duplicate": true } - · GET app request /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/paid_invoice_contacts_nobody/runs · paid invoice contacts nobody · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/paid_invoice_contacts_nobody/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:33.994040+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "paid-invoice-contacts-nobody-vr_243352f82fcf4575922b792da8a81865", "workflow": "failed-payment-dunning", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "Finance", "team": "billing-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "paid_invoice_contacts_nobody" }, "duplicateStarts": 1, "agents": [ { "name": "invoice-check", "status": "ok", "summary": "1 invoice(s), 0 open", "durationMs": 646 }, { "name": "dunning-plan", "status": "ok", "summary": "0 step(s) due", "durationMs": 1 } ], "actions": [], "counts": { "applied": 0, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": null, "output": { "mode": "nothing", "invoices": 1, "steps": [], "skipped": [ "in_OE4FE8TDOME60765PJ9JPR0A: invoice is paid" ] }, "events": [ { "at": "2026-10-22T18:56:32.037Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T18:56:32.685Z", "msg": "agents: invoice-check=ok" }, { "at": "2026-10-22T18:56:32.688Z", "msg": "planned 0 action(s): 0 need approval" }, { "at": "2026-10-22T18:56:32.689Z", "msg": "done (ok)" }, { "at": "2026-10-22T18:56:33.291Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-22T18:56:32.037Z", "updatedAt": "2026-10-22T18:56:33.291Z" } ] } - · GET app request /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/unknown_invoice_contacts_nobody/runs · unknown invoice contacts nobody · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/unknown_invoice_contacts_nobody/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:34.233899+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json", "content-length": "11" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [] } - · POST app request /invocations · unknown invoice contacts nobody · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "unknown-invoice-contacts-nobody-vr_243352f82fcf4575922b792da8a81865", "input": { "stage": "payment_failed", "invoiceId": "in_doesnotexist0000", "financeChannel": "C0BILLING01", "approvers": [ "U_CONTROLLER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "unknown_invoice_contacts_nobody" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:34.835460+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "369", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "unknown-invoice-contacts-nobody-vr_243352f82fcf4575922b792da8a81865", "input": { "stage": "payment_failed", "invoiceId": "in_doesnotexist0000", "financeChannel": "C0BILLING01", "approvers": [ "U_CONTROLLER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "unknown_invoice_contacts_nobody" } }Recorded response · HTTP 200
{ "runId": "unknown-invoice-contacts-nobody-vr_243352f82fcf4575922b792da8a81865", "workflow": "failed-payment-dunning", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "Finance", "team": "billing-ops", "phase": "DONE", "closed": true, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "unknown_invoice_contacts_nobody" }, "duplicateStarts": 0, "agents": [ { "name": "invoice-check", "status": "failed", "error": "stripe 404 resource_missing: GET /v1/invoices/in_doesnotexist0000 → 404 resource_missing", "errorCode": "stripe:resource_missing", "durationMs": 170 }, { "name": "dunning-plan", "status": "ok", "summary": "blocked: invoices unreadable", "durationMs": 0 } ], "actions": [ { "id": "slack.escalate:blocked", "kind": "slack.escalate", "provider": "slack", "agent": "dunning-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "blocked": true }, "attempts": 1, "ref": "17LEMA0B87.HF7QYY", "appliedAt": "2026-10-22T18:56:34.706Z", "reconciled": null } ], "counts": { "applied": 1, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": null, "output": { "mode": "blocked", "invoices": 0, "steps": [], "skipped": [] }, "events": [ { "at": "2026-10-22T18:56:34.349Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T18:56:34.522Z", "msg": "agents: invoice-check=failed" }, { "at": "2026-10-22T18:56:34.524Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T18:56:34.706Z", "msg": "slack.escalate:blocked: applied" }, { "at": "2026-10-22T18:56:34.707Z", "msg": "done (partial)" } ], "createdAt": "2026-10-22T18:56:34.349Z", "updatedAt": "2026-10-22T18:56:34.707Z", "duplicate": false } - · GET stripe request · provider traffic · /v1/invoices/in_doesnotexist0000 · HTTP 404 · request f30a061b991c · processing 2.8ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/invoices/in_doesnotexist0000' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 2.8ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 404
{ "error": { "type": "invalid_request_error", "code": "resource_missing", "doc_url": "https://stripe.com/docs/error-codes/resource-missing", "message": "Resource in_doesnotexist0000 not found" } } - · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request 92c4aeefc693 · processing 12.04ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/e495c5e124/api/chat.postMessage' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'content-type: application/json; charset=utf-8' \ --data-raw '{ "channel": "C0BILLING01", "text": ":rotating_light: Dunning payment_failed: invoices could not be read; no customer was contacted.", "unfurl_links": false, "unfurl_media": false }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 12.04ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "172", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "content-type": "application/json; charset=utf-8" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "channel": "C0BILLING01", "text": ":rotating_light: Dunning payment_failed: invoices could not be read; no customer was contacted.", "unfurl_links": false, "unfurl_media": false }Recorded response · HTTP 200
{ "channel": "C0BILLING01", "message": { "bot_id": "bot_b5c05ea7034d42188f6c36c21c", "client_msg_id": "cli_272e05e4f4484f40b7ba4468c4", "name": "item-fc96d3", "old_name": "Sample Old", "parent_user_id": "par_6aa768a979f440c684f062e955", "permalink": "my-resource", "reply_count": 0, "reply_users_count": 0, "text": "Sample text content", "ts": "sample-value", "type": "default", "unread_count": 0, "username": "acme-corp" }, "ok": true, "ts": "17LEMA0B87.HF7QYY" } - · GET app request /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/unknown_invoice_contacts_nobody/runs · unknown invoice contacts nobody · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/unknown_invoice_contacts_nobody/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:35.173295+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "unknown-invoice-contacts-nobody-vr_243352f82fcf4575922b792da8a81865", "workflow": "failed-payment-dunning", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "Finance", "team": "billing-ops", "phase": "DONE", "closed": true, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "unknown_invoice_contacts_nobody" }, "duplicateStarts": 0, "agents": [ { "name": "invoice-check", "status": "failed", "error": "stripe 404 resource_missing: GET /v1/invoices/in_doesnotexist0000 → 404 resource_missing", "errorCode": "stripe:resource_missing", "durationMs": 170 }, { "name": "dunning-plan", "status": "ok", "summary": "blocked: invoices unreadable", "durationMs": 0 } ], "actions": [ { "id": "slack.escalate:blocked", "kind": "slack.escalate", "provider": "slack", "agent": "dunning-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "blocked": true }, "attempts": 1, "ref": "17LEMA0B87.HF7QYY", "appliedAt": "2026-10-22T18:56:34.706Z", "reconciled": null } ], "counts": { "applied": 1, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": null, "output": { "mode": "blocked", "invoices": 0, "steps": [], "skipped": [] }, "events": [ { "at": "2026-10-22T18:56:34.349Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T18:56:34.522Z", "msg": "agents: invoice-check=failed" }, { "at": "2026-10-22T18:56:34.524Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T18:56:34.706Z", "msg": "slack.escalate:blocked: applied" }, { "at": "2026-10-22T18:56:34.707Z", "msg": "done (partial)" } ], "createdAt": "2026-10-22T18:56:34.349Z", "updatedAt": "2026-10-22T18:56:34.707Z" } ] } - · POST app request /invocations · unknown invoice contacts nobody · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "unknown-invoice-contacts-nobody-vr_243352f82fcf4575922b792da8a81865", "input": { "stage": "payment_failed", "invoiceId": "in_doesnotexist0000", "financeChannel": "C0BILLING01", "approvers": [ "U_CONTROLLER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "unknown_invoice_contacts_nobody" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:35.429457+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "369", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "unknown-invoice-contacts-nobody-vr_243352f82fcf4575922b792da8a81865", "input": { "stage": "payment_failed", "invoiceId": "in_doesnotexist0000", "financeChannel": "C0BILLING01", "approvers": [ "U_CONTROLLER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "unknown_invoice_contacts_nobody" } }Recorded response · HTTP 200
{ "runId": "unknown-invoice-contacts-nobody-vr_243352f82fcf4575922b792da8a81865", "workflow": "failed-payment-dunning", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "Finance", "team": "billing-ops", "phase": "DONE", "closed": true, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "unknown_invoice_contacts_nobody" }, "duplicateStarts": 1, "agents": [ { "name": "invoice-check", "status": "failed", "error": "stripe 404 resource_missing: GET /v1/invoices/in_doesnotexist0000 → 404 resource_missing", "errorCode": "stripe:resource_missing", "durationMs": 170 }, { "name": "dunning-plan", "status": "ok", "summary": "blocked: invoices unreadable", "durationMs": 0 } ], "actions": [ { "id": "slack.escalate:blocked", "kind": "slack.escalate", "provider": "slack", "agent": "dunning-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "blocked": true }, "attempts": 1, "ref": "17LEMA0B87.HF7QYY", "appliedAt": "2026-10-22T18:56:34.706Z", "reconciled": null } ], "counts": { "applied": 1, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": null, "output": { "mode": "blocked", "invoices": 0, "steps": [], "skipped": [] }, "events": [ { "at": "2026-10-22T18:56:34.349Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T18:56:34.522Z", "msg": "agents: invoice-check=failed" }, { "at": "2026-10-22T18:56:34.524Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T18:56:34.706Z", "msg": "slack.escalate:blocked: applied" }, { "at": "2026-10-22T18:56:34.707Z", "msg": "done (partial)" }, { "at": "2026-10-22T18:56:35.291Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-22T18:56:34.349Z", "updatedAt": "2026-10-22T18:56:35.291Z", "duplicate": true } - · GET app request /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/unknown_invoice_contacts_nobody/runs · unknown invoice contacts nobody · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/unknown_invoice_contacts_nobody/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:35.770116+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "unknown-invoice-contacts-nobody-vr_243352f82fcf4575922b792da8a81865", "workflow": "failed-payment-dunning", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "Finance", "team": "billing-ops", "phase": "DONE", "closed": true, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "unknown_invoice_contacts_nobody" }, "duplicateStarts": 1, "agents": [ { "name": "invoice-check", "status": "failed", "error": "stripe 404 resource_missing: GET /v1/invoices/in_doesnotexist0000 → 404 resource_missing", "errorCode": "stripe:resource_missing", "durationMs": 170 }, { "name": "dunning-plan", "status": "ok", "summary": "blocked: invoices unreadable", "durationMs": 0 } ], "actions": [ { "id": "slack.escalate:blocked", "kind": "slack.escalate", "provider": "slack", "agent": "dunning-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "blocked": true }, "attempts": 1, "ref": "17LEMA0B87.HF7QYY", "appliedAt": "2026-10-22T18:56:34.706Z", "reconciled": null } ], "counts": { "applied": 1, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": null, "output": { "mode": "blocked", "invoices": 0, "steps": [], "skipped": [] }, "events": [ { "at": "2026-10-22T18:56:34.349Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T18:56:34.522Z", "msg": "agents: invoice-check=failed" }, { "at": "2026-10-22T18:56:34.524Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T18:56:34.706Z", "msg": "slack.escalate:blocked: applied" }, { "at": "2026-10-22T18:56:34.707Z", "msg": "done (partial)" }, { "at": "2026-10-22T18:56:35.291Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-22T18:56:34.349Z", "updatedAt": "2026-10-22T18:56:35.291Z" } ] } - · GET app request /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/stripe_auth_failure/runs · stripe auth failure · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/stripe_auth_failure/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:36.035885+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json", "content-length": "11" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [] } - · POST app request /invocations · stripe auth failure · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "stripe-auth-failure-vr_243352f82fcf4575922b792da8a81865", "input": { "stage": "payment_failed", "invoiceId": "in_J0ZXEQDTWMVHKUYO1F0Z884W", "financeChannel": "C0BILLING01", "approvers": [ "U_CONTROLLER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "stripe_auth_failure" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:36.689460+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "353", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "stripe-auth-failure-vr_243352f82fcf4575922b792da8a81865", "input": { "stage": "payment_failed", "invoiceId": "in_J0ZXEQDTWMVHKUYO1F0Z884W", "financeChannel": "C0BILLING01", "approvers": [ "U_CONTROLLER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "stripe_auth_failure" } }Recorded response · HTTP 200
{ "runId": "stripe-auth-failure-vr_243352f82fcf4575922b792da8a81865", "workflow": "failed-payment-dunning", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "Finance", "team": "billing-ops", "phase": "DONE", "closed": true, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "stripe_auth_failure" }, "duplicateStarts": 0, "agents": [ { "name": "invoice-check", "status": "failed", "error": "stripe 401 authentication_required: GET /v1/invoices/in_J0ZXEQDTWMVHKUYO1F0Z884W → 401 authentication_required", "errorCode": "stripe:authentication_required", "durationMs": 172 }, { "name": "dunning-plan", "status": "ok", "summary": "blocked: invoices unreadable", "durationMs": 0 } ], "actions": [ { "id": "slack.escalate:blocked", "kind": "slack.escalate", "provider": "slack", "agent": "dunning-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "blocked": true }, "attempts": 1, "ref": "17FCZ1GKQY.0G9QXV", "appliedAt": "2026-10-22T18:56:36.564Z", "reconciled": null } ], "counts": { "applied": 1, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": null, "output": { "mode": "blocked", "invoices": 0, "steps": [], "skipped": [] }, "events": [ { "at": "2026-10-22T18:56:36.146Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T18:56:36.320Z", "msg": "agents: invoice-check=failed" }, { "at": "2026-10-22T18:56:36.323Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T18:56:36.564Z", "msg": "slack.escalate:blocked: applied" }, { "at": "2026-10-22T18:56:36.565Z", "msg": "done (partial)" } ], "createdAt": "2026-10-22T18:56:36.146Z", "updatedAt": "2026-10-22T18:56:36.565Z", "duplicate": false } - · GET stripe request · stripe auth failure · /v1/invoices/in_J0ZXEQDTWMVHKUYO1F0Z884W · HTTP 401 · processing 2.19ms
View sanitized request and response
Curl-style request view
curl --request GET '<STRIPE_TWIN_BASE_URL>/v1/invoices/in_J0ZXEQDTWMVHKUYO1F0Z884W' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL was not recorded. Provider processing: 2.19ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 401
{ "error": { "type": "invalid_request_error", "code": "authentication_required", "doc_url": "https://stripe.com/docs/error-codes/authentication-required", "message": "Invalid API key provided. You did not provide a valid API key. Ensure your Authorization header contains a valid Bearer token." } } - · GET stripe request · provider traffic · /v1/invoices/in_J0ZXEQDTWMVHKUYO1F0Z884W · HTTP 401 · request 1ec610df4f43 · processing 2.19ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/198897286c/v1/invoices/in_J0ZXEQDTWMVHKUYO1F0Z884W' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 2.19ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 401
{ "error": { "type": "invalid_request_error", "code": "authentication_required", "doc_url": "https://stripe.com/docs/error-codes/authentication-required", "message": "Invalid API key provided. You did not provide a valid API key. Ensure your Authorization header contains a valid Bearer token." } } - · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request c938e784a7bc · processing 13.57ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/e495c5e124/api/chat.postMessage' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'content-type: application/json; charset=utf-8' \ --data-raw '{ "channel": "C0BILLING01", "text": ":rotating_light: Dunning payment_failed: invoices could not be read; no customer was contacted.", "unfurl_links": false, "unfurl_media": false }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 13.57ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "172", "user-agent": "node", "accept": "application/json", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "content-type": "application/json; charset=utf-8" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "channel": "C0BILLING01", "text": ":rotating_light: Dunning payment_failed: invoices could not be read; no customer was contacted.", "unfurl_links": false, "unfurl_media": false }Recorded response · HTTP 200
{ "channel": "C0BILLING01", "message": { "bot_id": "bot_8b350f54a78749d6b50183e96c", "client_msg_id": "cli_0ff95ea841b34493a39946a2b9", "name": "item-d915ad", "old_name": "Sample Old", "parent_user_id": "par_6b7b0bbd2b56491e99484e8ee0", "permalink": "my-resource", "reply_count": 0, "reply_users_count": 0, "text": "Sample text content", "ts": "sample-value", "type": "default", "unread_count": 0, "username": "acme-corp" }, "ok": true, "ts": "17FCZ1GKQY.0G9QXV" } - · GET app request /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/stripe_auth_failure/runs · stripe auth failure · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/stripe_auth_failure/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:37.012003+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "stripe-auth-failure-vr_243352f82fcf4575922b792da8a81865", "workflow": "failed-payment-dunning", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "Finance", "team": "billing-ops", "phase": "DONE", "closed": true, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "stripe_auth_failure" }, "duplicateStarts": 0, "agents": [ { "name": "invoice-check", "status": "failed", "error": "stripe 401 authentication_required: GET /v1/invoices/in_J0ZXEQDTWMVHKUYO1F0Z884W → 401 authentication_required", "errorCode": "stripe:authentication_required", "durationMs": 172 }, { "name": "dunning-plan", "status": "ok", "summary": "blocked: invoices unreadable", "durationMs": 0 } ], "actions": [ { "id": "slack.escalate:blocked", "kind": "slack.escalate", "provider": "slack", "agent": "dunning-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "blocked": true }, "attempts": 1, "ref": "17FCZ1GKQY.0G9QXV", "appliedAt": "2026-10-22T18:56:36.564Z", "reconciled": null } ], "counts": { "applied": 1, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": null, "output": { "mode": "blocked", "invoices": 0, "steps": [], "skipped": [] }, "events": [ { "at": "2026-10-22T18:56:36.146Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T18:56:36.320Z", "msg": "agents: invoice-check=failed" }, { "at": "2026-10-22T18:56:36.323Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T18:56:36.564Z", "msg": "slack.escalate:blocked: applied" }, { "at": "2026-10-22T18:56:36.565Z", "msg": "done (partial)" } ], "createdAt": "2026-10-22T18:56:36.146Z", "updatedAt": "2026-10-22T18:56:36.565Z" } ] } - · POST app request /invocations · stripe auth failure · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "stripe-auth-failure-vr_243352f82fcf4575922b792da8a81865", "input": { "stage": "payment_failed", "invoiceId": "in_J0ZXEQDTWMVHKUYO1F0Z884W", "financeChannel": "C0BILLING01", "approvers": [ "U_CONTROLLER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "stripe_auth_failure" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:37.245362+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "353", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "stripe-auth-failure-vr_243352f82fcf4575922b792da8a81865", "input": { "stage": "payment_failed", "invoiceId": "in_J0ZXEQDTWMVHKUYO1F0Z884W", "financeChannel": "C0BILLING01", "approvers": [ "U_CONTROLLER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "stripe_auth_failure" } }Recorded response · HTTP 200
{ "runId": "stripe-auth-failure-vr_243352f82fcf4575922b792da8a81865", "workflow": "failed-payment-dunning", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "Finance", "team": "billing-ops", "phase": "DONE", "closed": true, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "stripe_auth_failure" }, "duplicateStarts": 1, "agents": [ { "name": "invoice-check", "status": "failed", "error": "stripe 401 authentication_required: GET /v1/invoices/in_J0ZXEQDTWMVHKUYO1F0Z884W → 401 authentication_required", "errorCode": "stripe:authentication_required", "durationMs": 172 }, { "name": "dunning-plan", "status": "ok", "summary": "blocked: invoices unreadable", "durationMs": 0 } ], "actions": [ { "id": "slack.escalate:blocked", "kind": "slack.escalate", "provider": "slack", "agent": "dunning-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "blocked": true }, "attempts": 1, "ref": "17FCZ1GKQY.0G9QXV", "appliedAt": "2026-10-22T18:56:36.564Z", "reconciled": null } ], "counts": { "applied": 1, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": null, "output": { "mode": "blocked", "invoices": 0, "steps": [], "skipped": [] }, "events": [ { "at": "2026-10-22T18:56:36.146Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T18:56:36.320Z", "msg": "agents: invoice-check=failed" }, { "at": "2026-10-22T18:56:36.323Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T18:56:36.564Z", "msg": "slack.escalate:blocked: applied" }, { "at": "2026-10-22T18:56:36.565Z", "msg": "done (partial)" }, { "at": "2026-10-22T18:56:37.120Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-22T18:56:36.146Z", "updatedAt": "2026-10-22T18:56:37.120Z", "duplicate": true } - · GET app request /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/stripe_auth_failure/runs · stripe auth failure · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/stripe_auth_failure/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:37.575731+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "stripe-auth-failure-vr_243352f82fcf4575922b792da8a81865", "workflow": "failed-payment-dunning", "metadata": { "organization": "Acme", "company": "Acme Corporation", "environment": "unconfigured", "owner": "unassigned", "department": "unassigned", "ownerTeam": "unassigned", "oncall": "unassigned", "version": "unversioned", "sourceCommit": "unrecorded" }, "org": "Finance", "team": "billing-ops", "phase": "DONE", "closed": true, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "stripe_auth_failure" }, "duplicateStarts": 1, "agents": [ { "name": "invoice-check", "status": "failed", "error": "stripe 401 authentication_required: GET /v1/invoices/in_J0ZXEQDTWMVHKUYO1F0Z884W → 401 authentication_required", "errorCode": "stripe:authentication_required", "durationMs": 172 }, { "name": "dunning-plan", "status": "ok", "summary": "blocked: invoices unreadable", "durationMs": 0 } ], "actions": [ { "id": "slack.escalate:blocked", "kind": "slack.escalate", "provider": "slack", "agent": "dunning-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "blocked": true }, "attempts": 1, "ref": "17FCZ1GKQY.0G9QXV", "appliedAt": "2026-10-22T18:56:36.564Z", "reconciled": null } ], "counts": { "applied": 1, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0, "scheduled": 0, "awaitingSignal": 0, "compensated": 0 }, "wakeAt": null, "audit": null, "output": { "mode": "blocked", "invoices": 0, "steps": [], "skipped": [] }, "events": [ { "at": "2026-10-22T18:56:36.146Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-22T18:56:36.320Z", "msg": "agents: invoice-check=failed" }, { "at": "2026-10-22T18:56:36.323Z", "msg": "planned 1 action(s): 0 need approval" }, { "at": "2026-10-22T18:56:36.564Z", "msg": "slack.escalate:blocked: applied" }, { "at": "2026-10-22T18:56:36.565Z", "msg": "done (partial)" }, { "at": "2026-10-22T18:56:37.120Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-22T18:56:36.146Z", "updatedAt": "2026-10-22T18:56:37.120Z" } ] } - · GET app request /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/invalid_input_rejected/runs · invalid input rejected · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/invalid_input_rejected/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:37.803051+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json", "content-length": "11" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [] } - · POST app request /invocations · invalid input rejected · HTTP 400
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "invalid-input-rejected-vr_243352f82fcf4575922b792da8a81865", "input": { "stage": "payment_failed", "invoiceId": "ch_123", "financeChannel": "C0BILLING01", "approvers": [ "U_CONTROLLER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "invalid_input_rejected" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:38.044603+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "338", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json", "content-length": "96" }Request body
{ "action": "start", "runId": "invalid-input-rejected-vr_243352f82fcf4575922b792da8a81865", "input": { "stage": "payment_failed", "invoiceId": "ch_123", "financeChannel": "C0BILLING01", "approvers": [ "U_CONTROLLER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "invalid_input_rejected" } }Recorded response · HTTP 400
{ "error": "invalid input", "issues": [ "invoiceId: Invalid string: must match pattern /^in_\\w+$/" ] } - · GET app request /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/invalid_input_rejected/runs · invalid input rejected · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/invalid_input_rejected/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:38.401275+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json", "content-length": "11" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [] } - · POST app request /invocations · invalid input rejected · HTTP 400
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "invalid-input-rejected-vr_243352f82fcf4575922b792da8a81865", "input": { "stage": "payment_failed", "invoiceId": "ch_123", "financeChannel": "C0BILLING01", "approvers": [ "U_CONTROLLER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "invalid_input_rejected" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:38.641967+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "338", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json", "content-length": "96" }Request body
{ "action": "start", "runId": "invalid-input-rejected-vr_243352f82fcf4575922b792da8a81865", "input": { "stage": "payment_failed", "invoiceId": "ch_123", "financeChannel": "C0BILLING01", "approvers": [ "U_CONTROLLER" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_243352f82fcf4575922b792da8a81865", "fs_case": "invalid_input_rejected" } }Recorded response · HTTP 400
{ "error": "invalid input", "issues": [ "invoiceId: Invalid string: must match pattern /^in_\\w+$/" ] } - · GET app request /verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/invalid_input_rejected/runs · invalid input rejected · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/48a28d132f73a90e2899f2ea26280aad876c21feed47bbe4/verify/runs/vr_243352f82fcf4575922b792da8a81865/cases/invalid_input_rejected/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_243352f82fcf4575922b792da8a81865' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-22T18:56:38.973679+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_243352f82fcf4575922b792da8a81865", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json", "content-length": "11" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [] }
Expand a request to inspect its sanitized payload. Credentials and personal data stay hidden.
Timestamps reflect when the sandbox recorded each request, not the order your app triggered them.
- Verification covers the declared HTTP actions and state reads in this run.
- The app version shown was supplied by the app itself, not independently checked.
- Passing all checks in this run does not certify the whole app as production-ready.
- The verifier session does not survive a restart. This says nothing about the durability of the app under test.
- App state shown here is what the app's own endpoint reported. It is not independently checked against the database.
Sanitized summary. Expand a timeline event to inspect the safe request and response fields; sensitive provider and application data stays hidden.