v0.5.0
Guides

Withdrawal status

Explain a pending payout without submitting the same withdrawal twice.

A pending provider response is a distinct state from a failed request. This pattern tracks an existing payout; it does not teach payment initiation or implement identity and risk decisions.

Separate checks from confirmation

Define steps for validating the withdrawal reference, reading completed player verification, applying your risk decision, reconciling the existing payout, and notifying the player.

Your domain services own each business decision. A stage should return a useful status and correlation reference rather than a vague “OK”. A terminal business rejection should not enter an automatic retry loop.

Reconcile an existing payout

The confirmation handler reads the provider using the payout reference. Treat outcomes explicitly:

Provider outcomeHandler behavior
ConfirmedRecord the confirmed reference and allow notification
Definitively rejectedRecord the reason permitted for support; stop or follow your rejection path
PendingReport a classified transient condition and use bounded retry settings
Timeout or lost connectionQuery again using the same reference; do not infer failure
Reference missing or inconsistentEscalate for reconciliation rather than creating a replacement payout

Pipelogiq's retry delay is useful for bounded status checks. There is no generic delayed-stage timer to assume here. For periodic reconciliation outside one execution, use a schedule.

Keep the customer answer specific

Support should be able to see which checks finished, when the last confirmation check ran, and whether another check is planned. Do not turn an integration timeout into a claim that the customer's money is lost.

The home-page example says that the checks are complete and confirmation is pending. It is a fictional illustration of the context your handlers should expose. It is not connected to a provider.

Confirmations and cancellation

An approval-waiting stage and a provider-pending status check are different mechanisms. Approval waits for an explicit API decision; a provider check executes a handler again. See reliable execution.

Cancelling a pipeline stops further orchestrated work and invalidates unfinished execution attempts. It does not reverse a payout already started by an external service. Implement any reversal as an explicit, authorized business operation with its own reconciliation rules.

Implement and verify

Use the .NET recipes or Java recipes for error classification, context, and idempotency. Test confirmed, rejected, pending, and unknown outcomes. Assert that retries keep the same external payout reference and never submit a new payout.

Download this page as MarkdownMatches the 0.5.0 source release

Start here