Fee policy
Apex charges three fees on the Partner Network. All three are editable by the Apex team — you see your current rates in the dashboard + can negotiate custom rates for enterprise volume.
The fees
| Fee kind | Default | When it's charged |
|---|---|---|
facilitation_payout | 0.25% + $0.50 per payout | Every Stripe transfer from your balance to a partner. Second transfer (same batch) moves the fee to Apex's Connect account. |
identity_verification | $2.50 flat per check | Once per partner when they complete Stripe Identity. Passed to the partner's Stripe Express account — not to your merchant account. |
instant_payout | 1.0% + $0.50 | When a partner elects instant payout (funds in minutes instead of standard ACH) |
Where to see your current rate
Dashboard: /dashboard/partners/stripe-connect shows a "Your fees" card with all three rates. Any enterprise override is tagged with a Custom badge.
SDK:
const { fees } = await apex.getEffectiveFees();
// {
// facilitation_payout: { bps: 25, flatUsd: 0.5, source: "platform_default", isCustom: false },
// identity_verification: { flatUsd: 2.5, source: "platform_default", isCustom: false },
// instant_payout: { bps: 100, flatUsd: 0.5, source: "platform_default", isCustom: false },
// }
Fee resolution order
Per fee kind, the resolver picks the highest-priority match:
- Merchant override — explicit per-merchant rate (enterprise deals)
- Platform default — the global default everyone gets
- Hardcoded fallback — baked into code; used if no policy records exist
source field tells you which level hit. A merchant-override rate shows source: "merchant_override" and isCustom: true.
How fees are snapshotted
When you approve a payout, the fee resolved at that moment is snapshotted on the HoldbackEntry. Admin edits to the platform fee after approval don't change what you owe on already-approved commissions.
This gives you:
- Deterministic per-payout fees — if a partner gets approved on Monday at 25 bps and you negotiate to 15 bps on Tuesday, Monday's batch still uses 25 bps.
- Audit clarity — the fee on every batch is explainable from the entry's record.
Enterprise pricing
Volume merchants (typically $100K+/month in partner payouts) can negotiate reduced rates. Reach out to sales@apex.inc — we'll set up a merchant scope override that applies just to your project.
Overrides propagate within 60 seconds (in-memory cache TTL). No SDK / dashboard rework needed — the resolver handles it transparently.
Adding a new fee kind
The FeeKind type is an enum. Apex adds new ones (e.g. for additional connectors, new payout rails) over time. The admin UI auto-renders every FeeKind once it's added — no dashboard updates needed.
Related
- Facilitated payouts — where the fee fires
- Approving payouts
- Stripe Connect setup