curl --request GET \
--url https://api.next.orenda.finance/v1/customers/{customerId}/fees \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.next.orenda.finance/v1/customers/{customerId}/fees"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.next.orenda.finance/v1/customers/{customerId}/fees', 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.next.orenda.finance/v1/customers/{customerId}/fees",
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.next.orenda.finance/v1/customers/{customerId}/fees"
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.next.orenda.finance/v1/customers/{customerId}/fees")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.next.orenda.finance/v1/customers/{customerId}/fees")
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{
"success": true,
"message": "Fees retrieved successfully",
"data": {
"fees": {
"atm_costs": {
"tableName": "atm_costs",
"data": [
{
"label": "atm_domestic",
"currency": "EUR",
"threshold": "0-2",
"value": "€0"
},
{
"label": "atm_domestic",
"currency": "EUR",
"threshold": "3-999999",
"value": "€1"
},
{
"label": "atm_international",
"currency": "EUR",
"value": "€2.50 + 2%"
}
]
},
"card_costs": {
"tableName": "card_costs",
"data": [
{
"label": "physical_card_creation",
"currency": "EUR",
"value": "€5"
},
{
"label": "pos_international",
"currency": "EUR",
"value": "1.75%"
}
]
}
}
}
}Get customer fees
Returns the customer’s fee schedule, grouped by category (card costs, ATM costs, account fees, and so on) for the customer’s region, account type, and tier. Each row is a display-ready label, currency, and value: a fixed amount (€5), a percentage (1.75%), or both (€1 + 1.75%). A fee with several usage bands returns one row per band, each with a threshold. Only a free band shows €0; a fee line the customer isn’t charged is left out.
The region comes from the customer’s residence. A customer living outside the region their program serves is priced as the program itself is. If neither their residence nor the program’s country maps to a region, this is a 400, not something to retry. Only available on programs using standard fee tables; others return a validation error.
curl --request GET \
--url https://api.next.orenda.finance/v1/customers/{customerId}/fees \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.next.orenda.finance/v1/customers/{customerId}/fees"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.next.orenda.finance/v1/customers/{customerId}/fees', 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.next.orenda.finance/v1/customers/{customerId}/fees",
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.next.orenda.finance/v1/customers/{customerId}/fees"
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.next.orenda.finance/v1/customers/{customerId}/fees")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.next.orenda.finance/v1/customers/{customerId}/fees")
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{
"success": true,
"message": "Fees retrieved successfully",
"data": {
"fees": {
"atm_costs": {
"tableName": "atm_costs",
"data": [
{
"label": "atm_domestic",
"currency": "EUR",
"threshold": "0-2",
"value": "€0"
},
{
"label": "atm_domestic",
"currency": "EUR",
"threshold": "3-999999",
"value": "€1"
},
{
"label": "atm_international",
"currency": "EUR",
"value": "€2.50 + 2%"
}
]
},
"card_costs": {
"tableName": "card_costs",
"data": [
{
"label": "physical_card_creation",
"currency": "EUR",
"value": "€5"
},
{
"label": "pos_international",
"currency": "EUR",
"value": "1.75%"
}
]
}
}
}
}Authorizations
The user's access_token from authentication. The program and environment come from the token.
Path Parameters
The customer's ID.