POST
/
profiles
/
{profile_id}
/
orders
curl --request POST \
--url https://api.paxos.com/v2/profiles/{profile_id}/orders \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"side": "BUY",
"market": "ETHUSD",
"type": "LIMIT",
"price": "190.23",
"base_amount": "2.35781498",
"metadata": {
"customer_id": "9b8c9cba-801e-4418-adc0-ede709df6339"
}
}'
{
"id": "f190b163-208f-4d73-8deb-4fb8b24add00",
"profile_id": "b7b77d82-e6a7-4ae9-9904-36231aedf985",
"ref_id": "my-order-1",
"status": "SUBMITTED",
"market": "ETHUSD",
"side": "BUY",
"type": "LIMIT",
"price": "190.23",
"base_amount": "2.35781498",
"quote_amount": "",
"metadata": {
"customer_id": "9b8c9cba-801e-4418-adc0-ede709df6339"
},
"amount_filled": "0.00000000",
"volume_weighted_average_price": "0.00000000",
"time_in_force": "GTC"
}
OAuth Scope
exchange:write_order

Authorizations

Authorization
string
header
required

Paxos APIs use OAuth 2 with the client credentials grant flow.

Token URLs:

Learn more in the API credentials guide →

Path Parameters

profile_id
string
required

The profileId the order will be associated with.

Body

application/json
side
enum<string>
required

Trade side.

Available options:
BUY,
SELL
market
enum<string>
required
Available options:
ETHEUR,
ETHSGD,
ETHUSD,
BTCEUR,
BTCSGD,
BTCUSD,
PAXGUSD,
BCHUSD,
LTCUSD,
USDPUSD,
LINKUSD,
MATICUSD,
AAVEUSD,
UNIUSD
type
enum<string>
required

Trade type.

Available options:
LIMIT,
MARKET,
POST_ONLY_LIMIT,
STOP_MARKET,
STOP_LIMIT
ref_id
string

The idempotence ID for order creation. Can be reused if the order has been closed for more than 24 hours.

base_amount
string

The base currency amount for any limit order or the exact amount to sell for a market sell order.

price
string

The quote price.

quote_amount
string

The quote currency amount of purchase for a market buy order.

metadata
object

Metadata to store on the quote and created order. Up to 6 key/value pairs may be stored, with each key and value at most 100 characters.

await_fill_millis
integer

The amount of time to wait for the order to fill, in milliseconds. When await_fill_millis is set to a non-zero value, the Create Order call does not return immediately on order creation. Instead, the call blocks until either:

  1. The order has filled completely
  2. The time await_fill_millis has elapsed The maximum wait timeout is 10 seconds (10000 milliseconds).
Required range: x <= 10000
time_in_force
enum<string>

How long an order will remain active before it expires.

  • Immediate-or-Cancel (IOC): Cancel if not executed immediately, partial fills allowed.
  • Good-Til-Canceled (GTC): Order can be canceled at any point until executed.
  • Good-Til-Time (GTT): Expires if not executed by a specified time. GTT must be greater than 10 seconds after the order is placed, otherwise the order will be rejected.
  • Fill-or-Kill (FOK): Fill entire order only or cancel entire order, does not allow for partial filling.

Time in Force validity for Order Types

Order typeImmediate or Cancel (IOC)Good Til Canceled (GTC)Good Til Time (GTT)Fill or Kill (FOK)
Market OrderDefault---
Limit OrderValidDefaultValidValid
Post Only LimitValidDefaultValidValid
Stop Market-DefaultValid-
Stop Limit-DefaultValid-
Available options:
GTC,
FOK,
IOC,
GTT
expiration_date
string<uint64>

The date the order will expire if not completed when specified time in force is GTT. Format is a unix timestamp in milliseconds (13-digits) UTC (total milliseconds that have elapsed since January 1st, 1970 UTC).

identity_id
string

The end user that requests the trade. This field must be used in conjunction with identity_account_id, otherwise the order is rejected. Depending on your integration type, identity_id and identity_account_id may be required.

identity_account_id
string

The account under which this order is placed. The provided identity must be allowed to trade on behalf of this account. This field must be used in conjunction with identity_id, otherwise the order is rejected. Depending on your integration type, identity_account_id and identity_id may be required.

stop_price
string
recipient_profile_id
string

The profileId that will receive settled currency (base for buy orders, quote for sell orders).

self_match_prevention_id
string

The string field used to prevent matching against an opposite side order submitted by the same Crypto Brokerage customer. If this field is not submitted, an order that matches against another order submitted by the same customer will cancel the original resting order. Up to 36 characters are supported. This field requires additional permissions only available to certain accounts. Reach out to your Paxos Representative for more information.

Response

A successful response.

id
string

The UUID of the order.

profile_id
string

The profile ID the order is associated with.

ref_id
string

The idempotence ID for order creation. Can be reused if the order has been closed for more than 24 hours.

status
enum<string>
Available options:
PENDING_SUBMISSION,
SUBMITTED,
OPEN,
FILLED,
CANCELLED,
REJECTED
side
enum<string>

Trade side.

Available options:
BUY,
SELL
market
enum<string>
Available options:
ETHEUR,
ETHSGD,
ETHUSD,
BTCEUR,
BTCSGD,
BTCUSD,
PAXGUSD,
BCHUSD,
LTCUSD,
USDPUSD,
LINKUSD,
MATICUSD,
AAVEUSD,
UNIUSD
type
enum<string>

Trade type.

Available options:
LIMIT,
MARKET,
POST_ONLY_LIMIT,
STOP_MARKET,
STOP_LIMIT
base_amount
string

The base amount or purchase amount for a market sell order.

price
string

The quote price.

quote_amount
string

The quote amount of purchase for a market buy order.

metadata
object

Client-specified metadata.

created_at
string<date-time>

The time at which the order was created.

modified_at
string<date-time>

The time at which the order was last modified.

amount_filled
string

The amount that was filled.

volume_weighted_average_price
string

The volume-weighted average price.

time_in_force
enum<string>

How long an order will remain active before it expires.

  • Immediate-or-Cancel (IOC): Cancel if not executed immediately, partial fills allowed.
  • Good-Til-Canceled (GTC): Order can be canceled at any point until executed.
  • Good-Til-Time (GTT): Expires if not executed by a specified time. GTT must be greater than 10 seconds after the order is placed, otherwise the order will be rejected.
  • Fill-or-Kill (FOK): Fill entire order only or cancel entire order, does not allow for partial filling.

Time in Force validity for Order Types

Order typeImmediate or Cancel (IOC)Good Til Canceled (GTC)Good Til Time (GTT)Fill or Kill (FOK)
Market OrderDefault---
Limit OrderValidDefaultValidValid
Post Only LimitValidDefaultValidValid
Stop Market-DefaultValid-
Stop Limit-DefaultValid-
Available options:
GTC,
FOK,
IOC,
GTT
expiration_date
string<date-time>

The date the order will expire if not completed when specified time in force is GTT.

identity_id
string

The end user that requests the trade. This field must be used in conjunction with identity_account_id, otherwise the order is rejected. Depending on your integration type, identity_id and identity_account_id may be required.

identity_account_id
string

The account under which this order is placed. The provided identity must be allowed to trade on behalf of this account. This field must be used in conjunction with identity_id, otherwise the order is rejected. Depending on your integration type, identity_account_id and identity_id may be required.

stop_price
string
recipient_profile_id
string

The profileId that will receive settled currency (base for buy orders, quote for sell orders).

is_triggered
boolean

Returns true when a stop order has been triggered.