Skip to main content
GET
/
v0
/
transactions
/
List user transactions
curl --request GET \
  --url https://api.sumvin.com/v0/transactions/ \
  --header 'x-sumvin-pint-token: <api-key>'
{
  "_links": {
    "first": {
      "href": "/v0/transactions?offset=0&limit=20"
    },
    "self": {
      "href": "/v0/transactions?offset=0&limit=20"
    }
  },
  "limit": 20,
  "offset": 0,
  "total": 1,
  "transactions": [
    {
      "amount": "42.50",
      "asset": {
        "asset_type": "fiat",
        "decimals": 2,
        "name": "US Dollar",
        "symbol": "USD"
      },
      "category": "groceries",
      "created_at": 1704067200000,
      "direction": "out",
      "id": "txn_a1b2c3d4e5f6",
      "merchant_name": "Whole Foods Market",
      "source": "card",
      "status": "completed",
      "type": "card_purchase",
      "updated_at": 1704067200000
    }
  ]
}

Authorizations

x-sumvin-pint-token
string
header
required

PINT (Purchase Intent) token — a JWT issued via POST /v0/sis/token/pint that encodes user-level consent for a specific scope. Sent in the x-sumvin-pint-token header alongside or instead of an x-juno-jwt JWT, depending on the integration surface (Platform vs SIS).

Headers

x-juno-orgid
string | null

Tenant org ID for multi-tenant auth

x-sumvin-token
string | null
x-sumvin-pat
string | null
x-juno-jwt
string | null
x-sumvin-pint-token
string | null
X-Timestamp-Format
string

Controls how timestamp fields are serialized in JSON response bodies.

Default (header omitted or any other value): epoch milliseconds as integers. iso8601: UTC ISO 8601 strings of the form YYYY-MM-DDTHH:MM:SSZ.

Example: with X-Timestamp-Format: iso8601, the field value 1704067200000 becomes "2024-01-01T00:00:00Z".

Affected fields (recursively, in dicts and arrays): any field whose name ends in _at, plus the literal field names timestamp, period_start, and period_end. All other fields are passed through unchanged.

Only iso8601 is recognized. Any other value (or omitting the header) yields the default epoch-ms representation; the server does not reject unknown values, so this is documented as an example rather than an enum to keep generated clients permissive.

Example:

"iso8601"

Query Parameters

source
enum<string> | null

Filter by transaction source Origin system for a transaction. Used to filter transactions by funding source.

  • crypto_wallet - On-chain transaction from user's EOA or Safe wallet
  • bank_account - ACH/wire transfer from linked bank account
  • card - Debit card purchase or refund
Available options:
crypto_wallet,
bank_account,
card
account_id
string | null

Filter by account ID

wallet_id
string | null

Filter by wallet id

card_id
string | null

Filter by card id

type
enum<string> | null

Filter by transaction type Classification of financial transaction types.

Crypto/Wallet transactions:

  • deposit - Incoming transfer to user's wallet from external source
  • withdrawal - Outgoing transfer from user's wallet to external address
  • transfer - Internal movement between user's own wallets
  • swap - Token exchange (e.g., ETH → USDC)
  • on_ramp - Fiat-to-crypto conversion via exchange/provider
  • off_ramp - Crypto-to-fiat conversion via exchange/provider

Card transactions:

  • card_purchase - Debit card spend at merchant
  • card_refund - Merchant-initiated refund to card

Bank account transactions:

  • bank_transfer - ACH/wire transfer between accounts
  • direct_debit - Recurring automated payment (bills, subscriptions)
  • standing_order - Scheduled fixed payment
  • bank_payment - One-time outgoing payment
  • bank_refund - Return of funds to bank account
  • interest - Interest credit on savings/checking account
  • fee - Bank service charge or maintenance fee
Available options:
deposit,
withdrawal,
transfer,
swap,
card_purchase,
card_refund,
on_ramp,
off_ramp,
bank_transfer,
direct_debit,
standing_order,
bank_payment,
bank_refund,
interest,
fee
status
enum<string> | null

Filter by transaction status Lifecycle state of a transaction.

State progression: pendingprocessingcompleted | failed | cancelled

  • pending - Transaction created but not yet submitted for processing
  • processing - Submitted to network/provider, awaiting confirmation
  • completed - Successfully finalized (on-chain confirmed or bank settled)
  • failed - Transaction rejected or reverted (check error details)
  • cancelled - User or system cancelled before completion
Available options:
pending,
processing,
completed,
failed,
cancelled
direction
enum<string> | null

Filter by transaction direction Direction of fund flow relative to user's account.

  • in - Funds entering user's account (credits, deposits, refunds)
  • out - Funds leaving user's account (debits, payments, withdrawals)
Available options:
in,
out
category
string | null

Filter by category. Comma-separated for OR logic (e.g., 'groceries,restaurants,coffee')

merchant_name
string | null

Filter by merchant name (case-insensitive partial match)

merchant_category_code
string | null

Filter by merchant category code (4-digit MCC)

amount_min

Filter transactions with amount >= this value

amount_max

Filter transactions with amount <= this value

from_date
string | null

Filter transactions on or after this date. Accepts epoch ms or YYYY-MM-DD

to_date
string | null

Filter transactions on or before this date. Accepts epoch ms or YYYY-MM-DD

offset
integer
default:0

Pagination offset

Required range: x >= 0
limit
integer
default:50

Pagination limit

Required range: 1 <= x <= 100
meta
boolean
default:false

Include meta statistics about returned transactions

Response

Transactions retrieved successfully

Paginated list of transactions with optional metadata.

HAL-style hypermedia links for navigation.

transactions
TransactionData · object[]
required

List of transactions

total
integer
required

Total number of transactions matching filters

offset
integer
required

Current pagination offset

limit
integer
required

Maximum results per page

meta
TransactionMeta · object

Aggregate statistics (only present when meta=true)