curl --request PUT \
--url https://api.pid.peridotvault.com/v1/fiat/admin/payment-fee-rates/{methodKey} \
--header 'Content-Type: application/json' \
--cookie pid_access= \
--data '
{
"methodKey": "<string>",
"percentBps": 123,
"flatIdr": "<string>",
"minIdr": "<string>",
"maxIdr": "<string>",
"enabled": true,
"label": "<string>",
"category": "<string>",
"isCategory": true,
"updatedAt": "2023-11-07T05:31:56Z"
}
'const options = {
method: 'PUT',
headers: {cookie: 'pid_access=', 'Content-Type': 'application/json'},
body: JSON.stringify({
methodKey: '<string>',
percentBps: 123,
flatIdr: '<string>',
minIdr: '<string>',
maxIdr: '<string>',
enabled: true,
label: '<string>',
category: '<string>',
isCategory: true,
updatedAt: '2023-11-07T05:31:56Z'
})
};
fetch('https://api.pid.peridotvault.com/v1/fiat/admin/payment-fee-rates/{methodKey}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.pid.peridotvault.com/v1/fiat/admin/payment-fee-rates/{methodKey}"
payload = {
"methodKey": "<string>",
"percentBps": 123,
"flatIdr": "<string>",
"minIdr": "<string>",
"maxIdr": "<string>",
"enabled": True,
"label": "<string>",
"category": "<string>",
"isCategory": True,
"updatedAt": "2023-11-07T05:31:56Z"
}
headers = {
"cookie": "pid_access=",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.pid.peridotvault.com/v1/fiat/admin/payment-fee-rates/{methodKey}"
payload := strings.NewReader("{\n \"methodKey\": \"<string>\",\n \"percentBps\": 123,\n \"flatIdr\": \"<string>\",\n \"minIdr\": \"<string>\",\n \"maxIdr\": \"<string>\",\n \"enabled\": true,\n \"label\": \"<string>\",\n \"category\": \"<string>\",\n \"isCategory\": true,\n \"updatedAt\": \"2023-11-07T05:31:56Z\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("cookie", "pid_access=")
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))
}{
"methodKey": "<string>",
"percentBps": 123,
"flatIdr": "<string>",
"minIdr": "<string>",
"maxIdr": "<string>",
"enabled": true,
"label": "<string>",
"category": "<string>",
"isCategory": true,
"updatedAt": "2023-11-07T05:31:56Z"
}{
"statusCode": 400,
"message": [
"handle must be 3-20 chars: lowercase letters, numbers, underscore"
]
}{
"statusCode": 401,
"message": "Unauthorized"
}Upsert one payment method's gateway fee / enabled state (admin)
methodKey is a DOKU method code, a category
(VIRTUAL_ACCOUNT/EWALLET/CARD/QRIS/OTHER), or "" (default). Resolution:
exact code → category → "". A row with enabled=false is an explicit
off switch — the method is hidden in the wallet and no fee is charged
(it shadows the ”*” fallback). 0 min/max = unbounded.
curl --request PUT \
--url https://api.pid.peridotvault.com/v1/fiat/admin/payment-fee-rates/{methodKey} \
--header 'Content-Type: application/json' \
--cookie pid_access= \
--data '
{
"methodKey": "<string>",
"percentBps": 123,
"flatIdr": "<string>",
"minIdr": "<string>",
"maxIdr": "<string>",
"enabled": true,
"label": "<string>",
"category": "<string>",
"isCategory": true,
"updatedAt": "2023-11-07T05:31:56Z"
}
'const options = {
method: 'PUT',
headers: {cookie: 'pid_access=', 'Content-Type': 'application/json'},
body: JSON.stringify({
methodKey: '<string>',
percentBps: 123,
flatIdr: '<string>',
minIdr: '<string>',
maxIdr: '<string>',
enabled: true,
label: '<string>',
category: '<string>',
isCategory: true,
updatedAt: '2023-11-07T05:31:56Z'
})
};
fetch('https://api.pid.peridotvault.com/v1/fiat/admin/payment-fee-rates/{methodKey}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.pid.peridotvault.com/v1/fiat/admin/payment-fee-rates/{methodKey}"
payload = {
"methodKey": "<string>",
"percentBps": 123,
"flatIdr": "<string>",
"minIdr": "<string>",
"maxIdr": "<string>",
"enabled": True,
"label": "<string>",
"category": "<string>",
"isCategory": True,
"updatedAt": "2023-11-07T05:31:56Z"
}
headers = {
"cookie": "pid_access=",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.pid.peridotvault.com/v1/fiat/admin/payment-fee-rates/{methodKey}"
payload := strings.NewReader("{\n \"methodKey\": \"<string>\",\n \"percentBps\": 123,\n \"flatIdr\": \"<string>\",\n \"minIdr\": \"<string>\",\n \"maxIdr\": \"<string>\",\n \"enabled\": true,\n \"label\": \"<string>\",\n \"category\": \"<string>\",\n \"isCategory\": true,\n \"updatedAt\": \"2023-11-07T05:31:56Z\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("cookie", "pid_access=")
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))
}{
"methodKey": "<string>",
"percentBps": 123,
"flatIdr": "<string>",
"minIdr": "<string>",
"maxIdr": "<string>",
"enabled": true,
"label": "<string>",
"category": "<string>",
"isCategory": true,
"updatedAt": "2023-11-07T05:31:56Z"
}{
"statusCode": 400,
"message": [
"handle must be 3-20 chars: lowercase letters, numbers, underscore"
]
}{
"statusCode": 401,
"message": "Unauthorized"
}Authorizations
JWT access token set by /auth/google/callback or /auth/refresh
Path Parameters
Body
DOKU method code, category, or "*" (default)
Floor, whole IDR (0 = unbounded)
Cap, whole IDR (0 = unbounded)
false = method hidden in the wallet and no fee charged
Display label (category name for catalog rows)
True for the fixed category catalog rows
Response
Stored rate
DOKU method code, category, or "*" (default)
Floor, whole IDR (0 = unbounded)
Cap, whole IDR (0 = unbounded)
false = method hidden in the wallet and no fee charged
Display label (category name for catalog rows)
True for the fixed category catalog rows