curl --request PUT \
--url https://{domain}/api/v2/network/commission-plan/{id} \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"title": "string",
"status": 1,
"product": 1,
"currency": "USD",
"traffic_source_ids": [
1
]
}
'import requests
url = "https://{domain}/api/v2/network/commission-plan/{id}"
payload = {
"title": "string",
"status": 1,
"product": 1,
"currency": "USD",
"traffic_source_ids": [1]
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
title: 'string',
status: 1,
product: 1,
currency: 'USD',
traffic_source_ids: [1]
})
};
fetch('https://{domain}/api/v2/network/commission-plan/{id}', 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://{domain}/api/v2/network/commission-plan/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'title' => 'string',
'status' => 1,
'product' => 1,
'currency' => 'USD',
'traffic_source_ids' => [
1
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <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://{domain}/api/v2/network/commission-plan/{id}"
payload := strings.NewReader("{\n \"title\": \"string\",\n \"status\": 1,\n \"product\": 1,\n \"currency\": \"USD\",\n \"traffic_source_ids\": [\n 1\n ]\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("X-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.put("https://{domain}/api/v2/network/commission-plan/{id}")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"string\",\n \"status\": 1,\n \"product\": 1,\n \"currency\": \"USD\",\n \"traffic_source_ids\": [\n 1\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{domain}/api/v2/network/commission-plan/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"string\",\n \"status\": 1,\n \"product\": 1,\n \"currency\": \"USD\",\n \"traffic_source_ids\": [\n 1\n ]\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"code": 200,
"name": "OK",
"message": "<string>"
}{
"status": "error",
"code": 422,
"name": "Unprocessable Entity",
"message": "<string>",
"info": {
"errors": {}
}
}Update commission plan (PUT)
Updates an existing commission plan. Commission types disabled in company settings cannot be submitted. cpa.hold_period and cpl.hold_period are validated independently against their own company toggles. Past dates are accepted for flat_fee.commission.start_date. Deleted affiliates in assigned_to are ignored instead of triggering validation errors.
curl --request PUT \
--url https://{domain}/api/v2/network/commission-plan/{id} \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"title": "string",
"status": 1,
"product": 1,
"currency": "USD",
"traffic_source_ids": [
1
]
}
'import requests
url = "https://{domain}/api/v2/network/commission-plan/{id}"
payload = {
"title": "string",
"status": 1,
"product": 1,
"currency": "USD",
"traffic_source_ids": [1]
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
title: 'string',
status: 1,
product: 1,
currency: 'USD',
traffic_source_ids: [1]
})
};
fetch('https://{domain}/api/v2/network/commission-plan/{id}', 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://{domain}/api/v2/network/commission-plan/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'title' => 'string',
'status' => 1,
'product' => 1,
'currency' => 'USD',
'traffic_source_ids' => [
1
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <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://{domain}/api/v2/network/commission-plan/{id}"
payload := strings.NewReader("{\n \"title\": \"string\",\n \"status\": 1,\n \"product\": 1,\n \"currency\": \"USD\",\n \"traffic_source_ids\": [\n 1\n ]\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("X-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.put("https://{domain}/api/v2/network/commission-plan/{id}")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"string\",\n \"status\": 1,\n \"product\": 1,\n \"currency\": \"USD\",\n \"traffic_source_ids\": [\n 1\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{domain}/api/v2/network/commission-plan/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"string\",\n \"status\": 1,\n \"product\": 1,\n \"currency\": \"USD\",\n \"traffic_source_ids\": [\n 1\n ]\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"code": 200,
"name": "OK",
"message": "<string>"
}{
"status": "error",
"code": 422,
"name": "Unprocessable Entity",
"message": "<string>",
"info": {
"errors": {}
}
}Authorizations
Preferred authentication method. Pass the API key in the X-API-Key HTTP request header. The user account must have api_status enabled.
Path Parameters
Commission plan ID.
Body
Commission plan name.
Status ID (e.g. 1=active).
Offer ID.
Currency code. Only accepted when native_currency_commissions is ON. Null or omitted = Brand Currency.
Traffic source IDs. Multi-select. null is accepted and treated as an empty array.
Traffic approaches IDs. null is accepted and treated as an empty array.
Affiliate IDs. Deleted affiliates are ignored during validation and are removed from existing assignments on update.
Whether this is the default commission plan for the offer.
Whether this plan is exclusive to assigned affiliates.
Internal notes for this commission plan.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Fixed recurring or one-time fee. Does NOT use type.
Show child attributes
Show child attributes
Was this page helpful?