> ## 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.

# Add reward

> Give a partner a one-off manual reward for special cases — separate from your commission rules

## Endpoint

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

Gives a partner a reward on the spot — no sale, no transaction, no commission rule involved. You just say "give this partner X" and Partnero does it.

Reach for this when you need a **one-off** reward that doesn't fit your normal setup: a bonus, a contest prize, a goodwill gesture, a manual correction, a "thanks for the referral" outside your usual flow. That kind of thing.

<Warning>
  This is **not** how regular commissions work. Partnero normally calculates rewards automatically from your program's commission rules whenever a referred sale or signup happens — you don't need this endpoint for that, and you shouldn't use it to replicate it. This is purely for the special, manual cases above.
</Warning>

<Note>
  Affiliate programs only. Call it **server-side** — it needs your secret API key.
</Note>

The reward lands in the partner's balance and is ready to pay out, just like any other reward. Since there's no commission behind it, it shows up as a `Custom action` and won't appear in your commission-based rewards distribution.

## Path parameters

| Parameter | Type   | Required | Description          |
| --------- | ------ | -------- | -------------------- |
| `id`      | string | Yes      | Partner's unique ID. |

## Request body

| Parameter | Type   | Required | Description                                                                                       |
| --------- | ------ | -------- | ------------------------------------------------------------------------------------------------- |
| `amount`  | number | Yes      | Reward value. Must be greater than `0` (min `0.01`). Issued in the partner's commission currency. |
| `note`    | string | No       | Free-text note, up to 1000 characters. HTML is stripped before storage.                           |
| `date`    | string | No       | Reward date, e.g. `2026-08-23`. Defaults to the current time.                                     |

<Info>
  `date` sets when the reward is dated, so you can back-date (or future-date) it. Handy if you're recording something that happened earlier — just note it changes where the reward shows up in the history and date filters.
</Info>

## Request

```bash cURL theme={null}
curl --location 'https://api.partnero.com/v1/partners/partner_123/reward' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data-raw '{
    "amount": 100,
    "note": "Q3 performance bonus",
    "date": "2026-08-23"
  }'
```

## Response

<ResponseExample>
  ```json 200 OK theme={null}
  {
    "data": {
      "key": "manual-1f0a8b2c-3d4e-5f60-7a81-9b0c1d2e3f40",
      "action": "manual_reward",
      "status": "ok",
      "customer": null,
      "partner": "partner_123",
      "amount": 100.0,
      "amount_units": "USD",
      "is_currency": true,
      "credit": false,
      "created_at": "2026-08-23T00:00:00.000000Z",
      "deleted_at": null,
      "product_type_data": []
    }
  }
  ```
</ResponseExample>

| Field               | Type           | Description                                             |
| ------------------- | -------------- | ------------------------------------------------------- |
| `key`               | string         | The reward's unique identifier (`manual-<uuid>`).       |
| `action`            | string         | The reward's origin key (`manual_reward`).              |
| `status`            | string         | Reward status (`ok` for a newly issued reward).         |
| `partner`           | string         | The partner's identifier.                               |
| `customer`          | string \| null | Always `null` for manual rewards.                       |
| `amount`            | number         | The reward value.                                       |
| `amount_units`      | string         | Currency code of the reward.                            |
| `is_currency`       | boolean        | Always `true` for manual rewards.                       |
| `credit`            | boolean        | Always `false` for manual rewards.                      |
| `created_at`        | string         | The reward date (from `date`, or the time of creation). |
| `deleted_at`        | string \| null | Deletion timestamp, if any.                             |
| `product_type_data` | object         | Product metadata (empty for manual rewards).            |

## Error responses

| Status | Error                                                    | Solution                                                                                              |
| ------ | -------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
| 404    | Partner not found                                        | Check the `id` is correct for this program                                                            |
| 422    | Validation failed                                        | `amount` is required and must be greater than `0`; `note` max 1000 chars; `date` must be a valid date |
| 422    | Manual rewards are only available for affiliate programs | Use an affiliate program's API key                                                                    |
