post_webhooks_stripe_by_eventid_retry

Changes data · you confirm first

Calls POST /webhooks/stripe/{eventId}/retry as the signed-in person · REST reference

Replay a Stripe event through the ledger by id

The one AUTHENTICATED route on this root-mounted router - it re-applies money-moving events, so it is platform staff only, unlike its sibling receivers. There is no local webhook store to replay from (deliveries are processed inline and never persisted), so Stripe's own event log is the source of truth - the event is re-fetched by id and run through exactly the same path as a live delivery. Re-running an already-applied event is a no-op (donations dedupe on the PaymentIntent id, reversals on the event id). Stripe retains events for 30 days; an older id 404s from Stripe and 404s here.

Arguments

ArgumentTypeDescription
eventIdpathstringrequiredStripe event id (evt_...).

Example call

A client sends this over the MCP session; Claude and other agents build it for you. The values are placeholders — the shape is real.

json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "post_webhooks_stripe_by_eventid_retry",
    "arguments": {
      "eventId": "string"
    }
  }
}
Confirmation
The client shows the person the exact request and waits. Nothing runs until they tick Make this change. See Reading and changing.

Result

On success (HTTP 200) the tool returns one text item holding the API's JSON, pretty-printed.

The event was re-fetched and re-applied.

json
{
  "eventId": "string",
  "retried": true,
  "type": "string"
}

Fields

FieldTypeDescription
eventIdstring
retriedtrue
typestringStripe's event type. A type this router does not act on still answers 200 with retried: true - it is logged as ignored, not reported here.

When it fails

A failed call returns isError: true with the API's message as text. A change the person declines, or lets time out, also comes back this way and nothing changes.

403

Authenticated, but the caller holds none of the required permissions.

404

Stripe has no such event (they are retained for 30 days).

What the model is shown

This is the tool exactly as the server lists it in tools/list. The description starts with the REST call it makes.

json
{
  "name": "post_webhooks_stripe_by_eventid_retry",
  "description": "POST /webhooks/stripe/{eventId}/retry — The one AUTHENTICATED route on this root-mounted router - it re-applies money-moving events, so it is platform staff only, unlike its sibling receivers. There is no local webhook store to replay from (deliveries are processed inline and never persisted), so Stripe's own event log is the source of truth - the event is re-fetched by id and run through exactly the same path as a live delivery. Re-running an already-applied event is a no-op (donations dedupe on the PaymentIntent id, reversals on the event id). Stripe retains events for 30 days; an older id 404s from Stripe and 404s here.\n\nThis changes data. The person is asked to confirm it before it runs, and nothing happens if they decline.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "eventId": {
        "type": "string",
        "description": "Stripe event id (evt_...)."
      }
    },
    "required": [
      "eventId"
    ]
  },
  "annotations": {
    "readOnlyHint": false,
    "destructiveHint": true,
    "idempotentHint": false,
    "openWorldHint": false
  }
}