curl --request POST \
--url https://api.usenumero.com/numeroaccount/api/v1/business/partner-benefits/fee-preview \
--header 'Content-Type: application/json' \
--header 'X-Numero-Api-Key: <api-key>' \
--header 'X-Numero-Signature: <api-key>' \
--data '{
"amount": 123
}'import requests
url = "https://api.usenumero.com/numeroaccount/api/v1/business/partner-benefits/fee-preview"
payload = { "amount": 123 }
headers = {
"X-Numero-Signature": "<api-key>",
"X-Numero-Api-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Numero-Signature': '<api-key>',
'X-Numero-Api-Key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({amount: 123})
};
fetch('https://api.usenumero.com/numeroaccount/api/v1/business/partner-benefits/fee-preview', 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.usenumero.com/numeroaccount/api/v1/business/partner-benefits/fee-preview",
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([
'amount' => 123
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Numero-Api-Key: <api-key>",
"X-Numero-Signature: <api-key>"
],
]);
$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://api.usenumero.com/numeroaccount/api/v1/business/partner-benefits/fee-preview"
payload := strings.NewReader("{\n \"amount\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Numero-Signature", "<api-key>")
req.Header.Add("X-Numero-Api-Key", "<api-key>")
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://api.usenumero.com/numeroaccount/api/v1/business/partner-benefits/fee-preview")
.header("X-Numero-Signature", "<api-key>")
.header("X-Numero-Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"amount\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.usenumero.com/numeroaccount/api/v1/business/partner-benefits/fee-preview")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Numero-Signature"] = '<api-key>'
request["X-Numero-Api-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"amount\": 123\n}"
response = http.request(request)
puts response.read_body{
"status": true,
"data": {
"serviceCode": "<string>",
"currency": "<string>",
"standardFee": 123,
"fee": 123,
"savings": 123,
"note": "<string>"
}
}Preview an eligible Numero service fee
Requires wallet:read and a valid request signature. Returns the businessβs applicable fee and savings. Statutory charges remain payable. This preview does not reserve allowance, confirm service availability, or quote the complete transaction debit. Use the transactionβs normal quote and confirmation flow before purchasing.
curl --request POST \
--url https://api.usenumero.com/numeroaccount/api/v1/business/partner-benefits/fee-preview \
--header 'Content-Type: application/json' \
--header 'X-Numero-Api-Key: <api-key>' \
--header 'X-Numero-Signature: <api-key>' \
--data '{
"amount": 123
}'import requests
url = "https://api.usenumero.com/numeroaccount/api/v1/business/partner-benefits/fee-preview"
payload = { "amount": 123 }
headers = {
"X-Numero-Signature": "<api-key>",
"X-Numero-Api-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Numero-Signature': '<api-key>',
'X-Numero-Api-Key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({amount: 123})
};
fetch('https://api.usenumero.com/numeroaccount/api/v1/business/partner-benefits/fee-preview', 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.usenumero.com/numeroaccount/api/v1/business/partner-benefits/fee-preview",
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([
'amount' => 123
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Numero-Api-Key: <api-key>",
"X-Numero-Signature: <api-key>"
],
]);
$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://api.usenumero.com/numeroaccount/api/v1/business/partner-benefits/fee-preview"
payload := strings.NewReader("{\n \"amount\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Numero-Signature", "<api-key>")
req.Header.Add("X-Numero-Api-Key", "<api-key>")
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://api.usenumero.com/numeroaccount/api/v1/business/partner-benefits/fee-preview")
.header("X-Numero-Signature", "<api-key>")
.header("X-Numero-Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"amount\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.usenumero.com/numeroaccount/api/v1/business/partner-benefits/fee-preview")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Numero-Signature"] = '<api-key>'
request["X-Numero-Api-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"amount\": 123\n}"
response = http.request(request)
puts response.read_body{
"status": true,
"data": {
"serviceCode": "<string>",
"currency": "<string>",
"standardFee": 123,
"fee": 123,
"savings": 123,
"note": "<string>"
}
}Authorizations
Your business API key (live_key_...). Issued on approval; managed in Dashboard β Settings β Developer.
Base64(HMAC-SHA256(publicApiKey, input)) over the raw request body (POST) or canonicalized
query string (signed GET). Also send X-Numero-Signature-Version: v2. Required on
money-movement / state-changing endpoints (marked π).
The HMAC key is your Public Key as raw UTF-8 bytes β a SECRET despite the name, and a
different value from the X-Numero-Api-Key authentication header. Signing with the API key
will never produce a valid signature.