curl --request GET \
--url https://api-sandbox.finogates.com/v1/platform/fees/catalog \
--header 'Authorization: Bearer <token>'import requests
url = "https://api-sandbox.finogates.com/v1/platform/fees/catalog"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api-sandbox.finogates.com/v1/platform/fees/catalog', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-sandbox.finogates.com/v1/platform/fees/catalog",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api-sandbox.finogates.com/v1/platform/fees/catalog"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api-sandbox.finogates.com/v1/platform/fees/catalog")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.finogates.com/v1/platform/fees/catalog")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"status_code": 200,
"data": [
{
"fee_code": "ach.push",
"label": "ACH Push",
"category": "ACH",
"domain": "payout",
"structure": "flat_plus_percent",
"allowed_structures": [
"flat",
"percent",
"flat_plus_percent",
"tiered"
],
"bearer": "payer",
"bearer_selectable": true,
"is_metered": false,
"is_dormant": false,
"supports_caps": true,
"amount_based": true,
"actions": {
"flat_fee": 0.25,
"percent_fee": 0.5
},
"caps": {
"min_fee": 0.25,
"max_fee": 5
},
"source": "override",
"policy_id": "7a1c9e2b-4d6f-4a8b-9c1e-2d5f3a6b7c8d"
},
{
"fee_code": "card.acquiring",
"label": "Card Acquiring",
"category": "Card",
"domain": "funding",
"structure": "component",
"allowed_structures": [
"component"
],
"bearer": "payer",
"bearer_selectable": false,
"is_metered": false,
"is_dormant": false,
"supports_caps": true,
"amount_based": true,
"actions": {
"processing_fee": {
"percent_fee": 2.9,
"flat_fee": 0.3,
"bearer": "payer"
},
"delivery_fee": {
"flat_fee": 0,
"bearer": "payee"
}
},
"caps": {},
"source": "default"
}
],
"row_count": 2,
"query_generated_time": 1712847600000
}List Your Fee Schedule
Return your platform’s complete, effective fee schedule in a single call — one row per fee line (wallet, ACH, card, check-mail, international, comms, …).
Each line is the value that will actually be charged: your own configured
override if one is set, otherwise the platform-wide default. Read the
source field to tell them apart:
"override"— a value Finogate configured specifically for your platform."default"— the universal default; you inherit it because no override exists for this line.
A schedule that mixes the two is normal and fully represented here.
Per line you get: fee_code, label, category, domain; the active
structure (flat / percent / flat_plus_percent / per_unit /
tiered / component) and the allowed_structures it can take; the
fee bearer (payer / payee); the concrete actions (the fee
numbers — e.g. flat_fee / percent_fee / tier brackets, in major units)
and caps (min_fee / max_fee); the source flag; and metadata
flags (is_metered, is_dormant, supports_caps, amount_based).
curl --request GET \
--url https://api-sandbox.finogates.com/v1/platform/fees/catalog \
--header 'Authorization: Bearer <token>'import requests
url = "https://api-sandbox.finogates.com/v1/platform/fees/catalog"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api-sandbox.finogates.com/v1/platform/fees/catalog', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-sandbox.finogates.com/v1/platform/fees/catalog",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api-sandbox.finogates.com/v1/platform/fees/catalog"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api-sandbox.finogates.com/v1/platform/fees/catalog")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.finogates.com/v1/platform/fees/catalog")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"status_code": 200,
"data": [
{
"fee_code": "ach.push",
"label": "ACH Push",
"category": "ACH",
"domain": "payout",
"structure": "flat_plus_percent",
"allowed_structures": [
"flat",
"percent",
"flat_plus_percent",
"tiered"
],
"bearer": "payer",
"bearer_selectable": true,
"is_metered": false,
"is_dormant": false,
"supports_caps": true,
"amount_based": true,
"actions": {
"flat_fee": 0.25,
"percent_fee": 0.5
},
"caps": {
"min_fee": 0.25,
"max_fee": 5
},
"source": "override",
"policy_id": "7a1c9e2b-4d6f-4a8b-9c1e-2d5f3a6b7c8d"
},
{
"fee_code": "card.acquiring",
"label": "Card Acquiring",
"category": "Card",
"domain": "funding",
"structure": "component",
"allowed_structures": [
"component"
],
"bearer": "payer",
"bearer_selectable": false,
"is_metered": false,
"is_dormant": false,
"supports_caps": true,
"amount_based": true,
"actions": {
"processing_fee": {
"percent_fee": 2.9,
"flat_fee": 0.3,
"bearer": "payer"
},
"delivery_fee": {
"flat_fee": 0,
"bearer": "payee"
}
},
"caps": {},
"source": "default"
}
],
"row_count": 2,
"query_generated_time": 1712847600000
}Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Response
Your platform's full effective fee schedule, one row per line.
Standard response wrapper for list responses.
Declare ListResponse[list[SomeModel]] to render the real data
array schema in OpenAPI/Swagger; a bare ListResponse leaves data
untyped.
HTTP status code for the response.
Payload or error details.
UTC timestamp (milliseconds since epoch) when response was generated.
Total rows matching the request filters (not just this page).
x >= 0Page size used for this response. Null for cursor-paginated endpoints.
x >= 11-indexed page number for this response. Null for cursor-paginated endpoints.
x >= 1Total number of pages given the current limit. Null for cursor-paginated endpoints.
x >= 0Cursor for the next page, if available.

