Transactions
Create quote
Create a quote for a transaction.
POST
Origin and destination
Theorigin and destination objects identify the source and destination of funds respectively for the transaction.
Read more about the Anatomy of a quote request to understand the different types of nodes you can use as origin and destination. Refer to the API spec below to see how each node type is expressed in the request.
Denomination
Thedenomination object defines what is being moved, how much, and which side of the trade the amount applies to precisely.
asset: The currency or asset in whichamountis expressed — for example,GBP,USD, orBTC. Does not need to match the asset of either account; Uphold will convert as needed.amount: The amount to transfer, expressed as a decimal string (e.g."100.00").target: Controls which side of the trade receives the exactamount:origin— Debits exactlyamountfrom the origin. Fees are deducted before the destination receives funds.destination— Credits exactlyamountto the destination. Fees are added on top of what is debited from the origin.
Example: How target affects fee handling
Consider a trade of 500 GBP to BTC with a 2% fee:| Target | Debited from origin | Credited to destination |
|---|---|---|
origin | Exactly 500 GBP | BTC equivalent of 490 GBP (after 10 GBP fee) |
destination | 510 GBP (500 + 10 GBP fee) | BTC equivalent of exactly 500 GBP |
origin when you want to control exactly how much leaves the sender. Use destination when you want to control exactly how much arrives for the recipient.
For a more comprehensive explanation of the denomination concept, see the Core Concepts page.
TTL
There are cases in which the default TTL may not be sufficient, such as when you are performing deposits or withdrawals through your own rails (e.g.: your own card processor). In such cases, you want a quote to remain valid for long enough to allow the user to complete the transaction on your side before it expires on our side. Thettl field allows you to extend the validity of the quote to accommodate those cases. When omitted, the platform applies a default TTL based on the transaction type.
This feature must be enabled for your organization. Contact your Account Manager to request access and agree on the maximum allowed TTL.
expiresAt field in the response indicates the exact time when the quote will expire, which takes into account the default TTL or the custom ttl provided in the request. Use this field to drive quote refresh logic in your UI — schedule the next refresh slightly before this time (e.g. a few seconds earlier) to account for network and infrastructure latency, ensuring the user always sees a valid quote.Authorizations
OAuth 2.0 authentication.
Body
application/json
Response
Quote created.