GET
Admin cross-user mandate list for the dashboard Payments area (Mandates tab). Unlike [`list_user_mandates`], `user_id` is an optional query filter rather than a path label. Admin / readonly-admin gated.

Query Parameters

statuses
string | null
user_id
null | string

A validated 12-digit numeric user identifier.

Every external entry point validates:

  • JSON Deserialize runs [UserId::parse] (outer whitespace trimmed, length and digit-only enforced) via #[serde(try_from = "String")].
  • DB FromSql runs [UserId::parse] on every row read.

Display / Deref<Target = str> / AsRef<str> / Into<String> are derived via derive_more — the inner String is pass-through for every read-only borrow, display, and move-out.

Example:

"012345678901"

frequency
string | null
sort
null | object

Sort specification for list endpoints. Read the field names as "sort on <column> by <direction>".

time_range
null | object

A half-open time range, with a mandatory start and an optional end. Designed to be embedded in list/filter query params via #[serde(flatten)].

Deserialize runs [TimeRange::validate] as part of deserialization, so callers never receive a [TimeRange] that violates start_time <= end_time.

limit
integer<int32> | null
offset
integer<int32> | null

Response

Cross-user mandate list (most-recent first)

data
object[]
required
limit
integer<int32>
required
offset
integer<int32>
required
total
integer<int64>
required