Creating an Asset
Assets are created at the organization level and automatically linked to the specified program. They can be shared across programs.
Inventory Mode
Choose
SIMPLE only when the balance can be treated as one pool. It cannot later answer which program, campaign, partner, or credit issued the value that was redeemed.
Choose LOT when individual units of value carry meaning. For example, an airline program where points expire 18 months after they’re earned should use LOT; each credit creates a lot with its own expires_at, and expired lots are automatically excluded when the participant spends.
A fixed budget alone does not require LOT: either mode works with PREFUNDED issuance.
See Lots & Expiration for more on how lots work.
Issuance Policy
Most programs start with
UNLIMITED. Use PREFUNDED when you have a hard cap, like a “$50,000 Summer Promo” where the program wallet is funded once and credits stop when it’s empty. See Programs for how to fund and burn.
Scale
The number of decimal places for all amounts on this asset. Any value from0 to 18.
How extra decimal places are handled depends on where the amount comes from. Amounts computed by rules (CEL expressions in
CREDIT, DEBIT, and other actions) are rounded half-up to fit the scale: crediting "1.009" on an asset with scale: 2 records "1.01". Use the round() function in CEL expressions when you need explicit control over precision. Amounts you pass directly to the balance endpoints (adjust, hold, release, forfeit) are not rounded: a value with more decimal places than the scale is rejected with a 400 (invalid_scale). See Balance Operations.
Working in cents: If your issuer-processor sends amounts in minor units (smallest currency denomination, e.g., 200 = $2.00), use
scale: 0 and treat the asset as cents. Your application handles the display conversion. Alternatively, use scale: 2 and pass dollar amounts directly.Examples
The table below shows common asset configurations.Asset Sharing
Assets can be linked to multiple programs. This lets participants earn the same asset across different campaigns.PREFUNDED assets, each program maintains its own wallet balance independently. Funding one program doesn’t affect another.
If a shared asset needs issuer attribution for cross-program settlement, create it as LOT. SIMPLE shared balances can still report total redemptions by channel, but they cannot reconstruct which program originally issued the redeemed value.
For example, a member earns 100 points through Program A and 50 points through Program B, then redeems 120 points through Program B. With LOT, redemption attribution can report 100 points issued by Program A and 20 issued by Program B, all redeemed through Program B. With SIMPLE, the report can show 120 points redeemed through Program B, but the original issuer split is no longer available.
Updating Assets
You can updatename and max_transaction_amount, and set status to ARCHIVED to permanently retire the asset. symbol, inventory_mode, issuance_policy, and scale are locked after creation.
max_transaction_amount to null to remove the ceiling.