# Adjust a User's Points Balance

{% hint style="info" %}
This article explains how to **manually adjust** a user's points balance on an ad-hoc basis. To find out more about how user's earn and spend points as part of your program rules, see [Get started with Points](/product/loyalty-engine/rewards-and-points/points/get-started-with-points.md#earning-and-burning-points-in-the-loyalty-engine).
{% endhint %}

## Using the Loyalty Console

<figure><img src="/files/qguUrzHI6mncIXuFzORZ" alt="" width="563"><figcaption><p>Adjusting a user's points balance</p></figcaption></figure>

{% hint style="warning" %}
**Manual or non-specific points adjustments should only be made on a limited, ad-hoc basis.**&#x20;

In a well-designed and properly implemented loyalty program, points adjustments should occur as a result of reactors tied to specific user events and behaviours, such as making a purchase.

Relying too heavily on **non-specific manual adjustments** can indicate an issue in the overall program design.
{% endhint %}

#### To manually adjust a user's points balance using the Loyalty Console:

1. Navigate to the user's profile in the Loyalty Console and select the **Wallet** tab
2. Press **Adjust Points**
3. Enter a points value, as a positive or negative (i.e. enter **20** to award 20 points or **-20** to deduct 20 points)
4. Optionally, add a comment to explain why the adjustment is being made.
5. Press **Save**
6. The user's points balance will be adjusted and a `POINTS_ADJUSTED` event will be recorded in their event stream with the comment stored in the payload

***

## Using the API

Since the `POINTS_ADJUSTED` event type used by the “Adjust Points” function in the Loyalty Console is an intrinsic event type, you cannot directly report it to the Loyalty Engine to adjust a user’s points balance via API.

Instead, manual points adjustments through the API require the creation of a custom event type.

{% hint style="warning" %}
**Manual or non-specific points adjustments should only be made on a limited, ad-hoc basis.**&#x20;

In a well-designed and properly implemented loyalty program, points adjustments should occur as a result of reactors tied to specific user events and behaviours, such as making a purchase.

Relying too heavily on reporting **non-specific event types** for adjusting a user's points balance, **whether manually or systematically**, can indicate an issue in the overall program design or understanding of the WLL platform.
{% endhint %}

#### To manually adjust a user’s points balance via the API:

1. **Create a custom** [**event type**](/product/loyalty-engine/events/event-types.md)**:** Define an event type such as `MANUAL_ADJUSTMENT`, and include a payload schema with a property called `points`.
2. **Set up a** [**reactor**](/product/loyalty-engine/reactors.md)**:** Create a reactor triggered by the `MANUAL_ADJUSTMENT` event, and configure it with an [Adjust Points reaction](/product/loyalty-engine/reactors/reactions.md#adjust-points). This reaction should adjust the user’s points balance by the value of the `points` property multiplied by 1.
3. [**Report the event**](https://docs.whitelabel-loyalty.com/rewards.html#events-events-collection-post)**:** Use the API to report the `MANUAL_ADJUSTMENT` event against the user whose balance you want to adjust, specifying the number of points to adjust in the points property of the event payload.

***

## Considerations

* **Adding points:** A positive adjustment will be treated as points earned, affecting both the current balance and lifetime earn.
* **Deducting points:** A negative adjustment will be treated as points spent, affecting only the current balance. Lifetime earn is never reduced.
* **Irreversible changes:** Points adjustments cannot be reversed or cancelled once saved. If you need to undo a change, make another adjustment for the opposite amount.
* **Event stream:** Every points adjustment will generate an event in the user’s event stream, which will be visible to the user if your loyalty program end-user interface has an activity log.
* **Points liability impact:** See [Points earn, spend & balance caps](/product/loyalty-engine/rewards-and-points/points/points-earn-spend-and-balance-caps.md#manual-points-adjustments-and-caps).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://kbase.whitelabel-loyalty.com/product/loyalty-engine/users/user-tutorials/adjust-a-users-points-balance.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
