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

# Missing Columns, Filters & Views

> Why a Portal column, filter, tab or edit button you read about is not on your screen: which elements are contract-derived, which only appear when data exists, which analytics view you get and why, why a time interval is greyed out, and why a notification URL was rejected.

The single most common Portal support question is a variant of "the documentation mentions a column
I do not have". Almost always the element is conditional, and this page lists the conditions.

For what the dashboards actually count, see
[Portal Dashboards & Analytics](/docs/en/support/portal-analytics-faq) and
[Home Dashboard](/docs/en/support/portal-dashboard-faq). For who can see which module at all, see
[Merchant Portal Operations](/docs/en/support/portal-operations-faq).

## Why is a column or screen missing for me?

There are four different reasons, and the fix differs for each:

| Reason | How to recognise it | What to do |
| - | - | - |
| **Permission** | Colleagues on a different role see it; the module or button is absent for you | Ask an administrator on your account — see [Merchant Portal Operations](/docs/en/support/portal-operations-faq) |
| **Contract-derived** | The element depends on what you are contracted for — product tabs, subscription-only columns | Nothing to configure; it appears if the contract covers it |
| **Data-conditional** | The column only renders when at least one row on the page has a value for it | Nothing to configure; it appears when such data exists |
| **Environment** | Present in production, restricted in sandbox, or the reverse | Check which environment you are signed in to |

Known data-conditional elements: the `User Fee` and `Mini Apps Info` columns on
[Service → Payin](/docs/en/support/payin-agreements-and-limits-faq), and the `Initiation Type` column on
the payment list — see
[Transaction & Refund Field Reference](/docs/en/support/transaction-field-reference-faq).

## Why does my payment list have a Sub Merchant Id column when my colleague's does not?

Because the column is only rendered for accounts that operate sub-merchants. Where your account has
none, `Sub Merchant Id` is absent from the payment list entirely rather than showing a column of
dashes.

If you expect it and do not have it, the question is whether your account is set up with
sub-merchants at all — not a Portal setting. The same applies in reverse: a colleague signed in
against a different merchant account can legitimately see a different column set from yours.

## Which product tabs do I get on Payments Analytics?

Tabs are derived from the products your account is signed for:

| Your products | Tabs shown |
| - | - |
| Anything other than subscriptions | `One-time Payment` |
| Subscriptions | `Subscription` |
| Both | Both tabs |
| Only one of the two | **No tab bar at all** — the screen shows that product directly |

So an absent tab bar is not a fault; it means there is only one product to look at. You cannot add a
tab from the Portal — it follows the contract.

## Why do I get a funnel instead of a table (or the other way round)?

The view follows how many payment methods you selected:

| Payment method filter | View |
| - | - |
| Empty, or a single payment method | **Funnel** — the conversion steps for that selection |
| **Two or more** payment methods | **Table** — one row per payment method, so they can be compared |

That is the whole rule. If you want the funnel back, reduce the payment method selection to one or
clear it; if you want the comparison table, select at least two.

## Which time intervals can I choose, and why is one greyed out?

The available granularity depends on the length of the date range you picked. The range is never
restricted — the interval list is:

| Interval | Allowed date span |
| - | - |
| `Half-hourly` | Exactly 1 day |
| `One-hourly` | 1 to 7 days |
| `Daily` | 1 day and up, no ceiling |
| `Weekly` | 8 days and up |

A disabled option carries a tooltip explaining exactly what to change:

| Interval | Tooltip |
| - | - |
| `Half-hourly` | "Not available for ranges over 1 day. Narrow the date range to use "Half-hourly"." |
| `One-hourly` | "Not available for ranges over 7 days. Narrow the date range to use "One-hourly"." |
| `Weekly` | "Not available for ranges under 8 days. Widen the date range to use "Weekly"." |
| `Daily` | ""Daily" is not available for the current date range." |

Changing the date range **resets** the interval rather than leaving an invalid one selected: a
single-day range resets to `Half-hourly`, anything longer resets to `Daily`. So if your interval
changed by itself after picking new dates, that is why — set it again after the date change, not
before.

## What date range does Payments Analytics start with?

The **last 30 days**, with `Daily` granularity. Both are editable; the range picker imposes no
maximum span of its own, and days are not greyed out.

Very wide ranges at fine granularity are constrained by the chart's own rendering rather than by a
hard limit, so a long range with `Daily` is legitimate — expect the chart to compress rather than
refuse.

## Why does Payments Analytics warn me about freshness?

The screen carries a standing notice that data is refreshed on a short interval and that
transactions completed recently may not yet be reflected in the current view.

Take it literally: a payment taken a minute ago may be absent from analytics while being fully
visible on the transaction list. The transaction list is the source of truth for whether an
individual payment exists; analytics is an aggregation over it.

The Home dashboard has its own, different freshness model — see
[Home Dashboard](/docs/en/support/portal-dashboard-faq).

## Can I split subscription conversion into first payment and renewals?

Yes, on the `Subscription` tab only. A three-way selector appears:

| Option | Scope |
| - | - |
| `All` | Every subscription payment |
| `First Period` | Only the initial payment of a subscription |
| `Renewal` | Only subsequent renewal charges |

The selector is not rendered on the `One-time Payment` tab, because the distinction does not exist
there. Switching tabs resets the selection to `All`.

This split is often the answer to "our conversion looks worse than we expect" — first payments and
renewals convert quite differently, and `All` blends them.

## Why did my payment-method filters clear when I changed country?

Because payment method availability depends on country, so a country change invalidates the
narrower selections. Changing `Country/Region` clears both `Payment method type` and
`Payment method` and reloads the options for the new selection.

The same cascade runs one level further down: changing `Payment method type` clears
`Payment method`.

Set the filters top-down — country, then type, then method — and nothing will be cleared under you.

## Why is the payment-method-type filter disabled?

Because there are no options to offer for the countries currently selected. The filter is disabled
rather than shown empty, which distinguishes "nothing matches your country selection" from
"everything matches".

Widen or clear `Country/Region` and the options reappear. The payment method list is also filtered
by what your account is contracted for, so it will never offer a method you cannot transact on.

## Why is there no currency filter on Payments Analytics?

There is not one on this screen. Its filters are `Country/Region`, the date range, the interval,
`Payment method type` and `Payment method`, plus the product tabs and — on subscriptions — the stage
selector.

If you need a currency view, work from the transaction list or the exports, where currency is
carried per record. See [Exports & Report Downloads](/docs/en/support/export-center-faq).

## Why can't I edit the Tokenization Notify URL in sandbox?

Because that one control is restricted to production. The three notification URLs behave
differently:

| Notification URL | Editable in sandbox |
| - | - |
| Refund Notify URL | Yes |
| Chargeback Notify URL | Yes |
| Tokenization Notify URL | **No** — production only |

The URLs are per API operation type row on **Settings → Integration**, so a merchant holding several
of `Payin`, `Payout`, `Payin & Payout`, `Withdraw` and `Client` configures them per row rather than
once. Where a row has no URL set, the cell shows `-`.

Where to find the page and how the URLs relate to your API keys is covered in
[Portal Self-Service Security Configuration](/docs/en/support/portal-security-config-faq).

## Why was my notification URL rejected when I saved it?

The dialog validates the URL before it will let you save, and shows exactly one message:

> "Invalid URL: must start with http\:// or https\:// and be a valid address."

The check requires all of the following:

| Requirement | Detail |
| - | - |
| Scheme | Must begin `http://` or `https://` — no other scheme, and the scheme cannot be omitted |
| Host | A valid host name; labels may contain letters, digits and hyphens |
| Port | Optional, numeric, up to five digits |
| Path and query | Optional, and restricted to characters legal in a URL |
| Whitespace | Not permitted anywhere, including a trailing space — a common cause of a URL that "looks fine" |
| Non-ASCII | Not permitted; an internationalised domain must be supplied in its ASCII form |

Length caps differ by URL:

| URL | Maximum length |
| - | - |
| Refund Notify URL | 512 characters |
| Chargeback Notify URL | 512 characters |
| Tokenization Notify URL | 2,048 characters |

The dialog shows a live character counter against the applicable cap, and stops accepting input at
it — so a truncated URL means you hit the cap rather than the field misbehaving.

**To remove a configured URL, clear the field and save.** The dialog states this ("leave blank to
remove"), and a blank value is accepted without triggering the validation error. Saving takes effect
without an approval step.

## Where can I filter by settlement status?

On the **Disputes** list, where settlement status is both a column and a filter. The payments list
does not carry it — see
[Transaction & Refund Field Reference](/docs/en/support/transaction-field-reference-faq).

For settlement figures at the transaction level, work from the settlement reports:
[Settlement reports](/docs/en/support/settlement-reports-faq).

## Why do numbers on analytics not match the transaction list exactly?

Three structural reasons, all expected:

| Reason | Effect |
| - | - |
| Refresh interval | Analytics runs a few minutes behind, as its own notice says |
| Aggregation window | Analytics buckets by your chosen interval; a bucket boundary will not align with an arbitrary list filter |
| Filter scope | The analytics filters and the list filters are not the same set — analytics has no currency filter, the list has no interval |

For a figure you intend to reconcile against, export from the transaction list rather than reading
it off a chart. Metric definitions are in
[Portal Dashboards & Analytics](/docs/en/support/portal-analytics-faq).


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