curl --request POST \
--url https://sg.sandbox.api.reap.global/fees/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Reap-Version: <reap-version>' \
--data '
{
"type": "FX_MARKUP",
"scope": {
"type": "ACCOUNT",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"value": {
"unit": "BPS",
"bps": 51
}
}
'const options = {
method: 'POST',
headers: {
'Reap-Version': '<reap-version>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
type: 'FX_MARKUP',
scope: {type: 'ACCOUNT', id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'},
value: {unit: 'BPS', bps: 51}
})
};
fetch('https://sg.sandbox.api.reap.global/fees/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://sg.sandbox.api.reap.global/fees/"
payload = {
"type": "FX_MARKUP",
"scope": {
"type": "ACCOUNT",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"value": {
"unit": "BPS",
"bps": 51
}
}
headers = {
"Reap-Version": "<reap-version>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "FX_MARKUP",
"value": {
"unit": "BPS",
"bps": 51
},
"scope": {
"type": "PROJECT"
},
"version": 0,
"createdAt": "<string>",
"updatedAt": "<string>"
}{
"error": {
"code": "FEE_SCOPE_NOT_FOUND",
"message": "<string>",
"detail": {}
}
}{
"error": {
"code": "DUPLICATE_FEE",
"message": "<string>",
"detail": {}
}
}Create fee override
Creates an account-level override for one fee type. An account has at most one override per fee type; creating a second returns a conflict. Project defaults cannot be created - every project already has one row per fee type.
curl --request POST \
--url https://sg.sandbox.api.reap.global/fees/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Reap-Version: <reap-version>' \
--data '
{
"type": "FX_MARKUP",
"scope": {
"type": "ACCOUNT",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"value": {
"unit": "BPS",
"bps": 51
}
}
'const options = {
method: 'POST',
headers: {
'Reap-Version': '<reap-version>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
type: 'FX_MARKUP',
scope: {type: 'ACCOUNT', id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'},
value: {unit: 'BPS', bps: 51}
})
};
fetch('https://sg.sandbox.api.reap.global/fees/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://sg.sandbox.api.reap.global/fees/"
payload = {
"type": "FX_MARKUP",
"scope": {
"type": "ACCOUNT",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"value": {
"unit": "BPS",
"bps": 51
}
}
headers = {
"Reap-Version": "<reap-version>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "FX_MARKUP",
"value": {
"unit": "BPS",
"bps": 51
},
"scope": {
"type": "PROJECT"
},
"version": 0,
"createdAt": "<string>",
"updatedAt": "<string>"
}{
"error": {
"code": "FEE_SCOPE_NOT_FOUND",
"message": "<string>",
"detail": {}
}
}{
"error": {
"code": "DUPLICATE_FEE",
"message": "<string>",
"detail": {}
}
}Authorizations
API key as Bearer token
Headers
API version (YYYY-MM-DD)
2025-02-14 "2025-02-14"
Unique key for safely retrying this request. Up to 255 characters; we recommend a UUIDv4. The first request executes and its response is cached; subsequent requests with the same key replay the cached response (24h retention).
1 - 255Body
Create an account-level fee override. The value unit must match the fee type.
Which cardholder fee to override.
FX_MARKUP, ATM_DOMESTIC_VARIABLE, ATM_DOMESTIC_FIXED, ATM_CROSS_BORDER_VARIABLE, ATM_CROSS_BORDER_FIXED "FX_MARKUP"
The account the override attaches to.
Show child attributes
Show child attributes
The fee value. unit must match the fee type: BPS for a rate-based type, AMOUNT for a fixed one.
- FeeBpsValueInput
- FeeAmountValueInput
Show child attributes
Show child attributes
Response
A cardholder fee row.
Fee ID.
Which cardholder fee this row sets.
FX_MARKUP, ATM_DOMESTIC_VARIABLE, ATM_DOMESTIC_FIXED, ATM_CROSS_BORDER_VARIABLE, ATM_CROSS_BORDER_FIXED "FX_MARKUP"
The fee value, denominated as unit says.
- FeeBpsValue
- FeeAmountValue
Show child attributes
Show child attributes
Where the fee attaches. PROJECT rows are the default rate card for your program; an ACCOUNT row overrides one fee type for one account.
- Project
- Account
Show child attributes
Show child attributes
Incremented on every change. Transaction events record the version that priced them.
-9007199254740991 <= x <= 9007199254740991ISO 8601 creation timestamp.
ISO 8601 last-update timestamp.