Get currency by ID
Handler: GetCurrencyByID → SrvGetCurrencyByID. Requires RBAC PermRead on the currency record. icon_url is rewritten using config currencies.icon.pattern before response. The id path parameter is parsed with uuid.MustParse, so a malformed UUID is not returned as a 400; supply a valid UUID.
Authorization
bearerAuth In: header
Path Parameters
Currency UUID
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/currencies/497f6eca-6276-4993-bfeb-53cbbbba6f08"{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"code": "string",
"numeric_code": "string",
"name": "string",
"description": "string",
"symbol": "string",
"decimal_places": 0,
"precision": 0,
"rounding": "up",
"is_fiat": true,
"is_base": true,
"format": "string",
"display_priority": 0,
"icon_url": "string",
"active": true,
"metadata": {},
"created_at": "2019-08-24T14:15:22Z",
"created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
"modified_at": "2019-08-24T14:15:22Z",
"modified_by": "e8d4374d-93a1-4e98-a6c6-fdcf00c5059f"
}{
"status": 401,
"message": "Unauthorized"
}{
"status": 403,
"message": "Forbidden"
}{
"status": 404,
"message": "Not found"
}{
"status": 500,
"message": "server_error"
}Handler: GetAllCurrencies → SrvGetAllCurrencies. Returns a **bare array** of models.Currency (NOT a get_all envelope). Results are RBAC-scoped (PermReadAll or permitted record IDs). Query uses **flat** field names passed to ConstructQuery + CurrencyQueryParser — invalid fields are silently ignored. Use GET /v2/currencies for paginated get_all + search.* syntax.
Handler: DeleteCurrencyByID. Requires RBAC PermDelete. Physically removes the row (hard delete, not a deactivation). Success: apireply.Ok200 -> StdResponse { status, message }. To take a currency out of use while keeping it, set active=false via PUT instead.