statementkit.zenith-ops.workers.dev

Parses a bank statement (CSV from any bank, camt.052/053/054, MT940, OFX/QFX, QIF) into normalized JSON: accounts, balances and signed transactions with ISO dates, counterparty, reference and OCR number. Deterministic, no AI, nothing stored. JSON body up to 1000 KB. Failed calls (4xx/5xx) are not settled.

OtherLiveeip155:8453Exactvia facilitator:payAI
Settlements · 30d
15
No per-endpoint history for this service yet, so this is payments indexed to its PROVIDER's wallet over 30 days.
$1.09
Verified settled volume
15 settlements proven x402 by their on-chain EIP-3009 marker.
$0.0050
Listed price
As published in the catalog. Always read the live 402 before paying.
—
Calls · 30d
Upstream's own call count for this endpoint, not ours.
—
Unique payers · 30d
Never called
—
Upstream on-chain volume
Reported by the source catalog.
Paid to
0x9f950fbeE661D8867750750F600Ff03fb7BAbe8D

The wallet the 402 directs payment to. Its whole payment record — every payer, every chain — is on the merchant page.

Asset 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913

Provider

The payTo wallet does not resolve to a registered ERC-8004 agent. That is not a verdict on the service — most of the catalog is unregistered.

Accepts

The payment requirements as published to the catalog. Read the live 402 before paying — a price here is a claim, not a quote.

0.005USDC≈ $0.005 USD
on Base · exact scheme

Pay 0.005 USDC on Base to 0x9f95…Abe8D. The signed payment is good for 1 minute.

USD Coin contract
0x8335…02913
Payment window
1 minute
As published
5000 smallest units
The catalog’s raw entry
[
  {
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "extra": {
      "name": "USD Coin",
      "version": "2"
    },
    "payTo": "0x9f950fbeE661D8867750750F600Ff03fb7BAbe8D",
    "amount": "5000",
    "scheme": "exact",
    "network": "eip155:8453",
    "maxTimeoutSeconds": 60
  }
]

Extensions

{
  "bazaar": {
    "info": {
      "input": {
        "body": {
          "content": "Bokföringsdatum;Valutadatum;Verifikationsnummer;Text;Belopp;Saldo\n2026-03-02;2026-03-02;5001;Lön Acme AB;32500,00;41200,50\n2026-03-03;2026-03-03;5002;Netflix.com;-129,00;41071,50\n2026-03-05;2026-03-05;5003;ICA Maxi Stockholm;-842,35;40229,15\n2026-03-07;2026-03-07;5004;Vattenfall Eldistribution;-615,40;39613,75",
          "currency": "SEK"
        },
        "type": "http",
        "method": "POST",
        "bodyType": "json"
      },
      "output": {
        "type": "json",
        "example": {
          "meta": {
            "rows": 4,
            "decimal": ",",
            "delimiter": ";",
            "truncated": false,
            "dateFormat": "dmy",
            "detectedColumns": {
              "date": "Bokföringsdatum",
              "amount": "Belopp",
              "balance": "Saldo",
              "reference": "Verifikationsnummer",
              "valueDate": "Valutadatum",
              "description": "Text"
            }
          },
          "format": "csv",
          "accounts": [
            {
              "iban": null,
              "name": null,
              "currency": "SEK",
              "transactions": [
                {
                  "id": "ff1a637e10b6cbbb",
                  "ocr": null,
                  "date": "2026-03-02",
                  "amount": 32500,
                  "currency": "SEK",
                  "direction": "in",
                  "reference": "5001",
                  "valueDate": "2026-03-02",
                  "endToEndId": null,
                  "description": "Lön Acme AB",
                  "balanceAfter": 41200.5,
                  "counterparty": null
                },
                {
                  "id": "3cbcc9a094dcd39a",
                  "ocr": null,
                  "date": "2026-03-03",
                  "amount": -129,
                  "currency": "SEK",
                  "direction": "out",
                  "reference": "5002",
                  "valueDate": "2026-03-03",
                  "endToEndId": null,
                  "description": "Netflix.com",
                  "balanceAfter": 41071.5,
                  "counterparty": null
                },
                {
                  "id": "afaab09a8e366eba",
                  "ocr": null,
                  "date": "2026-03-05",
                  "amount": -842.35,
                  "currency": "SEK",
                  "direction": "out",
                  "reference": "5003",
                  "valueDate": "2026-03-05",
                  "endToEndId": null,
                  "description": "ICA Maxi Stockholm",
                  "balanceAfter": 40229.15,
                  "counterparty": null
                },
                {
                  "id": "470cc2a77723cc1d",
                  "ocr": null,
                  "date": "2026-03-07",
                  "amount": -615.4,
                  "currency": "SEK",
                  "direction": "out",
                  "reference": "5004",
                  "valueDate": "2026-03-07",
                  "endToEndId": null,
                  "description": "Vattenfall Eldistribution",
                  "balanceAfter": 39613.75,
                  "counterparty": null
                }
              ],
              "accountNumber": null,
              "closingBalance": null,
              "openingBalance": null
            }
          ],
          "warnings": []
        }
      }
    },
    "schema": {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "input"
      ],
      "properties": {
        "input": {
          "type": "object",
          "required": [
            "type",
            "method",
            "bodyType",
            "body"
          ],
          "properties": {
            "body": {
              "required": [
                "content"
              ],
              "properties": {
                "format": {
                  "enum": [
                    "csv",
                    "camt",
                    "mt940",
                    "ofx",
                    "qif"
                  ],
                  "type": "string",
                  "description": "Skip auto-detection."
                },
                "columns": {
                  "type": "object",
                  "description": "CSV: map field names (date, amount, description, ...) to exact header names.",
                  "additionalProperties": {
                    "type": "string"
                  }
                },
                "content": {
                  "type": "string",
                  "description": "The statement file as text (UTF-8). PDF and scanned images are not supported."
                },
                "decimal": {
                  "enum": [
                    ",",
                    "."
                  ],
                  "type": "string",
                  "description": "CSV decimal separator override."
                },
                "currency": {
                  "type": "string",
                  "description": "Fallback ISO 4217 currency when the file has none, e.g. SEK."
                },
                "delimiter": {
                  "type": "string",
                  "description": "CSV delimiter override: comma, semicolon, tab or pipe."
                },
                "dateFormat": {
                  "enum": [
                    "ymd",
                    "dmy",
                    "mdy"
                  ],
                  "type": "string",
                  "description": "CSV date order override for ambiguous dates."
                },
                "includeRaw": {
                  "type": "boolean",
                  "description": "Add the raw source fields to every transaction."
                }
              }
            },
            "type": {
              "type": "string",
              "const": "http"
            },
            "method": {
              "enum": [
                "POST"
              ],
              "type": "string"
            },
            "bodyType": {
              "enum": [
                "json",
                "form-data",
                "text"
              ],
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "output": {
          "type": "object",
          "required": [
            "type"
          ],
          "properties": {
            "type": {
              "type": "string"
            },
            "example": {
              "type": "object"
            }
          }
        }
      }
    }
  }
}

Provenance

Seen in the source catalog
2026-10-19 07:32Z
Last indexed by Roundhouse
2026-11-12 04:45Z
Last enriched (probe, favicon, geo)
2026-10-19 15:15Z
x402 version
2
Max timeout
60s
Liveness probe
HTTP 405
Report

Hand this page to an agent

Copy the prompt and paste it into Claude, an MCP client or your own agent — it will vet this service and call it over the free read API. No key, no account.

GET api.roundhouseai.io/v0/endpoints

No per-endpoint history for this service yet, so this is payments indexed to its PROVIDER's wallet over 30 days. Verified volume counts only settlements with an on-chain EIP-3009 marker.

Open skill.md
Show the prompt
Using Roundhouse, look up the x402 service statementkit.zenith-ops.workers.dev and tell me whether it is
worth paying: what a call costs, whether the endpoint answered when last probed, and what
its payment record actually shows.

curl -s 'https://api.roundhouseai.io/v0/endpoints?q=statementkit.zenith-ops.workers.dev'
curl -s 'https://api.roundhouseai.io/v0/merchants/<the payTo wallet returned above>'

Then call it: read the price from the live 402 at https://statementkit.zenith-ops.workers.dev/v1/parse, never from
a cached figure, and pay with an x402 client.

The /v0 API needs an API key (`authorization: Bearer rh_live_…`) on everything except
/v0/unified* and /v0/endpoints. Either pay over x402 (mint a personal key for $0.01 at
GET https://api.roundhouseai.io/v0/test/x402), or ask me for an organization key, which I create at
https://roundhouseai.io/dashboard/connections. If you have neither, ask before going further.

If you do not have Roundhouse tools or skills installed, read
https://roundhouseai.io/skill.md first — it is the whole procedure.