mono-statements-b67882 — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited mono-statements-b67882 (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Fetches transaction history via GET /personal/statement/{account}/{from}/{to}.
0 for the default account.to toward from)X-Token headerConvert desired dates to Unix timestamps in seconds.
# Last 30 days
FROM=$(date -d "30 days ago" +%s)
TO=$(date +%s)
# Specific date range
FROM=$(date -d "2026-03-01" +%s)
TO=$(date -d "2026-03-31 23:59:59" +%s)curl -s "https://api.monobank.ua/personal/statement/{account_id}/${FROM}/${TO}" \
-H "X-Token: YOUR_TOKEN_HERE"Use account ID 0 for the default (primary) account, or a specific account ID from client-info.
The API returns a maximum of 500 transactions per request, sorted newest-first. If you receive exactly 500 transactions:
time field from the last (oldest) transaction in the responsefrom but set to to that timestampid across pages (edge case: multiple transactions at the same timestamp)# Pagination loop pseudocode:
# page1 = fetch(from=START, to=END)
# if len(page1) == 500:
# last_time = page1[-1].time
# page2 = fetch(from=START, to=last_time)
# # continue until len(pageN) < 500Important: Respect the 60-second rate limit between pagination requests. For heavy accounts, fetching a full month may take several minutes.
Each transaction object contains:
| Field | Description |
|---|---|
id | Unique transaction ID |
time | Unix timestamp of transaction |
description | Merchant name or transaction description |
mcc | Merchant Category Code (ISO 18245) |
originalMcc | Original MCC before Monobank override |
hold | true if transaction is still on hold (not settled) |
amount | Transaction amount in minor units (negative = expense, positive = income) |
operationAmount | Amount in the transaction's original currency (minor units) |
currencyCode | ISO 4217 code of the transaction currency |
commissionRate | Commission amount in minor units |
cashbackAmount | Cashback earned in minor units |
balance | Account balance after this transaction (minor units) |
comment | User's comment on the transaction (if any) |
receiptId | Receipt ID for check.gov.ua verification |
invoiceId | Invoice ID (for acquiring transactions) |
counterEdrpou | Counterparty's EDRPOU code (for transfers) |
counterIban | Counterparty's IBAN (for transfers) |
counterName | Counterparty's name |
All amounts are in minor currency units (kopiyky/cents). Divide by 100 for display.
amount = money spent (expense)amount = money received (income)When analyzing transactions for the user:
Use MCC codes to group spending. Common categories:
description, sum amounts, sort by total spenthold: true — these are authorized but not yet settled📊 Statement: 01.03.2026 — 31.03.2026 (UAH account ****1234)
💰 Summary:
Income: +45,000.00 ₴
Expenses: -32,450.75 ₴
Net: +12,549.25 ₴
Cashback: +324.50 ₴
📂 Top categories:
🛒 Groceries: 8,420.00 ₴ (26%)
🍕 Restaurants: 4,150.30 ₴ (13%)
⛽ Fuel: 3,200.00 ₴ (10%)
💊 Pharmacy: 1,850.00 ₴ (6%)
🏪 Top merchants:
1. АТБ-Маркет — 4,250.00 ₴ (18 txns)
2. Сільпо — 2,830.00 ₴ (12 txns)
3. Bolt — 1,920.00 ₴ (8 txns)To get a full picture, fetch client-info first, then iterate over all accounts:
/personal/client-info → get all account IDs/personal/statement/{id}/{from}/{to}When currencyCode differs from the account currency, the operationAmount shows the original amount and amount shows the converted amount charged to the account. The difference reveals the exchange rate applied.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.