# Managing Unit Transfers

## Overview

The **Managing Unit Transfers** page lets you take actions on existing unit transfers — whether they were generated by the system or created manually — and inspect detailed history for audit or correction purposes.\
From here, you can cancel, expire, block, or update information attached to unit transfers.

***

## What you can do

From this view or the member’s wallet view, you can:

* **Activate a pending transfer** — make a pending transfer live before its scheduled time
* **Cancel a transfer** — reverse its impact, if possible
* **Expire a transfer** — mark it as expired early when an expiration date exists
* **Block units** — reserve units without deducting balance
* **Unblock units** — cancel a blocked transfer
* **Edit custom attributes** — add or update metadata attached to the transfer
* **Show details** — view complete audit information
* **Run bulk actions** — apply activate, cancel, or expire actions to all filtered transfers

***

### Activate pending transfers

Some unit transfers are created in a **pending** state — meaning they are scheduled and not yet applied to a member’s available balance.

* Pending transfers appear with **Pending: Yes** in the list.
* **Pending transfers do not affect available balance** until activated.
* You can activate a pending transfer manually via the **⋯ (more)** menu when needed.

To activate a pending transfer:

{% stepper %}
{% step %}
**Find the pending transfer**

In the list, look for transfers with **Pending: Yes**.
{% endstep %}

{% step %}
**Open actions**

Open the **⋯ (more)** menu for the transfer.

<figure><img src="https://2658975168-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcNVX03KZzmrGwJihLiEx%2Fuploads%2FfNPxtgCZvrAiNccGRIuM%2Fimage.png?alt=media&#x26;token=264b1ecc-9fe1-4f81-8ca7-6bf8f87aff86" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
**Activate**

Click **Activate**.
{% endstep %}

{% step %}
**Confirm**

Confirm the action.
{% endstep %}
{% endstepper %}

Activating a transfer makes the units available immediately, overriding the scheduled activation.

This is useful when you need to apply transfers sooner than originally planned.

***

### Cancel a transfer

Canceling removes the effect of a transfer **only if the member still has enough units available to reverse it**.

To cancel a transfer:

{% stepper %}
{% step %}
**Find the transfer**

Locate the transfer in the list.
{% endstep %}

{% step %}
**Open actions**

Open the **⋯ (more)** menu for that row.
{% endstep %}

{% step %}
**Cancel**

Select **Cancel**.

<figure><img src="https://2658975168-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcNVX03KZzmrGwJihLiEx%2Fuploads%2FYbQymqNMEgRosQKH0w5l%2Fimage.png?alt=media&#x26;token=c9f5866b-1cb7-4892-92b2-c71c060d4b80" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
**Confirm**

Confirm the action.

<figure><img src="https://2658975168-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcNVX03KZzmrGwJihLiEx%2Fuploads%2F9AvJTEqwLurApQOKMFly%2Fimage.png?alt=media&#x26;token=ab894aaf-f701-4fbc-8385-d3b6b15216af" alt=""><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}

{% hint style="warning" %}
**Note:** If a transfer has already been **partially spent or used**, and the wallet doesn’t have sufficient free units to reverse it fully, **cancellation may fail**. The system prevents cancellation in such cases to maintain correct balances.
{% endhint %}

***

### Expire a transfer

Use this when a transfer has an **Expires on** date and is still active.

{% stepper %}
{% step %}
**Find the transfer**

Locate an active transfer with an **Expires on** date.
{% endstep %}

{% step %}
**Open actions**

Open the **⋯ (more)** menu.
{% endstep %}

{% step %}
**Expire**

Click **Expire**.

<figure><img src="https://2658975168-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcNVX03KZzmrGwJihLiEx%2Fuploads%2F4QbUstDx4lEtKPogqyCK%2Fimage.png?alt=media&#x26;token=17a5fb81-f2e3-4fc5-ae96-cdce199af6fb" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
**Confirm**

Confirm the action.

<figure><img src="https://2658975168-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcNVX03KZzmrGwJihLiEx%2Fuploads%2FrI9U0BWhnPUFQCe4HvbQ%2Fimage.png?alt=media&#x26;token=aa31c2ed-8f14-4dab-b144-b66d5fe99ede" alt=""><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}

Expired transfers no longer influence available wallet units.

***

### Block and unblock units

**Block units** to reserve them (they remain in the balance but cannot be spent).

#### Block units

{% stepper %}
{% step %}
**Open Unit transfers or a member wallet**

Go to *Unit transfers* or open a specific member’s wallet view.
{% endstep %}

{% step %}
**Start blocking**

Open **Actions** and choose **Block units**.

<figure><img src="https://2658975168-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcNVX03KZzmrGwJihLiEx%2Fuploads%2FQyiYeghlPpS0Tl8jByMl%2Fimage.png?alt=media&#x26;token=0a5ed7b2-589c-45e6-8145-aefff012260b" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
**Fill in details**

Enter the member, wallet, and amount.

<figure><img src="https://2658975168-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcNVX03KZzmrGwJihLiEx%2Fuploads%2FcMWa5QlGT9EasDU4iDAd%2Fimage.png?alt=media&#x26;token=ed18c816-31b8-40e8-b037-969174f9be5d" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
**Confirm**

Confirm the action.
{% endstep %}
{% endstepper %}

#### Unblock units

To **unblock units**, cancel the blocked transfer.

{% stepper %}
{% step %}
**Find the blocked transfer**

Locate a transfer with type/state **blocked**.
{% endstep %}

{% step %}
**Cancel the block**

Open the **⋯ (more)** menu and select **Cancel**.
{% endstep %}

{% step %}
**Confirm**

Confirm the action.
{% endstep %}
{% endstepper %}

***

### Edit custom attributes

**Custom attributes** let you attach extra metadata to a unit transfer — like reasons, external references, or internal tags — without affecting core fields.

To edit custom attributes:

{% stepper %}
{% step %}
**Find the transfer**

Select the unit transfer in the list.
{% endstep %}

{% step %}
**Open actions**

Open the **⋯ (more)** menu.
{% endstep %}

{% step %}
**Edit custom attributes**

Choose **Edit custom attributes**.

<figure><img src="https://2658975168-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcNVX03KZzmrGwJihLiEx%2Fuploads%2FHJwJEttXL36pnIqCiTlo%2Fimage.png?alt=media&#x26;token=1bcf6820-4207-44f2-912a-4f1b162d34ed" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
**Update key-value pairs**

Add or update attributes (for example `reason: "data correction"` or `sourceSystem: "CRM"`).

<figure><img src="https://2658975168-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcNVX03KZzmrGwJihLiEx%2Fuploads%2FzVeeFYxjcHfFrtxclIaT%2Fimage.png?alt=media&#x26;token=6c47dab2-4c2e-4de3-b63f-5fdc47e0a813" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
**Save**

Save your changes.
{% endstep %}
{% endstepper %}

Custom attributes are useful for tracking business context, reporting insights, or external integrations.

***

### Bulk actions

You can apply operations to multiple transfers at once using the **Actions** menu at the top of the list:

{% stepper %}
{% step %}
**Filter the list**

Filter the list to the transfers you want to affect.
{% endstep %}

{% step %}
**Run an action**

Click **Actions** and choose one of:

* **Activate filtered transfers**
* **Cancel filtered transfers**
* **Expire filtered transfers**

<figure><img src="https://2658975168-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcNVX03KZzmrGwJihLiEx%2Fuploads%2FCOSv6HK6XvUogZHB6n0x%2Fimage.png?alt=media&#x26;token=0231dd27-eda4-4de7-b51d-a80ec533ca13" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
**Confirm**

Provide additional comment, and confirm the action.

<figure><img src="https://2658975168-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcNVX03KZzmrGwJihLiEx%2Fuploads%2Fk1haAdG8x413CYm9fdBN%2Fimage.png?alt=media&#x26;token=0a28f499-57d5-434e-998f-07e549553b14" alt=""><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}

You can track these bulk actions in the **Mass actions log** under *Imports/Exports*.

***

## Unit transfer types and states

Common types you’ll see in the list include:

* `adding` — units added
* `spending` — units spent
* `blocked` — units reserved
* `expired` — units that have expired
* `p2p_adding` / `p2p_spending` — peer-to-peer moves

Understanding the type helps interpret the event and decide which action (like cancel or expire) is appropriate.

***

## Tips

* When editing custom attributes, use clear key names and descriptive values for easier reporting and audit trails.
* Always filter before running bulk actions to avoid unintended changes.
* If cancellation fails, check whether the member’s wallet still has enough available units to cover the reversal.
