---
title: 'Create a loyalty currency'
description: 'Create a loyalty currency'
openapi: POST /api/loyalty/currencies
---

> **For AI agents:** the complete documentation index is at [llms.txt](https://docs.snagsolutions.io/llms.txt). Append `.md` to any page URL for its markdown version.

`POST /api/loyalty/currencies`

`POST https://admin.snagsolutions.io/api/loyalty/currencies`

Create a loyalty currency

## Authentication

- `apiKeyAuth` — apiKey in header: `X-API-KEY`

## Request body

- Content type: `application/json`
  - request body (object) — Schema for creating a new loyalty currency
    - `organizationId` (string, uuid, required) — Unique identifier for the organization
    - `websiteId` (string, uuid, required) — Unique identifier for the website
    - `imageUrl` (string) — URL of the image; must start with AWS S3 asset URL base
    - `name` (string, required) — Name of the loyalty currency
    - `symbol` (string, required) — Symbol representing the loyalty currency
    - `decimals` (number, required) — Number of decimal places for the currency
    - `apiGetUrl` (string) — Optional API GET URL for fetching data
    - `apiGetTransactionEntryUrl` (string) — Optional API GET URL for fetching transaction entry data
    - `apiPostUrl` (string) — Optional API POST URL for sending data
    - `sortId` (number) — Optional sorting identifier
    - `apiAuthType` (string, one of: none, basic, bearer, apiKey) — Type of authentication used for API
    - `apiAuthKey` (string) — Authentication key for API
    - `apiAuthValue` (string) — Authentication value for API

## Response 200

200
  - response (object) — Schema for a loyalty currency
    - `id` (string, uuid, required) — Unique identifier for the loyalty currency
    - `organizationId` (string, uuid, required) — Unique identifier for the organization
    - `websiteId` (string, uuid, required) — Unique identifier for the website
    - `imageUrl` (string, required) — URL of the image
    - `name` (string, required) — Name of the loyalty currency
    - `symbol` (string, required) — Symbol representing the loyalty currency
    - `decimals` (number, required) — Number of decimal places for the currency
    - `createdById` (string, uuid, required) — ID of the user who created the currency
    - `createdAt` (string, date-time, required) — Timestamp when the currency was created
    - `updatedAt` (string, date-time, required) — Timestamp when the currency was last updated
    - `apiGetUrl` (string, required) — API GET URL for fetching data
    - `apiGetTransactionEntryUrl` (string, required) — API GET URL for fetching transaction entry data
    - `apiPostUrl` (string, required) — API POST URL for sending data
    - `apiAuthType` (string, required, one of: none, basic, bearer, apiKey) — Type of authentication used for API
    - `apiAuthKey` (string, required) — Authentication key for API
    - `apiAuthValue` (string, required) — Authentication value for API
    - `sortId` (number, required) — Sorting identifier
    - `deletedAt` (string, date-time, required) — Timestamp when the currency was deleted, if applicable
    - `isTokenRewardCurrency` (boolean) — True for LoyaltyCurrency rows auto-created by resolveTokenReward (Option 1 hidden currency backing a token-reward rule). Excluded from list responses by default; opt in via excludeTokenRewardCurrencies=false on the list endpoint.

## Response 400

400
  - response (object)
    - `error` (string, required)

## Response 403

403
  - response (object)
    - `error` (string, required)

## Response 500

500
  - response (object) — Schema for internal server error response
    - `success` (boolean, required) — Indicates operation success
    - `message` (string, required) — Error message
    - `debugInfo` (string) — Optional debug information


---

📦 **OpenAPI specs:** Every OpenAPI specification referenced by this documentation is available as a single download — https://docs.snagsolutions.io/api-specs.zip
