A processing_error not marked outcomeUnknown already answered this request, so the next one is taken as the attempt's definitive failure.
OptionalcontestedAn overlapping run sent another request under this key (a card or plan set while this charge was in flight). The PSP holds whichever reached it first, and a failure may be its refusal of the other one, so a failure freezes the pin instead of settling the attempt; a success still settles it.
ISO 8601 — when the original charge was sent.
OptionalfrozenNo replay can be sent safely any more: the schedule is spent, or the next replay would fall outside replayWindowHours. The cron leaves the period alone until resolvePendingRenewal settles the charge.
The key the original charge used; every replay reuses it.
Uncertain answers this request has had so far.
A renewal charge that ended without a definitive answer, so the money may have moved: the PSP was unreachable or rate limiting, the error was unknown or marked outcomeUnknown, or it was a first processing_error. Until an answer settles it, every charge for the period replays this request under this key. A PSP that keeps the key's result (Stripe, for a request that began executing) then answers with the original instead of charging again; one that refuses a reused key needs its adapter to read the original back and to mark what it cannot read back outcomeUnknown. The request is kept as sent because a PSP refuses a reused key carrying other parameters, or answers it with the original's result.
Replays run on replayDelaysMinutes and only within replayWindowHours of the first send: past that a PSP may no longer hold the key, and a replay could charge again. A pin that runs out of replays is
frozenand waits for resolvePendingRenewal, like a pending renewal.