Get FX tariff
Authorization
bearerAuth In: header
Path Parameters
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/fx/tariffs/497f6eca-6276-4993-bfeb-53cbbbba6f08"{
"name": "string",
"description": "string",
"fallback_tariff_id": "e4b6bec8-3c7c-45ce-b8c3-85abac4ed74b",
"is_default": true,
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"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",
"active": true,
"metadata": {}
}{
"status": 409,
"message": "Spread rule overlaps an existing rule",
"code": "fx_m.spread_overlap",
"class": "business",
"retryable": false,
"details": [
{
"field": "percent_fee",
"rule": "lte",
"param": "1",
"message": "string"
}
]
}{
"status": 409,
"message": "Spread rule overlaps an existing rule",
"code": "fx_m.spread_overlap",
"class": "business",
"retryable": false,
"details": [
{
"field": "percent_fee",
"rule": "lte",
"param": "1",
"message": "string"
}
]
}{
"status": 403,
"message": "Access denied",
"code": "common.forbidden",
"class": "business"
}{
"status": 409,
"message": "Spread rule overlaps an existing rule",
"code": "fx_m.spread_overlap",
"class": "business",
"retryable": false,
"details": [
{
"field": "percent_fee",
"rule": "lte",
"param": "1",
"message": "string"
}
]
}{
"status": 429,
"message": "Rate limit for 203.0.113.7 to GET:/v1/fx/rates exceeded.",
"code": "rate_limits_m.exceeded",
"class": "temporary",
"retryable": true
}{
"status": 409,
"message": "Spread rule overlaps an existing rule",
"code": "fx_m.spread_overlap",
"class": "business",
"retryable": false,
"details": [
{
"field": "percent_fee",
"rule": "lte",
"param": "1",
"message": "string"
}
]
}{
"overall_status": "unhealthy",
"message": "Service is shutting down",
"timestamp": "2026-08-27T15:04:05Z"
}Lists the FX tariffs the caller may read, as a BARE JSON ARRAY. This v1 route is unpaginated and reads NO query parameters — the handler passes only the caller id to the service. limit, offset, sort, filter and search.* are accepted by the router and discarded without error, so a caller who paginates here silently receives the whole permitted set. The shared envelope and the shared query parser belong to /v2/fx/tariffs. Items are models.FxTariff, which INCLUDES is_default; the v2 list returns transform.FxTariffResponse, which does not.
Lists fee ranges as a BARE JSON ARRAY, in INTEGER MINOR units. This v1 route is unpaginated and does not use the shared query parser: it reads exactly two query parameters by hand, and every shared parameter (limit, offset, sort, filter, search_text, stack, distinct, search.*) is discarded without error. When the caller has no permitted tariffs the reply is an empty array, not an error — unlike GET /v1/fx/tariffs, which answers 400 in that case.