FX

List exchanges

GET/fx/exchanges

All your exchanges, newest first, whether made through the API or in the portal. A portal exchange has no merchantReference, and one waiting for approval in the portal reads pending. Requires fx:read.

Authentication
ApiKeyAuth
Execution
synchronous

Parameters

  • limitintegerquery

    Default: 20

    ≥ 1 · ≤ 100

  • cursorstringquery
    Opaque cursor from a previous page's nextCursor.

    max length 512

  • createdAfterstring (date-time)query
    Inclusive lower bound on createdAt.
  • createdBeforestring (date-time)query
    Exclusive upper bound on createdAt.
  • statusstringquery

    Allowed values: pendingprocessingcompletedfailedcancelled

  • merchantReferencestringquery
    Exact match on your merchant reference. Returns at most one item.

    max length 100

Responses

A page of exchanges.

Headers

  • X-Request-Idstring
    The client's X-Request-Id if supplied, otherwise a server-generated id. Equals traceId in problems.
  • RateLimit-Limitinteger
  • RateLimit-Remaininginteger
  • RateLimit-Resetinteger
    Seconds until the window resets.

Schema application/json

  • objectstringrequired

    Allowed values: list

  • dataarray<FxExchange>
    • objectstringrequired

      Allowed values: fx_exchange

    • idstringrequired
      An exchange's id. Opaque — use it as you received it.

      Example: fx_019985c24a6e7c3b9f102d5e8a1b3c4d

      pattern ^fx_[0-9a-f]{32}$

    • merchantReferencestring
      Absent on an exchange made in the portal.
    • statusstringrequired

      Allowed values: pendingprocessingcompletedfailedcancelled

    • sellMoneyrequired
      Decimal amount as a string — never a float, never minor units. An amount you send may carry no more decimal places than its currency has (and never more than 8); trailing zeros do not count, so 10.100 EUR is fine and 10.123 EUR is 400 validation_failed on amount.value.
    • buyobject
      The quoted amount until a venue exchange settles; then what it filled.
    • ratestring
      The rate applied, as a string.
    • feeobject
      Absent while it is not known — as on a portal exchange that has not executed yet, and on some older portal exchanges.
    • totalDebitedobject
      Present with fee.
    • sellAccountIdstringrequired
      Opaque account identifier. Treat as a string; never parse or construct it.

      Example: acc_AAAAAAAAAAc

      pattern ^acc_[A-Za-z0-9_-]{11}$

    • buyAccountIdstring
      Opaque account identifier. Treat as a string; never parse or construct it.

      Example: acc_AAAAAAAAAAc

      pattern ^acc_[A-Za-z0-9_-]{11}$

    • createdAtstring (date-time)required
      RFC 3339, UTC, with millisecond precision.

      Example: 2026-09-18T10:15:30.123Z

    • updatedAtstring (date-time)required
      RFC 3339, UTC, with millisecond precision.

      Example: 2026-09-18T10:15:30.123Z

    • completedAtstring (date-time)
      RFC 3339, UTC, with millisecond precision.

      Example: 2026-09-18T10:15:30.123Z

  • hasMorebooleanrequired
  • nextCursorstringnullable
    Pass as cursor to fetch the next page. null when hasMore is false.