night-owl-mvr225xr96@example.com charged $64.00 twice for cart cart-38956

Status
Needs you
At risk
$64.00
Detected (detector clock)
2026-11-23 19:05

Diagnosis

AI agent (anthropic/claude-haiku-5.5)

The buyer was charged $64.00 twice for the same Roaster's Choice box (cart-38956), 24 seconds apart on October 27. Neither charge has shipped yet. The second charge (capture 2JF20271UX744891X) is the extra one, and refunding it returns $64.00 to the buyer. If nobody acts, the buyer will see two charges and is likely to file a dispute.

Decisions

The agent proposes, the policy gate decides, the executor calls PayPal.

Refund capture

$64.002JF20271UX744891XWaiting for you

Agent proposed

The later duplicate capture charged the buyer for the same cart a second time, and the order has not shipped, so refunding the full $64.00 fixes the double charge.

Policy said

Needs approval
  • Refunds send money back to the buyer and cannot be reversed, so the owner approves every one.

PayPal returned

Not called yet.

Exact API call (PayPal-Request-Id ns-45da3b895443adc75f5792d997ff05f6)
POST /v2/payments/captures/2JF20271UX744891X/refund
{
  "amount": {
    "currency_code": "USD",
    "value": "64.00"
  }
}

Edited amounts go back through the policy gate before anything is sent to PayPal.

Ask the owner

Waiting for you

Agent proposed

Shipping the box against the original charge is a fulfilment decision only the owner can make.

Note: Order 11946284TV608882P ($64.00, first charge) is still unshipped. Do you want to ship this box to night-owl-mvr225xr96@example.com against that first charge? Once you confirm, the refund of the duplicate charge can go ahead.

Policy said

Needs approval
  • The agent asked for a human decision.

PayPal returned

No PayPal call for this action.

Evidence

Captures 2VC8403930474864D (order 11946284TV608882P) and 2JF20271UX744891X (order 5RP57073W33833337) charged the same payer $64.00 for the same cart reference cart-38956 24 seconds apart. A buyer who sees two charges files a dispute.

payer
night-owl-mvr225xr96@example.com
cart ref
cart-38956
amount
$64.00
first capture id
2VC8403930474864D
first order id
11946284TV608882P
first captured at
2026-10-27T19:05:26.000Z
duplicate capture id
2JF20271UX744891X
duplicate order id
5RP57073W33833337
duplicate captured at
2026-10-27T19:05:50.000Z
seconds apart
24
same cart reference
true
order11946284TV608882Pcapture2VC8403930474864Dorder5RP57073W33833337capture2JF20271UX744891X

All ids are real PayPal sandbox objects; GET them with your sandbox credentials to check.

Audit trail

Detected, diagnosed, decided, executed. Live.

Detected: night-owl-mvr225xr96@example.com charged $64.00 twice for cart cart-38956
Detector
Captures 2VC8403930474864D (order 11946284TV608882P) and 2JF20271UX744891X (order 5RP57073W33833337) charged the same payer $64.00 for the same cart reference cart-38956 24 seconds apart. A buyer who sees two charges files a dispute.
Agent started triage
Agent
Agent read ledger_lookup
Agent
ledger_lookupNightshift ledgerok
args { "order_id": "5RP57073W33833337" }
Result
{"order":{"id":"5RP57073W33833337","intent":"CAPTURE","status":"COMPLETED","amountCents":6400,"currency":"USD","payer":"night-owl-mvr225xr96@example.com","cartRef":"cart-38956","description":"Roaster's Choice box, monthly","fulfillment":"unfulfilled","shippedAt":null,"createdAt":"2026-10-27T19:05:50.000Z","updatedAt":"2026-10-27T19:05:53.801Z","source":"webhook"},"buyer_note_untrusted":null,"authorizations":[],"captures":[{"id":"2JF20271UX744891X","orderId":"5RP57073W33833337","authorizationId":null,"status":"COMPLETED","statusReason":null,"amountCents":6400,"currency":"USD","finalCapture":true,"createdAt":"2026-10-27T19:05:50.000Z","updatedAt":"2026-10-27T19:05:53.804Z"}],"refunds":[],"failed_capture_attempts":[]}
Agent read get_capture
Agent
get_capturevia Nightshift REST clientok
args { "capture_id": "2JF20271UX744891X" }
Result
{"id":"2JF20271UX744891X","amount":{"currency_code":"USD","value":"64.00"},"final_capture":true,"seller_protection":{"status":"NOT_ELIGIBLE"},"seller_receivable_breakdown":{"gross_amount":{"currency_code":"USD","value":"64.00"},"paypal_fee":{"currency_code":"USD","value":"2.80"},"net_amount":{"currency_code":"USD","value":"61.20"}},"custom_id":"cart-38956","status":"COMPLETED","supplementary_data":{"related_ids":{"order_id":"5RP57073W33833337"}},"payee":{"email_address":"sb-djk8i53501233@business.example.com","merchant_id":"D8M8MT98DPNNG"},"create_time":"2026-10-27T19:05:50Z","update_time":"2026-10-27T19:05:50Z","links":[{"href":"https://api.sandbox.paypal.com/v2/payments/captures/2JF20271UX744891X","rel":"self","method":"GET"},{"href":"https://api.sandbox.paypal.com/v2/payments/captures/2JF20271UX744891X/refund","rel":"refund","method":"POST"},{"href":"https://api.sandbox.paypal.com/v2/checkout/orders/5RP57073W33833337","rel":"up","method":"GET"}]}
Agent read ledger_lookup
Agent
ledger_lookupNightshift ledgerok
args { "order_id": "11946284TV608882P" }
Result
{"order":{"id":"11946284TV608882P","intent":"CAPTURE","status":"COMPLETED","amountCents":6400,"currency":"USD","payer":"night-owl-mvr225xr96@example.com","cartRef":"cart-38956","description":"Roaster's Choice box, monthly","fulfillment":"unfulfilled","shippedAt":null,"createdAt":"2026-10-27T19:05:26.000Z","updatedAt":"2026-10-27T19:05:39.189Z","source":"webhook"},"buyer_note_untrusted":null,"authorizations":[],"captures":[{"id":"2VC8403930474864D","orderId":"11946284TV608882P","authorizationId":null,"status":"COMPLETED","statusReason":null,"amountCents":6400,"currency":"USD","finalCapture":true,"createdAt":"2026-10-27T19:05:26.000Z","updatedAt":"2026-10-27T19:05:39.191Z"}],"refunds":[],"failed_capture_attempts":[]}
Agent read get_capture
Agent
get_capturevia Nightshift REST clientok
args { "capture_id": "2VC8403930474864D" }
Result
{"id":"2VC8403930474864D","amount":{"currency_code":"USD","value":"64.00"},"final_capture":true,"seller_protection":{"status":"NOT_ELIGIBLE"},"seller_receivable_breakdown":{"gross_amount":{"currency_code":"USD","value":"64.00"},"paypal_fee":{"currency_code":"USD","value":"2.80"},"net_amount":{"currency_code":"USD","value":"61.20"}},"custom_id":"cart-38956","status":"COMPLETED","supplementary_data":{"related_ids":{"order_id":"11946284TV608882P"}},"payee":{"email_address":"sb-djk8i53501233@business.example.com","merchant_id":"D8M8MT98DPNNG"},"create_time":"2026-10-27T19:05:26Z","update_time":"2026-10-27T19:05:26Z","links":[{"href":"https://api.sandbox.paypal.com/v2/payments/captures/2VC8403930474864D","rel":"self","method":"GET"},{"href":"https://api.sandbox.paypal.com/v2/payments/captures/2VC8403930474864D/refund","rel":"refund","method":"POST"},{"href":"https://api.sandbox.paypal.com/v2/checkout/orders/11946284TV608882P","rel":"up","method":"GET"}]}
Agent diagnosis
Agent
The buyer was charged $64.00 twice for the same Roaster's Choice box (cart-38956), 24 seconds apart on October 27. Neither charge has shipped yet. The second charge (capture 2JF20271UX744891X) is the extra one, and refunding it returns $64.00 to the buyer. If nobody acts, the buyer will see two charges and is likely to file a dispute.
Agent proposed: Refund capture $64.00
Agent
The later duplicate capture charged the buyer for the same cart a second time, and the order has not shipped, so refunding the full $64.00 fixes the double charge.
Policy said: needs the owner's approval
Policy gate
  • Refunds send money back to the buyer and cannot be reversed, so the owner approves every one.
Agent proposed: Ask the owner
Agent
Shipping the box against the original charge is a fulfilment decision only the owner can make.
Policy said: needs the owner's approval
Policy gate
  • The agent asked for a human decision.