Transaction Flow Strategy
The TransactionFlowStrategyEnum defines how BoxNCase requests the initial payment action:
AUTHORIZATION: hold funds first; capture later.CHARGE: capture funds immediately.
This strategy applies only to payment apps.
It does not affect manual transactions created with transactionCreate or updated via transactionUpdate.
For manual transactions, you explicitly define the amounts and events yourself.
Event Flows by Strategy
- Authorization flow
- Charge flow
Business Advantages
Choosing the right transaction flow strategy is a crucial business decision. The best choice depends on your product, business model, and fulfillment process.
When to use AUTHORIZATION
- Inventory or stock-sensitive products: Ensure items are available before capturing funds.
- Fraud or risk checks: Hold the payment while verifying order details.
- Partial fulfillment: Capture only the portion shipped if the full order can’t be fulfilled.
- Customer-friendly preorders/backorders: Customers aren’t fully charged until the product is delivered.
When to use CHARGE
- Instant delivery products: Digital goods, subscriptions, or services delivered on purchase.
- Fast-moving, low-risk retail: Simplifies operations by charging right away.
- High-volume sales: Reduces operational overhead from tracking pending authorizations.
- Cash flow needs: Immediate settlement improves liquidity.
Configuration
You can set the strategy per channel as the default or override it per payment during transaction initialization.
Channel Default
-
Dashboard: Go to Configuration → Channels →
<your_channel>→ Payment settings, then change Authorize transactions instead of charging. -
API: Use the
channelUpdatemutation and set thepaymentSettings.defaultTransactionFlowStrategyfield.
App Override
- When initializing a transaction, pass the
actionargument totransactionInitialize. - If
actionis not provided, BoxNCase falls back to the channel’spaymentSettings.defaultTransactionFlowStrategy.
Actions on Transactions
All actions on a transaction can be performed via the BoxNCase Dashboard or API.
Performing Actions
-
Dashboard:
Go to Order details → Transactions, then choose Charge, Cancel, or Refund, whichever is available and appropriate. -
API:
UsetransactionRequestActionwith the correspondingactionparameter (CHARGE,CANCEL,REFUND).
Action Behavior
- Charged transactions → Can be refunded directly.
- Authorized transactions → Can be:
- Cancelled → Funds are released without charging.
- Captured (charged) first → Then optionally refunded.
Authorization Expirations
- Authorizations are temporary and typically expire according to payment provider and card network rules (often 7–30 days).
- Expiration happens on the provider side; when an authorization expires, funds are automatically released.
- To continue processing, you must re-authorize the transaction.
- Track events in your payment app and report them to BoxNCase using
transactionEventReportas needed.