curl --request POST \
--url https://sandbox-rampa.mesadepagos.com/api/v2/fees \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"pair": "USDC/BOB",
"transactionType": "withdrawal_express",
"amount": 0.5,
"type": "PERCENTAGE"
}
'import requests
url = "https://sandbox-rampa.mesadepagos.com/api/v2/fees"
payload = {
"pair": "USDC/BOB",
"transactionType": "withdrawal_express",
"amount": 0.5,
"type": "PERCENTAGE"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
pair: 'USDC/BOB',
transactionType: 'withdrawal_express',
amount: 0.5,
type: 'PERCENTAGE'
})
};
fetch('https://sandbox-rampa.mesadepagos.com/api/v2/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://sandbox-rampa.mesadepagos.com/api/v2/fees",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'pair' => 'USDC/BOB',
'transactionType' => 'withdrawal_express',
'amount' => 0.5,
'type' => 'PERCENTAGE'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sandbox-rampa.mesadepagos.com/api/v2/fees"
payload := strings.NewReader("{\n \"pair\": \"USDC/BOB\",\n \"transactionType\": \"withdrawal_express\",\n \"amount\": 0.5,\n \"type\": \"PERCENTAGE\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://sandbox-rampa.mesadepagos.com/api/v2/fees")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"pair\": \"USDC/BOB\",\n \"transactionType\": \"withdrawal_express\",\n \"amount\": 0.5,\n \"type\": \"PERCENTAGE\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox-rampa.mesadepagos.com/api/v2/fees")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"pair\": \"USDC/BOB\",\n \"transactionType\": \"withdrawal_express\",\n \"amount\": 0.5,\n \"type\": \"PERCENTAGE\"\n}"
response = http.request(request)
puts response.read_body{
"pair": "USDC/BOB",
"transactionType": "withdrawal_express",
"amount": 0.5,
"feeType": "PERCENTAGE",
"status": "CURRENT",
"createdBy": "Partner User",
"validUntil": "2026-05-12T12:00:00.000Z",
"supersededBy": {
"amount": 0.5,
"feeType": "PERCENTAGE",
"createdBy": "Partner User"
},
"predecessor": {
"amount": 0.5,
"feeType": "PERCENTAGE",
"createdBy": "Partner User"
}
}{
"statusCode": 400,
"message": "Validation failed",
"error": "Bad Request"
}{
"statusCode": 401,
"message": "Unauthorized"
}Create fee
Creates a fee configuration for the authenticated business.
curl --request POST \
--url https://sandbox-rampa.mesadepagos.com/api/v2/fees \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"pair": "USDC/BOB",
"transactionType": "withdrawal_express",
"amount": 0.5,
"type": "PERCENTAGE"
}
'import requests
url = "https://sandbox-rampa.mesadepagos.com/api/v2/fees"
payload = {
"pair": "USDC/BOB",
"transactionType": "withdrawal_express",
"amount": 0.5,
"type": "PERCENTAGE"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
pair: 'USDC/BOB',
transactionType: 'withdrawal_express',
amount: 0.5,
type: 'PERCENTAGE'
})
};
fetch('https://sandbox-rampa.mesadepagos.com/api/v2/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://sandbox-rampa.mesadepagos.com/api/v2/fees",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'pair' => 'USDC/BOB',
'transactionType' => 'withdrawal_express',
'amount' => 0.5,
'type' => 'PERCENTAGE'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sandbox-rampa.mesadepagos.com/api/v2/fees"
payload := strings.NewReader("{\n \"pair\": \"USDC/BOB\",\n \"transactionType\": \"withdrawal_express\",\n \"amount\": 0.5,\n \"type\": \"PERCENTAGE\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://sandbox-rampa.mesadepagos.com/api/v2/fees")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"pair\": \"USDC/BOB\",\n \"transactionType\": \"withdrawal_express\",\n \"amount\": 0.5,\n \"type\": \"PERCENTAGE\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox-rampa.mesadepagos.com/api/v2/fees")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"pair\": \"USDC/BOB\",\n \"transactionType\": \"withdrawal_express\",\n \"amount\": 0.5,\n \"type\": \"PERCENTAGE\"\n}"
response = http.request(request)
puts response.read_body{
"pair": "USDC/BOB",
"transactionType": "withdrawal_express",
"amount": 0.5,
"feeType": "PERCENTAGE",
"status": "CURRENT",
"createdBy": "Partner User",
"validUntil": "2026-05-12T12:00:00.000Z",
"supersededBy": {
"amount": 0.5,
"feeType": "PERCENTAGE",
"createdBy": "Partner User"
},
"predecessor": {
"amount": 0.5,
"feeType": "PERCENTAGE",
"createdBy": "Partner User"
}
}{
"statusCode": 400,
"message": "Validation failed",
"error": "Bad Request"
}{
"statusCode": 401,
"message": "Unauthorized"
}Authorizations
JWT obtained from /v2/auth/login
Body
Fee data to configure.
Currency pair for the fee.
USDC/BOB, BOB/USDC, USDT/BOB, BOB/USDT, USDT/PEN, USDT/BRL, USDT/CLP, USDT/COP, USDC/PEN, USDC/BRL, USDC/CLP, USDC/COP, USDT/USD, USDC/USD, USDT/EUR, USDC/EUR, EURC/EUR "USDC/BOB"
Transaction type to which the fee applies.
deposit_express, deposit_cash, withdrawal_express, withdrawal_ach, withdrawal_pix, deposit_crypto, withdrawal_crypto, prefunding, deposit_card, withdrawal_ach_us, withdrawal_wire, withdrawal_swift, withdrawal_sepa "withdrawal_express"
Fee amount. Must be greater than zero.
x >= 00.5
PERCENTAGE applies to the exchange rate; FIXED applies to the total amount.
FIXED, PERCENTAGE "PERCENTAGE"
Response
Fee created successfully.
Currency pair configured for the fee.
USDC/BOB, BOB/USDC, USDT/BOB, BOB/USDT, USDT/PEN, USDT/BRL, USDT/CLP, USDT/COP, USDC/PEN, USDC/BRL, USDC/CLP, USDC/COP, USDT/USD, USDC/USD, USDT/EUR, USDC/EUR, EURC/EUR "USDC/BOB"
Transaction type to which the fee applies.
deposit_express, deposit_cash, withdrawal_express, withdrawal_ach, withdrawal_pix, deposit_crypto, withdrawal_crypto, prefunding, deposit_card, withdrawal_ach_us, withdrawal_wire, withdrawal_swift, withdrawal_sepa "withdrawal_express"
Fee amount.
0.5
Configured fee type.
FIXED, PERCENTAGE "PERCENTAGE"
Fee validity status.
CURRENT, OLD "CURRENT"
User who created the fee.
"Partner User"
Date until which the fee was valid, if it has been replaced.
"2026-05-12T12:00:00.000Z"
Fee that replaced this record, if present.
Show child attributes
Show child attributes
Previous fee replaced by this record, if present.
Show child attributes
Show child attributes