For the complete documentation index, see llms.txt. This page is also available as Markdown.

Execute FX

Convert one tokenized fiat balance into another inside the user's UR account. Requires a Live UR account; FX counts against the user's rolling 30-day CHF-denominated fiat limit. The response returns only a txHash; the transaction webhook with data.type FRX reports final settlement.

post
/api/fma/v1/fx-exchange
Authorizations
X-Api-SignaturestringRequired

Partner Auth: EIP-191 signature by the partner's registered backend key, with X-Api-Deadline and optional X-Api-PublicKey headers. See the Signature and verify guide.

Header parameters
X-Api-SignaturestringRequired

0x-prefixed 65-byte hex EIP-191 signature over the Partner Auth message. See the Signature and verify guide.

X-Api-DeadlinestringRequired

Unix seconds. UR rejects the request when the current time is past the deadline. Keep the validity window at or under 5 minutes.

X-Api-PublicKeystringRequired

0x-prefixed partner signer address registered with UR.

X-Ur-IdstringOptional

Send at least one of X-Ur-Id or X-External-User-Id. When both are present, UR resolves the user by X-Ur-Id first.

X-External-User-IdstringOptional

Send at least one of X-Ur-Id or X-External-User-Id. When both are present, UR resolves the user by X-Ur-Id first.

Body
reqIdstringRequired

Partner-supplied idempotency key. Keep it stable across retries of the same logical operation.

fromCurrencystringRequired

Input fiat currency symbol.

toCurrencystringRequired

Output fiat currency symbol.

amountstringRequired

Amount to convert, as a human-readable decimal string.

amountOutMinimumstringOptional

Slippage protection lower bound. If omitted, UR applies a default 0.5% slippage buffer based on the submitted amount.

Responses
200

Standard envelope. Business errors return HTTP 200 with a non-zero code.

application/json

Standard UR OpenAPI response envelope. code 0 means success; a non-zero code is a business error described by message.

codeintegerRequired

0 on success; non-zero business error code.

messagestringRequired

Human-readable explanation. May be empty on success.

post/api/fma/v1/fx-exchange
POST /api/fma/v1/fx-exchange HTTP/1.1
Host: openapi.ur.app
X-Api-Signature: text
X-Api-Deadline: text
X-Api-PublicKey: text
Content-Type: application/json
Accept: */*
Content-Length: 109

{
  "reqId": "fx-20260423-0001",
  "fromCurrency": "EUR",
  "toCurrency": "CHF",
  "amount": "50",
  "amountOutMinimum": "49.75"
}
200

Standard envelope. Business errors return HTTP 200 with a non-zero code.

{
  "code": 0,
  "message": "",
  "data": {
    "txHash": "0xabc123def456..."
  }
}

Last updated