> ## Documentation Index
> Fetch the complete documentation index at: https://docs.partnero.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Reject partner

> Reject a partner who is pending approval, with an optional reason

## Endpoint

```
POST https://api.partnero.com/v1/partners/{id}/reject
```

<Note>
  This endpoint is available for affiliate programs only.
</Note>

Rejects a partner whose application is pending review. This works the same way as clicking **Reject** in the dashboard: the partner receives the rejection email, and the `partner.rejected` [webhook](/api-reference/webhooks/overview) 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

```bash cURL theme={"system"}
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](/api-reference/partners/get).

<ResponseExample>
  ```json 200 OK theme={"system"}
  {
    "data": {
      "id": "partner_123",
      "email": "john.doe@partnero.com",
      "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
  }
  ```

  ```json 422 Unprocessable Entity theme={"system"}
  {
    "status": 0,
    "message": "Partner is already approved. Suspend or archive the partner instead."
  }
  ```
</ResponseExample>

## 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](/api-reference/partners/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](/api-reference/partners/approve) 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 |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.