Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.privataswap.com/llms.txt

Use this file to discover all available pages before exploring further.

Why this exists

Wallets with an existing ChangeNOW integration (Trust, Exodus, Coinomi and their forks) can switch to Privata by changing two values:
- baseURL: "https://api.changenow.io/v2"
- apiKey:  "changenow-api-key"
+ baseURL: "https://api.privataswap.com/v2/exchange"
+ apiKey:  "pk_live_..."  // sent as x-changenow-api-key (we accept both names)
No other code changes required for the read flow + order create + order status.

Endpoints supported

MethodPath
GET/v2/exchange/currencies?active=true&flow=standard
GET/v2/exchange/min-amount?fromCurrency=&toCurrency=&fromNetwork=&toNetwork=
GET/v2/exchange/estimated-amount?fromCurrency=&toCurrency=&fromAmount=
POST/v2/exchange (create order)
GET/v2/exchange/by-id?id=

Field mapping

We accept ChangeNOW’s camelCase wire format on this layer (not the native snake_case used in /partner/v1).
ChangeNOW fieldOur internal mapping
fromCurrency / toCurrencyfrom / to
fromNetwork / toNetworkfrom_network / to_network
fromAmount / toAmountamount_from / amount_to_expected
payinAddressdeposit_address
payoutAddresspayout_address
refundAddressrefund_address

Status normalization

The legacy ChangeNOW status finished is automatically returned as finished on this layer (not completed) to preserve drop-in compatibility. Internally we always store completed. New integrations should use the native /partner/v1 surface and follow our status enum.

What’s not on this layer

These features are exposed only via native /partner/v1:
  • refund_preference / /refund-action
  • SSE /order/{id}/stream
  • Ops events webhook
  • Tier-aware error codes (DUPLICATE_ACTIVE_ORDER, REFUND_WINDOW_EXPIRED, etc.)
If your wallet needs any of these, migrate the integration to native v1 — the JS SDK does it for you.

Authentication header

We accept either header on /v2/exchange/*:
x-changenow-api-key: pk_live_...
or:
X-API-Key: pk_live_...
Both work; pick whichever is easier to set in your existing client.