Skip to content

Currencies ​

Part of the Support API. Base URL https://your-domain.com/admin/api/v1 — replace the host with your own installation and the token placeholder with a real Bearer token (see Authentication).

List currencies ​

GET /admin/api/v1/support/currencies

Retrieve a paginated list of currencies with filtering and sorting

🔒 Requires a valid Bearer token.

Query parameters

ParameterTypeRequiredDescriptionExample
includestringNoComma-separated list of relationships to include. Available options: ratesrates
filter[id]stringNoComma-separated list of IDs to filter by
filter[name]stringNoFilter by currency name (partial match)
filter[symbol]stringNoFilter by currency symbol (partial match)
filter[active]booleanNoFilter by active status
sortstringYesSort fieldname
pageintegerYesPage number1
bash
curl -X GET "https://your-domain.com/admin/api/v1/support/currencies?include=rates&sort=name&page=1" \
  -H "Authorization: Bearer {YOUR_AUTH_TOKEN}" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json"
javascript
const response = await fetch("https://your-domain.com/admin/api/v1/support/currencies?include=rates&sort=name&page=1", {
  method: "GET",
  headers: {
    "Authorization": "Bearer {YOUR_AUTH_TOKEN}",
    "Accept": "application/json",
    "Content-Type": "application/json",
  },
});

const data = await response.json();
console.log(data);
php
<?php

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://your-domain.com/admin/api/v1/support/currencies?include=rates&sort=name&page=1', [
    'headers' => [
        'Authorization' => 'Bearer {YOUR_AUTH_TOKEN}',
        'Accept' => 'application/json',
        'Content-Type' => 'application/json',
    ],
]);

$data = json_decode($response->getBody(), true);
python
import requests

url = "https://your-domain.com/admin/api/v1/support/currencies?include=rates&sort=name&page=1"

headers = {
    "Authorization": "Bearer {YOUR_AUTH_TOKEN}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}

response = requests.get(url, headers=headers)

data = response.json()
print(data)

Example response 200

json
{
  "data": [
    {
      "id": 1,
      "name": "USD",
      "symbol": "$",
      "iso_numeric": 840,
      "decimal_places": 2,
      "full_name": "United States dollar",
      "rounding": "0.01",
      "active": true,
      "created_at": "2026-10-09T07:12:47.000000Z",
      "updated_at": "2026-10-09T07:12:47.000000Z"
    },
    {
      "id": 1,
      "name": "USD",
      "symbol": "$",
      "iso_numeric": 840,
      "decimal_places": 2,
      "full_name": "United States dollar",
      "rounding": "0.01",
      "active": true,
      "created_at": "2026-10-09T07:12:47.000000Z",
      "updated_at": "2026-10-09T07:12:47.000000Z"
    }
  ],
  "links": {
    "first": "/?page=1",
    "last": "/?page=1",
    "prev": null,
    "next": null
  },
  "meta": {
    "current_page": 1,
    "from": 1,
    "last_page": 1,
    "links": [
      {
        "url": null,
        "label": "&laquo; Previous",
        "page": null,
        "active": false
      },
      {
        "url": "/?page=1",
        "label": "1",
        "page": 1,
        "active": true
      },
      {
        "url": null,
        "label": "Next &raquo;",
        "page": null,
        "active": false
      }
    ],
    "path": "/",
    "per_page": 10,
    "to": 2,
    "total": 2
  }
}
Error response — 401
json
{
  "message": "Unauthenticated."
}

Create currency ​

POST /admin/api/v1/support/currencies

Create a new currency

🔒 Requires a valid Bearer token.

Body parameters

ParameterTypeRequiredDescription
namestringYesCurrency name (max 255 characters). Must not be greater than 255 characters.
symbolstringYesCurrency symbol (max 10 characters). Must not be greater than 10 characters.
iso_numericstringNoISO numeric code (max 3 characters). Must not be greater than 3 characters.
decimal_placesintegerYesNumber of decimal places (0-10). Must be at least 0. Must not be greater than 10.
full_namestringNoFull currency name (max 255 characters). Must not be greater than 255 characters.
roundingnumberNoRounding precision (minimum 0). Must be at least 0.
activebooleanYesWhether the currency is active.
bash
curl -X POST "https://your-domain.com/admin/api/v1/support/currencies" \
  -H "Authorization: Bearer {YOUR_AUTH_TOKEN}" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "USD",
  "symbol": "$",
  "iso_numeric": "840",
  "decimal_places": 2,
  "full_name": "United States Dollar",
  "rounding": 0.01,
  "active": true
}'
javascript
const response = await fetch("https://your-domain.com/admin/api/v1/support/currencies", {
  method: "POST",
  headers: {
    "Authorization": "Bearer {YOUR_AUTH_TOKEN}",
    "Accept": "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
  "name": "USD",
  "symbol": "$",
  "iso_numeric": "840",
  "decimal_places": 2,
  "full_name": "United States Dollar",
  "rounding": 0.01,
  "active": true
}),
});

const data = await response.json();
console.log(data);
php
<?php

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://your-domain.com/admin/api/v1/support/currencies', [
    'headers' => [
        'Authorization' => 'Bearer {YOUR_AUTH_TOKEN}',
        'Accept' => 'application/json',
        'Content-Type' => 'application/json',
    ],
    'json' => [
    'name' => 'USD',
    'symbol' => '$',
    'iso_numeric' => '840',
    'decimal_places' => 2,
    'full_name' => 'United States Dollar',
    'rounding' => 0.01,
    'active' => true,
  ],
]);

$data = json_decode($response->getBody(), true);
python
import requests

url = "https://your-domain.com/admin/api/v1/support/currencies"

headers = {
    "Authorization": "Bearer {YOUR_AUTH_TOKEN}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}

payload = {
    "name": "USD",
    "symbol": "$",
    "iso_numeric": "840",
    "decimal_places": 2,
    "full_name": "United States Dollar",
    "rounding": 0.01,
    "active": True,
}

response = requests.post(url, headers=headers, json=payload)

data = response.json()
print(data)

Example response 201

json
{
  "data": {
    "id": 1,
    "name": "USD",
    "symbol": "$",
    "iso_numeric": 840,
    "decimal_places": 2,
    "full_name": "United States dollar",
    "rounding": "0.01",
    "active": true,
    "created_at": "2026-10-09T07:12:47.000000Z",
    "updated_at": "2026-10-09T07:12:47.000000Z"
  },
  "message": "Currency created successfully."
}
Error response — 401
json
{
  "message": "Unauthenticated."
}

Show currency ​

GET /admin/api/v1/support/currencies/{id}

Retrieve a specific currency by its ID

🔒 Requires a valid Bearer token.

Path parameters

ParameterTypeRequiredDescription
idintegerYesThe currency ID

Query parameters

ParameterTypeRequiredDescriptionExample
includestringNoComma-separated list of relationships to include. Available options: ratesrates
bash
curl -X GET "https://your-domain.com/admin/api/v1/support/currencies/{id}?include=rates" \
  -H "Authorization: Bearer {YOUR_AUTH_TOKEN}" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json"
javascript
const response = await fetch("https://your-domain.com/admin/api/v1/support/currencies/{id}?include=rates", {
  method: "GET",
  headers: {
    "Authorization": "Bearer {YOUR_AUTH_TOKEN}",
    "Accept": "application/json",
    "Content-Type": "application/json",
  },
});

const data = await response.json();
console.log(data);
php
<?php

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://your-domain.com/admin/api/v1/support/currencies/{id}?include=rates', [
    'headers' => [
        'Authorization' => 'Bearer {YOUR_AUTH_TOKEN}',
        'Accept' => 'application/json',
        'Content-Type' => 'application/json',
    ],
]);

$data = json_decode($response->getBody(), true);
python
import requests

url = "https://your-domain.com/admin/api/v1/support/currencies/{id}?include=rates"

headers = {
    "Authorization": "Bearer {YOUR_AUTH_TOKEN}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}

response = requests.get(url, headers=headers)

data = response.json()
print(data)

Example response 200

json
{
  "data": {
    "id": 1,
    "name": "USD",
    "symbol": "$",
    "iso_numeric": 840,
    "decimal_places": 2,
    "full_name": "United States dollar",
    "rounding": "0.01",
    "active": true,
    "created_at": "2026-10-09T07:12:47.000000Z",
    "updated_at": "2026-10-09T07:12:47.000000Z"
  }
}
Error response — 401
json
{
  "message": "Unauthenticated."
}

Update currency ​

PUT /admin/api/v1/support/currencies/{id}

Update an existing currency

🔒 Requires a valid Bearer token.

Path parameters

ParameterTypeRequiredDescription
idintegerYesThe currency ID

Body parameters

ParameterTypeRequiredDescription
namestringNoCurrency name (max 255 characters). Must not be greater than 255 characters.
symbolstringNoCurrency symbol (max 10 characters). Must not be greater than 10 characters.
iso_numericstringNoISO numeric code (max 3 characters). Must not be greater than 3 characters.
decimal_placesintegerNoNumber of decimal places (0-10). Must be at least 0. Must not be greater than 10.
full_namestringNoFull currency name (max 255 characters). Must not be greater than 255 characters.
roundingnumberNoRounding precision (minimum 0). Must be at least 0.
activebooleanNoWhether the currency is active.
bash
curl -X PUT "https://your-domain.com/admin/api/v1/support/currencies/{id}" \
  -H "Authorization: Bearer {YOUR_AUTH_TOKEN}" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "USD",
  "symbol": "$",
  "iso_numeric": "840",
  "decimal_places": 2,
  "full_name": "United States Dollar",
  "rounding": 0.01,
  "active": true
}'
javascript
const response = await fetch("https://your-domain.com/admin/api/v1/support/currencies/{id}", {
  method: "PUT",
  headers: {
    "Authorization": "Bearer {YOUR_AUTH_TOKEN}",
    "Accept": "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
  "name": "USD",
  "symbol": "$",
  "iso_numeric": "840",
  "decimal_places": 2,
  "full_name": "United States Dollar",
  "rounding": 0.01,
  "active": true
}),
});

const data = await response.json();
console.log(data);
php
<?php

$client = new \GuzzleHttp\Client();

$response = $client->request('PUT', 'https://your-domain.com/admin/api/v1/support/currencies/{id}', [
    'headers' => [
        'Authorization' => 'Bearer {YOUR_AUTH_TOKEN}',
        'Accept' => 'application/json',
        'Content-Type' => 'application/json',
    ],
    'json' => [
    'name' => 'USD',
    'symbol' => '$',
    'iso_numeric' => '840',
    'decimal_places' => 2,
    'full_name' => 'United States Dollar',
    'rounding' => 0.01,
    'active' => true,
  ],
]);

$data = json_decode($response->getBody(), true);
python
import requests

url = "https://your-domain.com/admin/api/v1/support/currencies/{id}"

headers = {
    "Authorization": "Bearer {YOUR_AUTH_TOKEN}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}

payload = {
    "name": "USD",
    "symbol": "$",
    "iso_numeric": "840",
    "decimal_places": 2,
    "full_name": "United States Dollar",
    "rounding": 0.01,
    "active": True,
}

response = requests.put(url, headers=headers, json=payload)

data = response.json()
print(data)

Example response 200

json
{
  "data": {
    "id": 1,
    "name": "USD",
    "symbol": "$",
    "iso_numeric": 840,
    "decimal_places": 2,
    "full_name": "United States dollar",
    "rounding": "0.01",
    "active": true,
    "created_at": "2026-10-09T07:12:47.000000Z",
    "updated_at": "2026-10-09T07:12:47.000000Z"
  },
  "message": "Currency updated successfully."
}
Error response — 401
json
{
  "message": "Unauthenticated."
}

Delete currency ​

DELETE /admin/api/v1/support/currencies/{id}

Delete a currency

🔒 Requires a valid Bearer token.

Path parameters

ParameterTypeRequiredDescription
idintegerYesThe currency ID
bash
curl -X DELETE "https://your-domain.com/admin/api/v1/support/currencies/{id}" \
  -H "Authorization: Bearer {YOUR_AUTH_TOKEN}" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json"
javascript
const response = await fetch("https://your-domain.com/admin/api/v1/support/currencies/{id}", {
  method: "DELETE",
  headers: {
    "Authorization": "Bearer {YOUR_AUTH_TOKEN}",
    "Accept": "application/json",
    "Content-Type": "application/json",
  },
});

const data = await response.json();
console.log(data);
php
<?php

$client = new \GuzzleHttp\Client();

$response = $client->request('DELETE', 'https://your-domain.com/admin/api/v1/support/currencies/{id}', [
    'headers' => [
        'Authorization' => 'Bearer {YOUR_AUTH_TOKEN}',
        'Accept' => 'application/json',
        'Content-Type' => 'application/json',
    ],
]);

$data = json_decode($response->getBody(), true);
python
import requests

url = "https://your-domain.com/admin/api/v1/support/currencies/{id}"

headers = {
    "Authorization": "Bearer {YOUR_AUTH_TOKEN}",
    "Accept": "application/json",
    "Content-Type": "application/json",
}

response = requests.delete(url, headers=headers)

data = response.json()
print(data)

Example response 200

json
{
  "message": "Currency deleted successfully."
}
Error response — 401
json
{
  "message": "Unauthenticated."
}

Released under the MIT License.