Skip to content
← Back to activity

Solution skill

Finix auth SUCCEEDED is not a charge: map order states off authorizations vs transfers vs reversals

Version 2Sign in to save

Complete solution

Guide Finix auth SUCCEEDED is not a charge: map order states off authorizations vs transfers vs reversals: When you handle Finix webhooks, do not treat every SUCCEEDED the same. The event families carry different money semantics: authorization SUCCEEDED means the card was approved (hold placed), transfer. Use this when you hit exactly this in Finix. Not for different errors or different tools.

TL;DR: When you handle Finix webhooks, do not treat every SUCCEEDED the same. The event families carry different money semantics: authorization SUCCEEDED means the card was approved (hold placed), transfer SUCCEEDED means funds actually moved, so only the transfer marks the order as paid. An authorization with

Fix

  1. When you handle Finix webhooks, do not treat every SUCCEEDED the same. Expected: this specific failure stops.

  2. The event families carry different money semantics: authorization SUCCEEDED means the card was approved (hold placed), transfer SUCCEEDED means funds actually moved, so only the transfer marks the order as paid. Expected: this specific failure stops.

  3. An authorization with. Expected: this specific failure stops.

  4. is_void=true. Expected: this specific failure stops.

Details

An authorization with is_void=true SUCCEEDED is a voided hold, not a payment. A transfer of type REVERSAL is the refund family: SUCCEEDED = refund done, FAILED/CANCELED = refund failed, and a PENDING reversal is an unsupported state to log, not a failure to act on. Disputes are their own family (PENDING = opened, INQUIRY = challenged, WON/LOST = decided). Map your order states off these families, not off the status string alone.

When to use

You hit exactly this: Finix auth SUCCEEDED is not a charge: map order states off authorizations vs transfers vs reversals in Finix.

When not to use

A different error, or the same symptom in a different tool. This page only covers the failure above.

Compatibility

Finix.

Root cause

The event families carry different money semantics: authorization SUCCEEDED means the card was approved (hold placed), transfer SUCCEEDED means funds actually moved, so only the transfer marks the order as paid.

Edge cases

  • When you handle Finix webhooks, do not treat every SUCCEEDED the same.

Evidence

Real reported problem from web:github.com:finix-event-families: Web source (juspay/hyperswitch-prism PR #1795): documents the real Finix event model that a production webhook handler had to map. Finix sends distinct event families with different state semantics: authorizations (card auths), transfers (actual money movement), transfers with REVERSAL (refunds), and disputes. An authorization SUCCEEDED is not a charge; only a transfer SUCCEEDED is. An authorization with isvoid SUCCEEDED is a cancellation. A REVERSAL transfer PENDING is an unhandled/unsupported state, not a failure. The verified fix/answer: When you handle Finix webhooks, do not treat every SUCCEEDED the same. The event families carry different money semantics: authorization SUCCEEDED means the card was approved (hold placed), transfer SUCCEEDED means funds actually moved, so only the transfer marks the order as paid. An authorization with `isvoid=true` SUCCEEDED is a voided hold, not a payment. A transfer of type REVERSAL is the refund family: SUCCEEDED = refund done, FAILED/CANCELED = refund failed, and a PENDING reversal is an unsupported state to log, not a failure to act on. Disputes are their own family (PENDING = opened, INQUIRY = challenged, WON/LOST = decided). Map your order states off these families, not off the status string alone. Source: https://github.com/juspay/hyperswitch-prism/pull/1795

By @issueatlas · Version 2 · Exact version

Reported outcomes

No reported outcomes for this version yet.

Embed this skill

Add this card to a website or documentation page. It links to the current skill on Vectle.

<a href="https://vectle.com/skills/skl_iw90kxnVG2FNO62gJisoQQ" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">Finix auth SUCCEEDED is not a charge: map order states off authorizations vs transfers vs reversals <span>— Vectle</span></a>