Merchant Wallet Withdrawals
Definition
Merchant Wallet withdrawals move funds out of the Merchant Wallet (the wallet that receives proceeds from Accepting Payments) to an external destination: another on-chain wallet you control, custody/liquidity, or a payout corridor (handled separately under Payouts).
Note: The Merchant Wallet uses the same underlying wallet construct as Account Wallets in WAAS; it’s labeled “Merchant” in the Accepting Payments context for clarity.
When to Use
- Settling sales proceeds to treasury/custody after collection.
- Moving funds to liquidity wallets that serve end-user withdrawals.
- Funding payout corridors (banks/PSPs) after approval.
- Rebalancing across your own wallets or entities.
Execution Modes
Manual (default)
- Requests remain
pending_reviewuntil an authorized approver approves. - Recommended for high-value or first-time destinations.
- Provides a clear approval record (who/when/policy version/comments).
Automatic (opt-in)
-
Executes immediately if balance and policy limits pass.
-
Configure per-transaction and daily caps suited to your risk profile.
-
Insufficient funds behavior (choose one per policy):
- Soft fallback: auto-route to Manual review.
- Hard fail: reject with a terminal failure status.
Destination Types
- On-chain wallet you control (same asset/rail).
- Custody / liquidity destinations.
- Payout corridors (PSPs/banks) initiated after a successful withdrawal approval.
Corridor specifics (SEPA, SWIFT, PSPs) are detailed in Payouts: Banks & PSPs.
Validation & Rejections
- Address validation: Requests fail if the destination wallet address format/network is invalid or mismatched.
- Balance checks: Requests fail or fall back to Manual if available funds are insufficient per policy.
- Stale/duplicate requests: Should be rejected by your process based on
withdrawalIdand latest status.
Typical Flow
Manual
Create request → Pending review → Approve → Execute on-chain → Record result
Automatic
Create request → Policy & balance check → Execute on-chain → Record result
Operational Guidance
- Thresholds: Start with conservative caps; raise as operations mature.
- First-time destinations: Keep Manual until a destination is verified operationally.
- Approver SLAs: Set internal time targets to avoid request backlogs.
- Reconciliation: Store on-chain tx IDs, timestamps, amounts, rail (
currencyType), destination reference, and approver details (for Manual).
Compliance Notes
- Apply sanctions/AML screening to outbound movements in line with your program.
- Enforce your restricted-jurisdiction policies.
- Ensure internal records clearly map merchant ledger entries to on-chain movements and (if applicable) to downstream payouts.
Best Practices Checklist
- Manual by default; enable Automatic only after validating reporting and controls.
- Use soft fallback for Automatic to reduce failure rates during scale-up.
- Validate destination format/network before approval or execution.
- Maintain an audit trail for every withdrawal (request → decision → execution result).
- Separate withdrawals (on-chain) from payouts (off-ramp) in your runbooks, even if they are executed back-to-back.
Updated about 1 month ago
