Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
363 changes: 363 additions & 0 deletions assets/FIX42-paxos.xml

Large diffs are not rendered by default.

20 changes: 20 additions & 0 deletions docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -965,6 +965,26 @@
}
]
},
{
"tab": "FIX API Reference",
"groups": [
{
"group": "FIX API Reference",
"pages": [
"guides/crypto-brokerage/fix/reference/index",
"guides/crypto-brokerage/fix/reference/session-messages",
"guides/crypto-brokerage/fix/reference/new-order",
"guides/crypto-brokerage/fix/reference/order-cancel",
"guides/crypto-brokerage/fix/reference/order-status",
"guides/crypto-brokerage/fix/reference/execution-report-new",
"guides/crypto-brokerage/fix/reference/execution-report-fills",
"guides/crypto-brokerage/fix/reference/execution-report-cancels",
"guides/crypto-brokerage/fix/reference/execution-report-reject-expired",
"guides/crypto-brokerage/fix/reference/encoded-tags"
]
}
]
},
{
"tab": "Previews",
"hidden": true,
Expand Down
8 changes: 7 additions & 1 deletion guides/crypto-brokerage/fix/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ description: Leverage the FIX protocol for crypto trading.
---


FIX (Financial Information eXchange) is an electronic messaging protocol widely adopted by financial institutions to transmit trading activity such as submitting or canceling orders and receiving execution information. The [FIX API](https://developer.paxos.com/docs/itbit/fix/) is based on FIX 4.2 and modeled after common Forex FIX implementations.
FIX (Financial Information eXchange) is an electronic messaging protocol widely adopted by financial institutions to transmit trading activity such as submitting or canceling orders and receiving execution information. The [FIX API](/guides/crypto-brokerage/fix/reference) is based on FIX 4.2 and modeled after common Forex FIX implementations.

## Get Started

Expand All @@ -18,4 +18,10 @@ FIX (Financial Information eXchange) is an electronic messaging protocol widely
<Card title="Best Practices" href="/guides/crypto-brokerage/fix/best-practices" icon="lightbulb">
Learn about connection management, sequence number management and testing.
</Card>
<Card title="FIX API Reference" href="/guides/crypto-brokerage/fix/reference" icon="book-open">
Message types, required tags, and encoded values for Paxos FIX 4.2.
</Card>
<Card title="Data Dictionary" href="/assets/FIX42-paxos.xml" icon="file-code">
QuickFIX-compatible FIX 4.2 data dictionary for Paxos.
</Card>
</CardGroup>
2 changes: 1 addition & 1 deletion guides/crypto-brokerage/fix/onboard.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -59,4 +59,4 @@ Contact support@paxos.com with test results or for help with an alternative to [

- Test the FIX implementation in the Sandbox environment by running through the [certification process](/guides/crypto-brokerage/fix/certify).
- Review the [FIX best practices](/guides/crypto-brokerage/fix/best-practices).
- Read the [FIX reference documentation](https://developer.paxos.com/docs/itbit/fix/).
- Read the [FIX reference documentation](/guides/crypto-brokerage/fix/reference).
34 changes: 34 additions & 0 deletions guides/crypto-brokerage/fix/reference/encoded-tags.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
title: "Encoded Tags"
description: "MsgType and ExecType lookup values for Paxos FIX 4.2."
---

Use these tables to decode **MsgType (`35`)** and **ExecType (`150`)** values in FIX messages.

## MsgType (`35`)

| Value | Description | Reference |
| --- | --- | --- |
| `A` | Logon | [Session Messages](/guides/crypto-brokerage/fix/reference/session-messages#logon) |
| `D` | New Order Single | [New Order](/guides/crypto-brokerage/fix/reference/new-order) |
| `F` | Order Cancel Request | [Order Cancel](/guides/crypto-brokerage/fix/reference/order-cancel#order-cancel-request) |
| `H` | Order Status Request | [Order Status](/guides/crypto-brokerage/fix/reference/order-status#order-status-request) |
| `0` | Heartbeat | [Session Messages](/guides/crypto-brokerage/fix/reference/session-messages#heartbeat) |
| `2` | Resend Request | [Session Messages](/guides/crypto-brokerage/fix/reference/session-messages#replay-messages) |
| `8` | Execution Report | [New](/guides/crypto-brokerage/fix/reference/execution-report-new), [Fills](/guides/crypto-brokerage/fix/reference/execution-report-fills), [Cancels](/guides/crypto-brokerage/fix/reference/execution-report-cancels), [Reject & Expired](/guides/crypto-brokerage/fix/reference/execution-report-reject-expired) |
| `9` | Order Cancel Reject | [Order Cancel](/guides/crypto-brokerage/fix/reference/order-cancel#order-cancel-reject) |

## ExecType (`150`)

| Value | Description | Reference |
| --- | --- | --- |
| `0` | New | [Execution Report - New](/guides/crypto-brokerage/fix/reference/execution-report-new) |
| `1` | Partially Filled | [Execution Report - Partial Fill](/guides/crypto-brokerage/fix/reference/execution-report-fills) |
| `2` | Filled | [Execution Report - Filled](/guides/crypto-brokerage/fix/reference/execution-report-fills) |
| `3` | Done | |
| `4` | Canceled | [Execution Report - Canceled](/guides/crypto-brokerage/fix/reference/execution-report-cancels) |
| `6` | Pending Cancel | [Execution Report - Pending Cancel](/guides/crypto-brokerage/fix/reference/execution-report-cancels) |
| `8` | Rejected | [Execution Report - Order Reject](/guides/crypto-brokerage/fix/reference/execution-report-reject-expired#execution-report---order-reject) |
| `A` | Pending New Order | [Execution Report - Pending New](/guides/crypto-brokerage/fix/reference/execution-report-new) |
| `C` | Order Expired | [Execution Report - Expired](/guides/crypto-brokerage/fix/reference/execution-report-reject-expired#execution-report---expired) |
| `D` | Order Changed | |
154 changes: 154 additions & 0 deletions guides/crypto-brokerage/fix/reference/execution-report-cancels.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
---
title: "Execution Reports - Cancels"
description: "Pending cancel and canceled execution report message formats and fields."
---

## Execution Reports – Cancels

After submitting an [Order Cancel Request](/guides/crypto-brokerage/fix/reference/order-cancel#order-cancel-request), Paxos sends two Execution Reports confirming the cancellation process:

- **Pending Cancel** (**ExecType (`150`)** = `6`) — Acknowledgement that the cancel request was received.
- **Canceled** (**ExecType (`150`)** = `4`) — Confirmation that the order has been canceled.

<Warning>

A Pending Cancel is **not** a guarantee of cancellation. The order may fill before the cancel is processed. If cancellation fails, an [Order Cancel Reject](/guides/crypto-brokerage/fix/reference/order-cancel#order-cancel-reject) is returned instead.

</Warning>

### Standard FIX Fields

| Tag | Field | When Present | Notes |
| --- | --- | --- | --- |
| `8` | BeginString | Always | Standard FIX header |
| `9` | BodyLength | Always | Standard FIX header |
| `35` | MsgType | Always | `8` (Execution Report) |
| `49` | SenderCompID | Always | Standard FIX header |
| `56` | TargetCompID | Always | Standard FIX header |
| `34` | MsgSeqNum | Always | Standard FIX header |
| `52` | SendingTime | Always | Standard FIX header |

#### Standard FIX Trailer

| Tag | Field | When Present | Notes |
| --- | --- | --- | --- |
| `10` | CheckSum | Always | |

### Response Fields

<Tabs>
<Tab title="Pending Cancel">

**ExecType (`150`)** = `6`, **OrdStatus (`39`)** = `6` (Pending Cancel).

**Always Present**

| Tag | Field | When Present | Notes |
| --- | --- | --- | --- |
| `54` | Side | Always | `1` = Buy, `2` = Sell |
| `150` | ExecType | Always | `6` (Pending Cancel) |
| `32` | lastShares | Always | `0` |

Check warning on line 50 in guides/crypto-brokerage/fix/reference/execution-report-cancels.mdx

View check run for this annotation

Mintlify / Mintlify Validation (paxos-0ac97319) - vale-spellcheck

guides/crypto-brokerage/fix/reference/execution-report-cancels.mdx#L50

Did you really mean 'lastShares'?
| `109` | ClientID | Always | |
| `1` | Account | Always | |
| `31` | LastPx | Always | `0` |
| `151` | LeavesQty | Always | Remaining unfilled quantity |
| `60` | TransactTime | Always | |
| `58` | Text | Always | `Order Cancel Pending` |
| `20` | ExecTransType | Always | `0` (New) |
| `55` | Symbol | Always | Currency pair |
| `17` | ExecID | Always | |
| `14` | CumQty | Always | Total filled quantity |
| `11` | ClOrdID | Always | ClOrdID from the cancel request |
| `44` | Price | Always | |
| `6` | AvgPx | Always | Average fill price |
| `41` | OrigClOrdID | Always | Original order ClOrdID |
| `40` | OrdType | Always | `1` = Market, `2` = Limit, `3` = Stop Market, `4` = Stop Limit |
| `39` | OrdStatus | Always | `6` (Pending Cancel) |
| `37` | OrderID | Always | |
| `381` | GrossTradeAmt | Always | **lastShares (`32`)** * **LastPx (`31`)** |

Check warning on line 68 in guides/crypto-brokerage/fix/reference/execution-report-cancels.mdx

View check run for this annotation

Mintlify / Mintlify Validation (paxos-0ac97319) - vale-spellcheck

guides/crypto-brokerage/fix/reference/execution-report-cancels.mdx#L68

Did you really mean 'lastShares'?
| `59` | TimeInForce | Always | `1` = GTC, `3` = IOC, `4` = FOK, `6` = GTT |

**Conditional**

| Tag | Field | When Present | Notes |
| --- | --- | --- | --- |
| `38` | OrderQty | Limit and market sell orders | Base quantity |
| `152` | CashOrderQty | Market buy orders | Fiat notional |
| `18` | ExecInst | Post-only orders | `6` (Post-Only) |
| `126` | ExpireTime | GTT orders | `YYYYMMDD-HH:MM:SS` format |

**Brokerage Clients**

| Tag | Field | When Present | Notes |
| --- | --- | --- | --- |
| `5047` | AllocBrokerAccountID | Brokerage clients | IdentityAccountId |
| `50` | SenderSubID | Brokerage clients | IdentityId |
| `5074` | FundCommissionOption | Brokerage clients | |
| `5000` | RecipientProfileId | Brokerage clients | ProfileID that receives settled currency |

**Optional**

| Tag | Field | When Present | Notes |
| --- | --- | --- | --- |
| `2362` | SelfMatchPreventionID | If enabled | Prevents self-matching. Up to 36 characters. Requires additional permissions. |

</Tab>
<Tab title="Canceled">

**ExecType (`150`)** = `4`, **OrdStatus (`39`)** = `4` (Canceled).

**Always Present**

| Tag | Field | When Present | Notes |
| --- | --- | --- | --- |
| `54` | Side | Always | `1` = Buy, `2` = Sell |
| `150` | ExecType | Always | `4` (Canceled) |
| `32` | lastShares | Always | `0` |

Check warning on line 106 in guides/crypto-brokerage/fix/reference/execution-report-cancels.mdx

View check run for this annotation

Mintlify / Mintlify Validation (paxos-0ac97319) - vale-spellcheck

guides/crypto-brokerage/fix/reference/execution-report-cancels.mdx#L106

Did you really mean 'lastShares'?
| `109` | ClientID | Always | |
| `1` | Account | Always | |
| `31` | LastPx | Always | `0` |
| `151` | LeavesQty | Always | Remaining unfilled quantity |
| `60` | TransactTime | Always | |
| `58` | Text | Always | `Cancelled Order` |
| `20` | ExecTransType | Always | `0` (New) |
| `55` | Symbol | Always | Currency pair |
| `17` | ExecID | Always | All zeros for canceled orders |
| `14` | CumQty | Always | Total filled quantity |
| `11` | ClOrdID | Always | ClOrdID from the cancel request |
| `44` | Price | Always | |
| `6` | AvgPx | Always | Average fill price |
| `41` | OrigClOrdID | Always | Original order ClOrdID |
| `40` | OrdType | Always | `1` = Market, `2` = Limit, `3` = Stop Market, `4` = Stop Limit |
| `39` | OrdStatus | Always | `4` (Canceled) |
| `37` | OrderID | Always | |
| `381` | GrossTradeAmt | Always | **lastShares (`32`)** * **LastPx (`31`)** |

Check warning on line 124 in guides/crypto-brokerage/fix/reference/execution-report-cancels.mdx

View check run for this annotation

Mintlify / Mintlify Validation (paxos-0ac97319) - vale-spellcheck

guides/crypto-brokerage/fix/reference/execution-report-cancels.mdx#L124

Did you really mean 'lastShares'?
| `59` | TimeInForce | Always | `1` = GTC, `3` = IOC, `4` = FOK, `6` = GTT |

**Conditional**

| Tag | Field | When Present | Notes |
| --- | --- | --- | --- |
| `38` | OrderQty | Limit and market sell orders | Base quantity |
| `152` | CashOrderQty | Market buy orders | Fiat notional |
| `18` | ExecInst | Post-only orders | `6` (Post-Only) |
| `126` | ExpireTime | GTT orders | `YYYYMMDD-HH:MM:SS` format |

**Brokerage Clients**

| Tag | Field | When Present | Notes |
| --- | --- | --- | --- |
| `5047` | AllocBrokerAccountID | Brokerage clients | IdentityAccountId |
| `50` | SenderSubID | Brokerage clients | IdentityId |
| `5074` | FundCommissionOption | Brokerage clients | |
| `5000` | RecipientProfileId | Brokerage clients | ProfileID that receives settled currency |

**Optional**

| Tag | Field | When Present | Notes |
| --- | --- | --- | --- |
| `2362` | SelfMatchPreventionID | If enabled | Prevents self-matching. Up to 36 characters. Requires additional permissions. |

</Tab>
</Tabs>

> See also: [Order Cancel Request](/guides/crypto-brokerage/fix/reference/order-cancel#order-cancel-request) and [Order Cancel Reject](/guides/crypto-brokerage/fix/reference/order-cancel#order-cancel-reject).
Loading
Loading