Submit firm quote
REQUEST wss://connection.bitvavo.com:8004/rfq/v1 firmQuote
Submits a firm quote during the collection window of an active RFQ cycle. Quotes that arrive after the window closes are rejected with collectionMiss.
Request
- Schema
- Example (body)
Body
Set to firmQuote to submit a firm quote.
Possible values: [firmQuote]
firmQuoteAn identifier that you assign to the request. The server echoes it back in the matching response so you can correlate the two.
9021001The unique identifier of the RFQ session.
840001234567The identifier of the current cycle within the RFQ session. A cycle is one round of quote collection. It begins when the taker starts or refreshes the RFQ session, and ends when the collection window closes.
The value starts at 0 for the first cycle, and increases by 1 each time the taker refreshes the RFQ.
2A unique identifier (UUID) that you assign to the quote. Used for tracing only.
5d8f2ab0-09d0-4f11-8b4a-3f8ea4c4a5cbThe price per unit of the base asset in the quote currency, with your spread included.
41280.55The numeric identifier of the operator.
12345{
"action": "firmQuote",
"requestId": 9021004,
"rfqId": 840001234567,
"rfqCycleId": 2,
"clientQuoteId": "5d8f2ab0-09d0-4f11-8b4a-3f8ea4c4a5cb",
"price": "41280.55",
"operatorId": 12345
}
Response
- quoteAck
- quoteNack
- rfqTrade
- Schema
- Example (body)
Schema
The quote entered the competition, and you are now a participant in the RFQ session.
Possible values: [quoteAck]
quoteAckThe unique identifier of the RFQ session.
840001234567The identifier of the current cycle within the RFQ session. A cycle is one round of quote collection. It begins when the taker starts or refreshes the RFQ session, and ends when the collection window closes.
The value starts at 0 for the first cycle, and increases by 1 each time the taker refreshes the RFQ.
2A unique identifier (UUID) that you assign to the quote. Used for tracing only.
5d8f2ab0-09d0-4f11-8b4a-3f8ea4c4a5cbThe internal identifier of the quote, assigned by Bitvavo. Used for tracing and reporting.
90011223344A Unix timestamp in milliseconds.
1739462400123The numeric identifier of the operator.
12345An identifier that you assign to the request. The server echoes it back in the matching response so you can correlate the two.
9021001{
"event": "quoteAck",
"rfqId": 840001234567,
"rfqCycleId": 2,
"clientQuoteId": "5d8f2ab0-09d0-4f11-8b4a-3f8ea4c4a5cb",
"quoteId": 90011223344,
"timestamp": 1739462400255
}
- Schema
- Example (body)
Schema
unknownRfq— therfqIdorrfqCycleIddoes not match an active RFQ session or cycle.invalidPrice— the value ofpriceis malformed or outside the acceptable limits.invalidQuoteAmount— the amount in the quote currency, derived frompriceandamount, is malformed or outside the acceptable limits.insufficientFunds— you do not have enough balance to back the quote.collectionMiss— the quote arrived after the collection window closed.quoteTooWide— the price of the quote is beyond the maximum spread allowed from the reference price.
The quote was rejected. The response includes a reason.
Possible values: [quoteNack]
quoteNackThe unique identifier of the RFQ session.
840001234567The identifier of the current cycle within the RFQ session. A cycle is one round of quote collection. It begins when the taker starts or refreshes the RFQ session, and ends when the collection window closes.
The value starts at 0 for the first cycle, and increases by 1 each time the taker refreshes the RFQ.
2A unique identifier (UUID) that you assign to the quote. Used for tracing only.
5d8f2ab0-09d0-4f11-8b4a-3f8ea4c4a5cbThe reason for the rejection. Possible values:
Possible values: [unknownRfq, invalidPrice, invalidQuoteAmount, insufficientFunds, collectionMiss, quoteTooWide]
invalidPriceA Unix timestamp in milliseconds.
1739462400123The numeric identifier of the operator.
12345An identifier that you assign to the request. The server echoes it back in the matching response so you can correlate the two.
9021001{
"event": "quoteNack",
"rfqId": 840001234567,
"rfqCycleId": 2,
"clientQuoteId": "5d8f2ab0-09d0-4f11-8b4a-3f8ea4c4a5cb",
"reason": "invalidPrice",
"timestamp": 1739462400255
}
- Schema
- Example (body)
Schema
priceGuarantee— the standard Price Guarantee RFQ for spot markets.priceGuaranteeUK— the Price Guarantee RFQ variant for United Kingdom customers.priceGuaranteeConvert— the Price Guarantee RFQ variant used for asset-to-asset conversions (the Convert product).BUY— the taker buys the base asset.SELL— the taker sells the base asset.
Your quote won — it had the best price and earliest arrival time, and the taker accepted it. You are the winning maker.
Possible values: [rfqTrade]
rfqTradeThe unique identifier of the RFQ session.
840001234567The identifier of the current cycle within the RFQ session. A cycle is one round of quote collection. It begins when the taker starts or refreshes the RFQ session, and ends when the collection window closes.
The value starts at 0 for the first cycle, and increases by 1 each time the taker refreshes the RFQ.
2The type of the RFQ. Possible values:
Possible values: [priceGuarantee, priceGuaranteeUK, priceGuaranteeConvert]
priceGuaranteeA unique identifier (UUID) that you assign to the quote. Used for tracing only.
5d8f2ab0-09d0-4f11-8b4a-3f8ea4c4a5cbThe internal identifier of the quote, assigned by Bitvavo. Used for tracing and reporting.
90011223344The unique identifier of the resulting trade.
778899001The code of the asset (for example, BTC or EUR).
BTCThe side of the trade from the perspective of the taker. Possible values:
Possible values: [BUY, SELL]
BUYThe price per unit of the base asset in the quote currency, as you quoted it. Used for settlement.
41280.55The settled amount, denominated in the base asset.
0.25000000The numeric identifier of the operator.
12345The maker fee in basis points.
80.0The settled fee amount, denominated in feeCurrency. May be rounded.
8.25611200The settled amount, denominated in the quote asset. May be rounded.
10320.13750000The asset in which the fee is denominated.
EURIndicates whether the trade has been settled. Always true for Price Guarantee RFQ types.
trueA Unix timestamp in milliseconds.
1739462400123{
"event": "rfqTrade",
"rfqId": 840001234567,
"rfqCycleId": 2,
"rfqType": "priceGuarantee",
"clientQuoteId": "5d8f2ab0-09d0-4f11-8b4a-3f8ea4c4a5cb",
"quoteId": 90011223344,
"tradeId": 778899001,
"base": "BTC",
"quote": "EUR",
"takerSide": "BUY",
"price": "41280.55",
"quantity": "0.25000000",
"operatorId": 12345,
"makerFeeBps": "80.0",
"feeQuantity": "8.25611200",
"quoteQuantity": "10320.13750000",
"feeCurrency": "EUR",
"settled": true,
"timestamp": 1739462405520
}