Lock a GTQ-per-USDC price, accept it, and read the merged quote state.
Create quote (op 1)
Ask Nexa to quote GTQ against USDC (§6.1). Nexa computes every derived amount, notably usdc_amount, rounded UP at 6dp so delivering exactly it always covers quoted_gtq. Idempotent on tesser_quote_id: a retry returns the quote's current state, a conflicting body returns 409.
Create quote (op 1) › Request Body
tesser_quote_idUUIDv4 minted by Tesser before the call; doubles as the idempotency key.
customerClosed enum at launch. Cross-checks the customer context carried by the API key.
desired_gtq^[0-9]+(\.[0-9]+)?$ · requiredGTQ the customer wants to end up with. Max 2 decimal places.
Create quote (op 1) › Responses
Quote created, or, on an idempotent retry, the current state of the existing quote.
tesser_quote_idnexa_quote_idNexa's own reference, for support and reconciliation.
quote_statususdc_gtq_price^[0-9]+(\.[0-9]+)?$ · requiredGTQ per 1 USDC. Max 6 decimal places.
quoted_gtq^[0-9]+(\.[0-9]+)?$ · requiredGTQ Nexa will deliver. May be less than desired_gtq, which is a partial fill, and the remainder is a new quote.
usdc_amount^[0-9]+(\.[0-9]+)?$ · requiredUSDC Tesser must deliver = quoted_gtq / usdc_gtq_price, rounded UP at 6dp. Nexa is the single calculator; Tesser echoes this value and never re-derives it.
expires_atAcceptance deadline. Unaccepted quotes expire silently; there is no expiry webhook.
created_atAccept quote (op 2)
Accept the quote identified by the path (§6.2). The body is an empty object: acceptance is of quoted_gtq by definition. Idempotent: re-accepting an already-accepted (or later-state) quote returns 200 with the current object.
path Parameters
tesser_quote_idThe UUIDv4 Tesser minted for this quote.
Accept quote (op 2) › Responses
Quote accepted (or already accepted).
tesser_quote_idquote_statusdeposit_deadlineHow long Nexa holds the locked rate waiting for the first deposit report. Past it with no deposit reported, the quote is EXPIRED (window length: §11 Q2).
accepted_atGet quote (optional op 8)
Read the merged quote state (§6.5). Optional op 8: Nexa may defer it without breaking the core flow, with the honest caveat that deferral degrades the missed-webhook recovery path from a one-curl check to ops channels. Webhooks are the push channel, but the first cross-company debugging question is always 'what state do you think it's in?'. After rejection this returns quote_status: "REJECTED".
path Parameters
tesser_quote_idThe UUIDv4 Tesser minted for this quote.
Get quote (optional op 8) › Responses
The merged quote object.
tesser_quote_idnexa_quote_idNexa's own reference, for support and reconciliation.
quote_statususdc_gtq_price^[0-9]+(\.[0-9]+)?$ · requiredGTQ per 1 USDC. Max 6 decimal places.
quoted_gtq^[0-9]+(\.[0-9]+)?$ · requiredGTQ Nexa will deliver. May be less than desired_gtq, which is a partial fill, and the remainder is a new quote.
usdc_amount^[0-9]+(\.[0-9]+)?$ · requiredUSDC Tesser must deliver = quoted_gtq / usdc_gtq_price, rounded UP at 6dp. Nexa is the single calculator; Tesser echoes this value and never re-derives it.
expires_atAcceptance deadline. Unaccepted quotes expire silently; there is no expiry webhook.
created_atAll reports on this quote, including late ones.
deposit_deadlineaccepted_atusdc_total_reported^[0-9]+(\.[0-9]+)?$credited_gtq^[0-9]+(\.[0-9]+)?$Authoritative credited amount; present once Nexa has decided to credit. May deviate from quoted_gtq.
credited_atThe payment sub-object embedded in the quote GET, when one exists.