Skip to content

Fire a row-addressed reversal against a decided simulated spend

POST/v1/simulated-spends/{id}/reversal

Requires an API client bearer token.

Fires one FULL 0400 reversal against the named simulated spend, which must be `decided` with an `approved` decision. The reversal is recorded as a NEW child simulation (`parent_simulation_id` names the original) — the original row is never mutated; poll `GET /v1/simulated-spends/{id}` with the returned `simulation_id` (the CHILD, not the path id) to see it reach a decision. Requires an Idempotency-Key header: a retry with the SAME key replays the same child result rather than firing a second reversal. Works regardless of the card’s current state (releasing a hold is always safe) — unlike the increment route, this one has no active-card gate. A reversal/increment CHILD cannot itself be reversed (it carries no reversible wire identity of its own); reverse the ORIGINAL instead.

Parameters

Path parameters

NameRequiredDescription
idrequired

Header parameters

NameRequiredDescription
Idempotency-Keyrequired

Client-chosen. An identical retry with the same key returns the stored response; reusing the key with a different payload returns 409.

Example

curl -X POST https://api.rigid.fi/v1/simulated-spends/{id}/reversal \
  -H "Authorization: Bearer $RIGID_API_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)"

Responses

202

The reversal was accepted for transmission.

simulation_idstringrequired
accepted_atstring (date-time)required
stanstring | nullrequired
rrnstring | nullrequired
network_txn_idstring
400

Validation error

typestringrequired
titlestringrequired
statusintegerrequired
detailstring
instancestring
401

Authentication required

typestringrequired
titlestringrequired
statusintegerrequired
detailstring
instancestring
403

Live mode — row-addressed reversal fires are a test-mode-only surface

typestringrequired
titlestringrequired
statusintegerrequired
detailstring
instancestring
404

Simulation not found

typestringrequired
titlestringrequired
statusintegerrequired
detailstring
instancestring
409

The original is not a `decided`, `approved` spend; has no recorded network transaction id (a pre-RIGID-517 row); has no recorded wire identity (a pre-Task-8 row — re-fire the original); IS ITSELF a reversal/increment child (child rows carry no reversible wire identity — reverse the original instead); or the Idempotency-Key was reused with a different payload

typestringrequired
titlestringrequired
statusintegerrequired
detailstring
instancestring
500

Internal server error

typestringrequired
titlestringrequired
statusintegerrequired
detailstring
instancestring