Reject partner
curl --request POST \
--url https://api.example.com/v1/partners/{id}/rejectimport requests
url = "https://api.example.com/v1/partners/{id}/reject"
response = requests.post(url)
print(response.text)const options = {method: 'POST'};
fetch('https://api.example.com/v1/partners/{id}/reject', 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.example.com/v1/partners/{id}/reject",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/v1/partners/{id}/reject"
req, _ := http.NewRequest("POST", url, nil)
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.example.com/v1/partners/{id}/reject")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/partners/{id}/reject")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
response = http.request(request)
puts response.read_body{
"data": {
"id": "partner_123",
"email": "[email protected]",
"name": "John",
"surname": "Doe",
"approved": false,
"status": "approval_rejected",
"created_at": "2025-04-30T16:44:13.000000Z",
"updated_at": "2025-05-02T09:12:40.000000Z"
},
"status": 1
}
{
"status": 0,
"message": "Partner is already approved. Suspend or archive the partner instead."
}
Partners
Reject partner
Reject a partner who is pending approval, with an optional reason
POST
/
v1
/
partners
/
{id}
/
reject
Reject partner
curl --request POST \
--url https://api.example.com/v1/partners/{id}/rejectimport requests
url = "https://api.example.com/v1/partners/{id}/reject"
response = requests.post(url)
print(response.text)const options = {method: 'POST'};
fetch('https://api.example.com/v1/partners/{id}/reject', 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.example.com/v1/partners/{id}/reject",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/v1/partners/{id}/reject"
req, _ := http.NewRequest("POST", url, nil)
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.example.com/v1/partners/{id}/reject")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/partners/{id}/reject")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
response = http.request(request)
puts response.read_body{
"data": {
"id": "partner_123",
"email": "[email protected]",
"name": "John",
"surname": "Doe",
"approved": false,
"status": "approval_rejected",
"created_at": "2025-04-30T16:44:13.000000Z",
"updated_at": "2025-05-02T09:12:40.000000Z"
},
"status": 1
}
{
"status": 0,
"message": "Partner is already approved. Suspend or archive the partner instead."
}
Endpoint
POST https://api.partnero.com/v1/partners/{id}/reject
This endpoint is available for affiliate programs only.
partner.rejected webhook is sent. The optional message is saved as the rejection reason and shown to the partner in the partner portal and in the rejection email.
The call is safe to retry. Rejecting a partner who is already rejected changes nothing and returns the partner as is.
Path parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Partner’s ID, key or email |
Body parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
message | string | No | Rejection reason shown to the partner. Max 1000 characters. HTML tags are removed |
Request
cURL
curl --location --request POST 'https://api.partnero.com/v1/partners/partner_123/reject' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--data '{
"message": "We are looking for partners with an established audience in the SaaS space."
}'
Response
Returns the updated partner, in the same format as Get partner.{
"data": {
"id": "partner_123",
"email": "[email protected]",
"name": "John",
"surname": "Doe",
"approved": false,
"status": "approval_rejected",
"created_at": "2025-04-30T16:44:13.000000Z",
"updated_at": "2025-05-02T09:12:40.000000Z"
},
"status": 1
}
{
"status": 0,
"message": "Partner is already approved. Suspend or archive the partner instead."
}
Behavior
- Only pending partners can be rejected. Rejecting an approved partner is refused, so an approval can’t be undone by accident. To remove an approved partner, archive them or suspend them in the dashboard instead.
- Partners without an approval request (for example, partners who signed up through an instant link, or programs that don’t require approval) can’t be rejected, because there is no application to reject.
- A rejected partner can be approved later with the Approve partner endpoint.
Error responses
| Status | Error | Solution |
|---|---|---|
| 401 | Unauthenticated | Check your API key is set in the Authorization header |
| 404 | Partner not found | Check the partner ID, key or email. Archived partners can’t be rejected |
| 422 | Partner is already approved. Suspend or archive the partner instead. | The partner has already been approved. Archive or suspend them instead |
| 422 | Partner has no pending approval request to reject. | The partner never submitted an application, so there is nothing to reject |
| 422 | Validation error | message is longer than 1000 characters or isn’t a string |
Was this page helpful?
