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

# User Flow

> Deep dive into the payments portal user experience

# Workflow

Users can:

1. View their current balance and transaction history
2. Link a UK bank account for withdrawals
3. Withdraw their rewards balance

## View current balance and transaction history

<img src="https://mintcdn.com/fascinating-teal-alpaca/qtjZjNSq83PwXxGM/images/payments/payments.png?fit=max&auto=format&n=qtjZjNSq83PwXxGM&q=85&s=10ab5032df62841f23d5d90821cdbb7c" alt="Screenshot of payments portal" width="636" height="664" data-path="images/payments/payments.png" />

Transactions can be hidden via the `hide_transactions` parameter when generating the payments portal URL - see [Integration](./integration#when-to-hide-transactions).

## Bank account linking

<img src="https://mintcdn.com/fascinating-teal-alpaca/qtjZjNSq83PwXxGM/images/payments/bank-link-1.png?fit=max&auto=format&n=qtjZjNSq83PwXxGM&q=85&s=e242df09104f2592d114b5252f2bed1d" alt="Bank account linkage" width="822" height="789" data-path="images/payments/bank-link-1.png" />

<Steps>
  <Step title="Optional 2FA">
    If 2FA is enabled, users must first complete two-factor authentication before linking a bank account

    <img src="https://mintcdn.com/fascinating-teal-alpaca/qtjZjNSq83PwXxGM/images/payments/2fa.png?fit=max&auto=format&n=qtjZjNSq83PwXxGM&q=85&s=a00de21aad678142ea8efdd67679f1d6" alt="Bank account linkage" width="809" height="624" data-path="images/payments/2fa.png" />
  </Step>

  <Step title="Enter bank details and account holder name">
    <img src="https://mintcdn.com/fascinating-teal-alpaca/qtjZjNSq83PwXxGM/images/payments/account-details.png?fit=max&auto=format&n=qtjZjNSq83PwXxGM&q=85&s=cb47463bb2bf7d3695a305fc5a2d10e8" alt="Bank account linkage" width="805" height="841" data-path="images/payments/account-details.png" />

    User enters their bank details (sort code, account number)
  </Step>

  <Step title="CoP verification">
    Axle performs Confirmation of Payee (CoP) verification
  </Step>

  <Step title="Review result">
    <img src="https://mintcdn.com/fascinating-teal-alpaca/qtjZjNSq83PwXxGM/images/payments/bank-details-confirmed.png?fit=max&auto=format&n=qtjZjNSq83PwXxGM&q=85&s=21cb977abd6006b1a9013b019af40216" alt="Bank account linkage" width="808" height="754" data-path="images/payments/bank-details-confirmed.png" />

    User reviews the verification result
  </Step>

  <Step title="Confirm setup">
    User must click "Confirm" to complete setup
  </Step>
</Steps>

### Confirmation of Payee (CoP)

CoP is a UK banking verification service that checks the provided name against the bank's records.

**Match States**:

| State         | Description                                          | User Action                  |
| ------------- | ---------------------------------------------------- | ---------------------------- |
| Full Match    | Name matches bank records exactly                    | Proceed with confidence      |
| Partial Match | Name partially matches (e.g., nickname vs full name) | User can confirm if correct  |
| Mismatch      | Name does not match bank records                     | User should verify details   |
| Unavailable   | Bank doesn't support CoP verification                | User can proceed at own risk |

## Withdrawals

### How withdrawals work

<img src="https://mintcdn.com/fascinating-teal-alpaca/qtjZjNSq83PwXxGM/images/payments/withdrawal-request.png?fit=max&auto=format&n=qtjZjNSq83PwXxGM&q=85&s=637e06e8d584aeaad5d2fada183d378b" alt="Withdrawal UI" width="842" height="797" data-path="images/payments/withdrawal-request.png" />

1. User clicks "Withdraw" in the payments portal
2. Axle initiates a bank transfer to the linked account
3. Funds typically arrive within 1-2 business days
4. Transaction appears in user's history as a withdrawal

### Withdrawal restrictions

* **Minimum threshold**: Typically £10 (configurable per organisation)
* **Cooldown period**: Some organisations require a waiting period before the first withdrawal (configurable)

### Payment failures

Payments can fail or be returned for various reasons—incorrect account details, closed accounts, or bank-specific restrictions. See [Stripe's documentation on payout failures](https://docs.stripe.com/payouts/failures) for a full breakdown of failure reasons.

When a payment fails or is returned:

1. The withdrawal transaction is reversed (balance restored)
2. The bank account is archived (user must re-link)
3. User receives an email with a link to update their bank details
4. The retry link expires after 48 hours
