Declaring the fee
Every order you place throughCreateVendorOrder carries a vendor_fee — a fixed USD amount you compute per your agreement with the participant. Polymarket US validates that it is well-formed, non-negative, and allowed for your firm, then records the mapping “this firm declared vendor fee $X for order Y”.
The platform never knows your fee basis. If your agreement is 2% of principal and the order principal is $100, you send
"2.00" — Polymarket US does not compute fees from a percentage or schedule, does not know whether your basis is per-order, per-fill, or flat, and does not adjust the recorded amount if the order is partially filled or cancelled. What is recorded is exactly what you declared, keyed by order ID. Applying your own fee policy (for example, waiving fees on unfilled orders) happens in your books and in the amount you choose to collect.Accrual and your buying-power gate
Between declaration and collection, an accrued fee is a receivable: the cash that will pay it sits in the participant’s account, indistinguishable from their tradable balance. Polymarket US does not reserve for it — its order check covers collateral and exchange fees only. Your platform (with your funding entity) must therefore maintain a shadow balance per participant:Accrued fees are credit exposure
Until collected, accrued fees are an unsecured receivable of your funding entity against the participant’s account balance. If the participant’s cash drops below the accrued amount — trading losses are the obvious path — the eventualVENDOR_FEES transfer will be rejected for insufficient funds. The platform does not underwrite this: managing the exposure is your and your funding entity’s responsibility. The levers are the gate above (which prevents spending the earmarked cash but not losing it), collection frequency (daily collection minimizes the window), and your own fee policy for loss scenarios.
The Vendor Fees report
Polymarket US produces a daily Vendor Fees report covering the fees declared by your firm, so your funding entity can reconcile its own accrual and drive collection without tracking every order itself. One row per declared fee, plus a per-account net summary:
Because rows carry your
clord_id, the order’s state, and its trades, your funding entity can apply its own policy before collecting — for example, waiving fees on cancelled or unfilled orders, or prorating by filled quantity — by joining against its own order records. The report is the platform’s record of what you declared; the amount you collect is yours to determine, up to what the participant’s cash can cover.
Collecting the fees
Collection is a standard transfer with reasonVENDOR_FEES — participant account → partner funding account:
- Ingest the report (or close your own books — you declared every fee, so your accrual should match).
- Reconcile report totals against your funding entity’s accrual; investigate any mismatch before collecting.
- Create one
VENDOR_FEEStransfer per participant account for the net amount due, with your journal reference inexternal_reference.
- At most once per day per participant account. Weekly or monthly collection is fine — pick the cadence that suits your funding entity, but never collect more often than daily.
- One transfer per account per period — never one per order or per fee.
- Pace scheduled runs inside the transfer budget — an EOD collection across your whole participant base should drain through a rate-limited queue, not fire simultaneously. See rate limits and smoothing.
- Handle rejection: an insufficient-funds rejection means the participant’s free cash no longer covers the accrual — resolve per your participant agreement, then re-collect what is collectable.
Related pages
Create Order
Where the fee is declared.
Transfers
The API that executes collection.
Partner Funding Overview
The full money-flow model.
Reconciliation
Keeping your books in sync with the ledger.