Skip to main content
POST
/
api
/
v1
/
auth
/
offers
curl --request POST \
  --url https://crypto.westminister.tech/api/v1/auth/offers \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "vendor_id": "5c81c005-1c52-4e0d-85e2-862ee1cdd4d0",
  "offer_type": "SELL",
  "asset": "USDT",
  "usdt_amount": "7999.99",
  "available_amount": "8000.00",
  "rate": "141.00",
  "min_order": "10",
  "max_order": "1500.00",
  "status": "active",
  "description": "Ethereum On-Ramp Offer - Instant USDT/USDC Delivery"
}
'
{
  "id": "7c9a9311-7e7d-4739-9abc-34f7db00ff19",
  "vendor_id": "5c81c005-1c52-4e0d-85e2-862ee1cdd4d0",
  "offer_type": "SELL",
  "asset": "USDT",
  "crypto_amount": "7999.99000000",
  "available_amount": "8000.00000000",
  "rate": "141.00",
  "min_order": "10.00000000",
  "max_order": "1500.00000000",
  "status": "active",
  "description": {
    "String": "Ethereum On-Ramp Offer - Instant USDT/USDC Delivery",
    "Valid": true
  },
  "created_at": "2025-12-12T10:30:00.000000Z",
  "updated_at": "2025-12-12T10:30:00.000000Z"
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
vendor_id
string<uuid>
required
offer_type
enum<string>
required

SELL = Merchant sells USDT (on-ramp), BUY = Merchant buys USDT (off-ramp)

Available options:
SELL,
BUY
asset
string
required
usdt_amount
string
required

Total offer amount for selected asset (USDT or USDC).

available_amount
string
required
min_order
string
required
max_order
string
required
rate
string

KES per USDT. Required for SELL. For BUY, omit to use the linked FX quote applied_rate, or set to override.

status
string

Optional: defaults to 'active' if omitted

description
string
pricing_profile_id
string<uuid>

Required for BUY. Omit for SELL.

fx_rate_quote_id
string<uuid>

Required for BUY. Omit for SELL.

default_fee_bearer
enum<string>

Required for BUY. Default for orders from this offer. Omit for SELL.

Available options:
sender,
receiver

Response

201 - application/json

Offer Created

id
string<uuid>

Offer ID.

vendor_id
string<uuid>

Vendor ID.

offer_type
enum<string>

Offer type.

Available options:
SELL,
BUY
asset
string

Asset symbol (e.g.

crypto_amount
string

Offer amount in selected asset (USDT/USDC).

available_amount
string

Available offer amount in selected asset. Must be <= crypto_amount and <= owner's default wallet asset balance.

rate
string

Exchange rate (KES per USDT).

min_order
string

Minimum order size.

max_order
string

Maximum order size.

status
string

Offer status.

pricing_profile_id
string<uuid> | null

Set for BUY (off-ramp) offers.

fx_rate_quote_id
string<uuid> | null

Set for BUY (off-ramp) offers.

default_fee_bearer
enum<string> | null

Default fee bearer for orders against this offer.

Available options:
sender,
receiver
description
object
created_at
string<date-time>
updated_at
string<date-time>
deleted_at
object

Database-style nullable time wrapper