CreateVendorOrder embeds the public polymarket.v1.InsertOrderRequest. The supported order shape for partner entry is intentionally narrow: limit orders with fill-or-kill (FOK) time in force and either a share quantity or a cash quantity such as “spend $20.”
The service validates populated fields against a fail-closed allowlist. Any field marked Rejected if set below causes INVALID_ARGUMENT, with the offending field named in the error. This prevents newly added public-order features from becoming available to partner callers unintentionally.
Supported fields
In proto3, scalar fields at their default value are not populated on the wire. “Rejected if set” means do not send a non-default value for that field. Construct the supported request directly rather than reusing a broad public-order object.
Fixed-point values
price, order_qty, and cash_order_qty are integers on the public exchange message. Convert user-facing decimals with the scales published for the instrument:
2, a 20” is cash_order_qty = 2000.
Customer identity
order.account is the only customer identifier accepted by CreateVendorOrder. Persist the DCM account delivered when KYC is approved and use it consistently for:
order.accounton partner order placementparticipant_account_idon transfers- the account field on Drop Copy and reconciliation records
order.user or order.session_id. The service authenticates your firm, verifies that order.account belongs to an enabled participant relationship, and derives the submitting participant.
MoneyAmount
MoneyAmount is used for the top-level vendor_fee; it is not used for the fixed-point fields in the embedded public order.
Next step
CreateVendorOrder
See complete FOK share-order and “spend $20” cash-order examples.