PayFacto API - v2.0 - Charge & Refund Status Values

PayFacto API - v2.0 - Charge & Refund Status Values

PayFacto API - v2.0 - Charge & Refund Status Values

All possible status values for charges and refunds in the PayFacto Payment API v2.0, with the state transitions allowed between them. Use this reference to drive UI state, reconciliation logic, and webhook handling.

πŸ“Š

  Overview

Every charge and refund object returned by the API has a status field describing its current state in the transaction lifecycle. Status values are mutually exclusive β€” a resource is always in exactly one state β€” and transitions between states follow strict rules described below.

ℹ️

Poll GET /charges/{chargeId} or GET /refunds/{refundId} to check current status, or configure a webhook to be notified of status changes in real time.

πŸ’³

  Charge Status Values

StatusTypeDescription
AUTHORIZEDPre-authFunds are reserved on the card but not yet collected. Created when a charge is submitted with capture: false.
CAPTUREDActiveFunds have been collected from a previously authorized charge via the captures endpoint. Awaiting settlement.
SUCCEEDEDFinalAn immediate purchase (capture: true) was approved and funds collected in a single step.
DECLINEDFinalThe issuer refused the transaction. See result.declineCode for the reason.
FAILEDFinalThe transaction could not be processed due to a system or validation error β€” not an issuer decline.
VOIDEDFinalA captured or succeeded charge was cancelled before batch close. No settlement occurs.
RELEASEDFinalAn authorized (pre-auth) charge was released without being captured. The hold is removed; no funds were ever collected.
↩️

  Refund Status Values

StatusTypeDescription
SUCCEEDEDFinalThe refund was approved and funds will be returned to the cardholder at settlement.
FAILEDFinalThe refund could not be processed β€” typically due to insufficient remaining captured amount or a system error.
VOIDEDFinalThe refund was cancelled before batch close via the refund voids endpoint. Error correction only.
⚠️

Refunds do not have an intermediate pre-authorization state. A refund is either SUCCEEDED, FAILED, or later VOIDED before settlement.

πŸ”„

  State Transition Rules

From StatusAllowed TransitionNotes
AUTHORIZED→ CAPTURED, VOIDED, RELEASEDCapture collects funds. Void cancels (rare — usually used on captured, not authorized). Release cancels the hold without collecting funds.
AUTHORIZED→ AUTHORIZED (increment)An increment updates the authorized amount but keeps the charge in AUTHORIZED status.
CAPTURED→ VOIDEDA captured charge can be voided before the end-of-day batch closes.
SUCCEEDED→ VOIDEDAn immediate purchase can also be voided before batch close, same as a captured charge.
CAPTURED / SUCCEEDED→ (refunded via separate Refund resource)Refunds are separate resources, not a status change on the charge itself. The charge remains CAPTURED or SUCCEEDED; a new Refund resource is created.
DECLINED / FAILED→ (terminal — no further transitions)Once declined or failed, a charge cannot be retried in place. Submit a new charge request.
πŸ“‹

  Charge Lifecycle

Two paths exist depending on whether the charge is created with capture: true (immediate purchase) or capture: false (pre-authorization).

Path A β€” Immediate Purchase

Flow
POST /charges (capture: true)
β”‚
β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ SUCCEEDED β”‚ ──▢ β”‚ VOIDED β”‚ (before batch close)
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚
β–Ό
(Refund resource created separately, if needed)

Path B β€” Pre-Authorization

Flow
POST /charges (capture: false)
β”‚
β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ AUTHORIZED β”‚
β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚
β”Œβ”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β–Ό β–Ό β–Ό
CAPTURED RELEASED AUTHORIZED (increment, stays AUTHORIZED)
β”‚
β–Ό
VOIDED (before batch close)