Fixed
Journal responses corrected with distinct JNLC and JNLS schemas
August 26th, 2026
Broker API
Journal responses are now described as complete JNLC (cash) and JNLS (securities) schemas composed from a shared journal base and selected by an explicit entry_type discriminator, so generated clients preserve the actual wire response.
- The
Journalschema is now a discriminated union ofJNLCandJNLSrather than a partial composition, with each variant carrying all shared journal fields. - Batch journal responses are modeled as
BatchJournalResponseJNLCandBatchJournalResponseJNLS, with an optionalerror_messageon a failed item and refreshed examples. - The batch and reverse batch descriptions now match behavior: a successful reverse batch returns an array of
JNLCjournals, and if any account or entry is invalid the whole batch is canceled with no per-item error result. - Required and nullable journal fields (
symbol,qty,price,settle_date,system_date,net_amount) are corrected so null values round-trip. legson theOrderLegschema is documented as always null, with an empty array also accepted for generated-client compatibility.
Affected Endpoints
POST /v1/journalsGET /v1/journalsGET /v1/journals/{journal_id}POST /v1/journals/batchPOST /v1/journals/reverse_batchPOST /v1/trading/accounts/{account_id}/ordersGET /v1/trading/accounts/{account_id}/ordersGET /v1/trading/accounts/{account_id}/orders/{order_id}PATCH /v1/trading/accounts/{account_id}/orders/{order_id}GET /v1/trading/accounts/{account_id}/orders:by_client_order_id
Trading API
legs on the OrderLeg schema now also accepts an empty array in addition to null, for generated-client compatibility. Order legs are still never nested beyond one level, and the returned values are unchanged.
Affected Endpoints
GET /v2/ordersGET /v2/orders/{order_id}GET /v2/orders:by_client_order_idPOST /v2/ordersPATCH /v2/orders/{order_id}DELETE /v2/positionsDELETE /v2/positions/{symbol_or_asset_id}