Skip to content

Changelog

API changelog

Every change to the Ureh API, newest first. Breaking changes, deprecations and security updates are called out so you can tell at a glance whether a release asks anything of your integration.

Latest release v1.6

1 entry in Breaking Change

Clear
v1.6
Breaking Change

Unresolved transactions no longer report as failed #

A purchase whose upstream result is not yet known reports reconciliation_required rather than failed. The previous model collapsed unknown outcomes into failure, which was wrong often enough to cost money.

Affected

  • GET /v1/transactions/{reference}
  • webhook: transaction.updated

Action required

Treat reconciliation_required as an open outcome and keep the purchase pending. Refunding locally on this state will refund purchases that later settle.

The transaction state machine previously had no way to express an outcome it had not yet established. A provider response that was ambiguous, delayed or absent was recorded as failed, which is a terminal state, and a meaningful share of those purchases went on to settle successfully once requeried.

Unresolved outcomes now have their own state. It is not terminal and it is not a failure; a requery or an operator moves it to success or failed. Terminal states remain exactly what they were, so an integration that already waited for one is unaffected.

Migration guidance

Where a status check previously tested for failure by exclusion, test for the terminal states explicitly:

- if (state !== "success") markFailed()
+ if (state === "failed")  markFailed()
+ if (state === "success") markSettled()
+ // pending, queued, processing, reconciliation_required: still open