Categorize crypto/bank transactions with optional invoice matching and label int
Categorize crypto/bank transactions with optional invoice matching and label interpretation
Answeringour last check, 2026-10-19
1 of 1checks answered this week
1435 msmedian answer time
$0.1listed price per call
$0.1price it asked us
Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.
Endpoint
POST https://crypto-tx-categorizer-production.up.railway.app/api/v1/categorize
| Category | Market data |
|---|---|
| Provider host | crypto-tx-categorizer-production.up.railway.app |
| Networks | eip155:8453 |
| Payment schemes | exact |
| Self-reported calls, 30 days | 1 from 1 payers (the provider's figure, not ours) |
Our checks, last 30 days
| Day | Result | HTTP | Asked | Time |
|---|---|---|---|---|
| 2026-10-19 | valid payment request | 402 | $0.1 | 1435 ms |
Example input (from the provider)
{
"body": {
"invoices": [
{
"amount": 500,
"client": "Acme Corp",
"issuedDate": "2026-09-25"
}
],
"knownLabels": {
"Figma": "Figma (software)"
},
"transactions": [
{
"amount": 500,
"asset": "USDC",
"counterparty": "Acme Corp",
"direction": "in",
"hash": "0xabc1",
"timestamp": "2026-10-01T09:30:00Z"
},
{
"amount": 15,
"asset": "USDC",
"counterparty": "Figma",
"direction": "out",
"hash": "0xabc2",
"timestamp": "2026-10-02T14:05:00Z"
}
]
},
"bodyType": "json",
"method": "POST",
"type": "http"
}
Promised output schema (from the provider)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"body": {
"properties": {
"invoices": {
"description": "Optional. Expected invoices to match against incoming payments.",
"items": {
"properties": {
"amount": {
"exclusiveMinimum": 0,
"type": "number"
},
"asset": {
"description": "Optional. If omitted, the invoice matches any dollar-equivalent asset (USD, USDC, USDT, DAI).",
"maxLength": 20,
"minLength": 1,
"type": "string"
},
"client": {
"description": "Client name, matched against the counterparty.",
"maxLength": 120,
"minLength": 1,
"type": "string"
},
"issuedDate": {
"description": "Optional ISO date; payments before it are not matched.",
"type": "string"
}
},
"required": [
"client",
"amount"
],
"type": "object"
},
"maxItems": 100,
"type": "array"
},
"knownLabels": {
"additionalProperties": {
"maxLength": 120,
"minLength": 1,
"type": "string"
},
"description": "Optional. Counterparty -> label (e.g. \"Acme Corp (client)\"); labels are interpreted by keyword and direction.",
"maxProperties": 100,
"type": "object"
},
"ownWallets": {
"description": "Optional. Transfers to/from these are categorized as Internal transfer.",
"items": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"maxItems": 50,
"type": "array"
},
"transactions": {
"items": {
"properties": {
"amount": {
"description": "Positive amount in the transaction's asset.",
"exclusiveMinimum": 0,
"type": "number"
},
"asset": {
"description": "Currency or token symbol, e.g. USDC, ETH, USD.",
"maxLength": 20,
"minLength": 1,
"type": "string"
},
"counterparty": {
"description": "Who the money came from / went to (address, name or description).",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"direction": {
"description": "Money in (income) or out (expense) from the account owner's point of view.",
"enum": [
"in",
"out"
],
"type": "string"
},
"hash": {
"description": "Your own unique id for the transaction (e.g. a tx hash or bank reference).",
"maxLength": 120,
"minLength": 1,
"type": "string"
},
"isSelf": {
"description": "Optional. Set true when you already know this is a transfer between your own accounts.",
"type": "boolean"
},
"timestamp": {
"description": "ISO 8601 date-time.",
"type": "string"
}
},
"required": [
"hash",
"timestamp",
"direction",
"counterparty",
"amount",
"asset"
],
"type": "object"
},
"maxItems": 150,
"minItems": 1,
"type": "array"
}
},
"required": [
"transactions"
],
"type": "object"
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
},
"method": {
"enum": [
"POST"
],
"type": "string"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method",
"bodyType",
"body"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"properties": {
"summary": {
"properties": {
"byCategory": {
"additionalProperties": {
"type": "integer"
},
"type": "object"
},
"transactionCount": {
"type": "integer"
}
},
"required": [
"transactionCount",
"byCategory"
],
"type": "object"
},
"transactions": {
"items": {
"properties": {
"amount": {
"description": "Positive amount in the transaction's asset.",
"exclusiveMinimum": 0,
"type": "number"
},
"asset": {
"description": "Currency or token symbol, e.g. USDC,