Skip to main content

Overview

The Assets API is the catalog for assets available through Payward Services. Use it before a payment or trading flow to decide which assets to show, how much precision to accept, and whether deposits, withdrawals, or swaps are currently enabled. The same responses also include display metadata and market data. Use this data to build asset pickers, payment setup screens, and price history views.

Prerequisites

Asset discovery workflow

Use this flow when you build a screen that lets a user choose an asset, review its details, and continue into a deposit, withdrawal, or trade.
1

List available assets

Filter the catalog to assets enabled for the action you want to offer.List assets (GET /v1/assets)
2

Inspect the selected asset

Fetch the asset again when the user selects it. Check current status, precision, logo, and quote-denominated market data.Get asset (GET /v1/assets/{asset_type}/{asset_symbol})
3

Show price history

Fetch OHLCV candles when you need a chart, recent trend, or change-over-time display. Use close to plot a time-series price chart.List asset rates (GET /v1/assets/{asset_type}/{asset_symbol}/rates)
4

Continue to the user action

Use the selected symbol with the deposits, withdrawals, or trade endpoints.See Deposits and withdrawals.
Asset prices and rates are useful for display and discovery. Do not use them as executable trade quotes. Use the Swap API when you need a locked trading price.

Step 1: list available assets

Call List assets (GET /v1/assets) to build the asset list for your UI. Filter by asset type and capability so users only see assets that support the action they are trying to complete. Pass country, an ISO 3166-1 alpha-2 code such as US, to apply that country’s geo restrictions. All three public endpoints require it.
Use these fields from each asset: price is the latest traded price. It can differ from a candle close in List asset rates, because the two are fetched at different times. price_range includes the highest and lowest traded price over the last 24 hours (high_24h, low_24h) and the last year (high_1y, low_1y). Each bound is omitted when unavailable. The list endpoint is cursor-paginated. If the response includes next_page_token, pass it as page_token to fetch the next page. See List assets for all filters, sort options, and response fields.

Step 2: inspect the selected asset

Call Get asset (GET /v1/assets/{asset_type}/{asset_symbol}) when the user selects an asset. This gives you the same normalized shape as the list response, scoped to one asset.
Before you continue:
  • Check status.deposit.enabled before you create or show deposit addresses.
  • Check status.withdraw.enabled before you list withdrawal methods or let a user save a withdrawal address.
  • Use decimals.funding to format and validate payment amounts.
  • Use quote_symbol and quote_type consistently so your UI does not mix valuations from different quote assets.
See Get asset for the full response schema.

Step 3: show price history

Call List asset rates (GET /v1/assets/{asset_type}/{asset_symbol}/rates) when you need historical candles for a chart or trend display. Set the quote asset, time window, and interval explicitly. Use close to plot a time-series price chart.
Supported intervals include PT1M, PT5M, PT15M, PT30M, PT60M, PT4H, P1D, P7D, and P15D. Continue with next_page_token until it is absent, even if data is empty. History is limited to the most recent 5,760 candles. See List asset rates for all query parameters and pagination behavior.

User-scoped asset views

Each endpoint above has a user-scoped variant under /v1/users/{user_id}/assets. These return the same asset shape, scoped to one user, reflecting that user’s eligibility and any per-account restrictions on deposit, withdrawal, or trading. Use the public endpoints to build a general catalog. Use the user-scoped variants when you already know which user the screen is for and want availability that matches that specific account. Pass the user’s IIBAN as user_id: Query parameters, pagination, and response fields match their public counterparts, except that the user-scoped variants don’t take country. They apply that user’s geo restrictions instead.

API reference