Skip to main content
POST
/
v1
/
exchange
/
stablefx
/
trades
Create a trade
curl --request POST \
  --url https://api.circle.com/v1/exchange/stablefx/trades \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "idempotencyKey": "a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11",
  "quoteId": "c4d1da72-111e-4d52-bdbf-2e74a2d803d5",
  "address": "0x1234567890abcdef1234567890abcdef12345678",
  "message": {
    "permitted": {
      "token": "0x3600000000000000000000000000000000000000",
      "amount": 429000000
    },
    "spender": "0xa8f94168b4981840ba27d423f4ad6332bedee006",
    "nonce": 309585810,
    "deadline": 1770302983,
    "witness": {
      "consideration": {
        "quoteId": "<string>",
        "base": "<string>",
        "quote": "<string>",
        "baseAmount": "<string>",
        "quoteAmount": "<string>",
        "maturity": 1716153600
      },
      "fee": 80000,
      "recipient": "0x1f531ce3c418bbd830d06138a9e5b5eacfdfb3d6"
    }
  },
  "signature": "<string>"
}
'
{
  "id": "c4d1da72-111e-4d52-bdbf-2e74a2d803d5",
  "contractTradeId": "24",
  "status": "pending",
  "rate": 0.915,
  "createDate": "2023-01-01T12:04:05Z",
  "updateDate": "2023-01-01T12:04:05Z",
  "quoteId": "c4d1da72-111e-4d52-bdbf-2e74a2d803d5",
  "settlementTransactionHash": "0xf97c6a87511583d5c7e8e72f8e1fe38bfd24350edda78fddbe67125f3cf0a122",
  "maturity": "2023-01-01T12:04:05Z",
  "tenor": "instant",
  "completeDate": "2023-01-01T12:04:05Z"
}

Authorizations

Authorization
string
header
required

Circle's API Keys are formatted in the following structure "PREFIX:ID:SECRET". All three parts are requred to make a successful request.

Body

application/json

Request body for creating a trade based on a previously generated quote

idempotencyKey
string<uuid>
required

Universally unique identifier (UUID v4) idempotency key. This key is utilized to ensure exactly-once execution of mutating requests. To create a UUIDv4 go to uuidgenerator.net. If the same key is reused, it will be treated as the same request and the original response will be returned.

Example:

"a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11"

quoteId
string<uuid>
required

System-generated unique identifier of the resource.

Example:

"c4d1da72-111e-4d52-bdbf-2e74a2d803d5"

address
string
required

The wallet address signing the trade presign data.

Example:

"0x1234567890abcdef1234567890abcdef12345678"

message
object
required

The Permit2 message derived from the quote response typedData.message.

signature
string
required

The signature generated from signing the trade presign data.

Response

200 - application/json

Trade created successfully

A StableFX trade created from a quote.

id
string<uuid>

System-generated unique identifier of the resource.

Example:

"c4d1da72-111e-4d52-bdbf-2e74a2d803d5"

contractTradeId
string

The ID of the trade on the contract.

Pattern: ^[0-9]+$
Example:

"24"

status
enum<string>
Available options:
pending,
complete,
confirmed,
pending_settlement,
taker_funded,
maker_funded,
refunded,
breaching,
breached
rate
number<double>

Exchange rate for the quote

Example:

0.915

from
object

Currency and amount details for a foreign exchange transaction

to
object

Currency and amount details for a foreign exchange transaction

createDate
string<date-time>

Date and time when the resource was created

Example:

"2023-01-01T12:04:05Z"

updateDate
string<date-time>

Date and time when the resource was last updated

Example:

"2023-01-01T12:04:05Z"

quoteId
string<uuid>

System-generated unique identifier of the resource.

Example:

"c4d1da72-111e-4d52-bdbf-2e74a2d803d5"

settlementTransactionHash
string | null

The hash of the settlement transaction on-chain.

Pattern: ^0x[a-fA-F0-9]{64}$
Example:

"0xf97c6a87511583d5c7e8e72f8e1fe38bfd24350edda78fddbe67125f3cf0a122"

maturity
string<date-time> | null

The date when the trade has matured.

Example:

"2023-01-01T12:04:05Z"

tenor
enum<string>

The settlement schedule for the trade

Available options:
instant,
hourly,
daily
completeDate
string<date-time> | null

The time/date the trade was completed.

Example:

"2023-01-01T12:04:05Z"