Skip to main content
POST
Create virtual asset

Authorizations

Authorization
string
header
required

API key as Bearer token

Headers

Reap-Version
enum<string>
required

API version (YYYY-MM-DD)

Available options:
2025-02-14
Example:

"2025-02-14"

Body

symbol
string
required

Unique symbol within the project (e.g., USDC, BTC, GOLD, POINTS). Uppercase alphanumeric and underscores only.

Pattern: ^[A-Z0-9_]{1,10}$
name
string
required

Display name for the virtual asset

Required string length: 1 - 50
decimals
integer
required

Number of decimal places for amounts

Required range: 0 <= x <= 18
rateSource
enum<string>
required

How the exchange rate (in the project billing currency) is determined for this virtual asset.

Available options:
FIXED,
HTTP
Example:

"FIXED"

rate
number

Initial rate for 1 unit of this virtual asset, in the project billing currency. Required when rateSource is FIXED. Ignored for HTTP. The rate prices the asset wherever it is valued: a balance of n units counts as n × rate toward available balance, and a SETTLEMENT posting of n units clears n × rate of card debt. Use 1 for a unit pegged to the billing currency (cashback, a credit line), 0.01 for points worth one cent each, or a market price such as 3487.42 for a unit tracking ETH.

Examples:

1

0.01

3487.42

httpEndpoint
string<uri>

URL of the rate endpoint. Required when rateSource is HTTP. Must be HTTPS and resolve to a public address (no private IPs). The endpoint must respond to GET requests with JSON: { "rate": <number> } where rate is the value of 1 unit of this virtual asset in the project billing currency, for example { "rate": 3487.42 } for a unit tracking ETH in a USD-billed program. Rates are fetched periodically by the platform.

Response

Virtual asset definition

id
string<uuid>
required

Unique virtual asset identifier

symbol
string
required

Virtual asset symbol

name
string
required

Display name

decimals
integer
required

Number of decimal places for amounts

Required range: -9007199254740991 <= x <= 9007199254740991
status
enum<string>
required

Lifecycle status. Disabled assets are excluded from balance computation.

Available options:
ACTIVE,
DISABLED
Example:

"ACTIVE"

rateSource
enum<string>
required

How the exchange rate (in the project billing currency) is determined for this virtual asset.

Available options:
FIXED,
HTTP
Example:

"FIXED"

httpEndpoint
string | null
required

Rate endpoint URL. Present only for HTTP rate source.

currentRate
number | null
required

Latest known rate per unit, in the project billing currency. This is the rate a SETTLEMENT posting made now would be priced at. Null if no rate snapshot exists yet.

Required range: x > 0
Example:

1

currentRateUpdatedAt
string | null
required

ISO 8601 timestamp of the latest rate snapshot. Null when currentRate is null.

allocated
object
required

Total amount of this virtual asset allocated across all accounts in the project.

createdAt
string
required

ISO 8601 creation timestamp

updatedAt
string
required

ISO 8601 last update timestamp