Skip to main content
GET
/
v0
/
transactions
/
{transaction_id}
Get transaction details
curl --request GET \
  --url https://api.sumvin.com/v0/transactions/{transaction_id} \
  --header 'x-sumvin-pint-token: <api-key>'
{
  "_links": {
    "self": {
      "href": "/v0/transactions/txn_a1b2c3d4e5f6"
    }
  },
  "amount": "42.50",
  "asset": {
    "asset_type": "fiat",
    "decimals": 2,
    "name": "US Dollar",
    "symbol": "USD"
  },
  "card": {
    "brand": "visa",
    "card_type": "debit",
    "last_four": "4242"
  },
  "category": "groceries",
  "created_at": 1704067200000,
  "direction": "out",
  "has_receipt": false,
  "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"

Path Parameters

transaction_id
string
required

Response

Transaction retrieved successfully

Detailed transaction response with full entity data.

HAL-style hypermedia links for navigation.

id
string
required

Unique transaction identifier

type
string
required

Transaction type (deposit, withdrawal, card_purchase, etc.)

status
string
required

Transaction status (pending, processing, completed, failed)

direction
string
required

Fund flow direction relative to user (in, out)

amount
string
required

Transaction amount in asset's base units

Pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
created_at
integer
required

Transaction creation timestamp (epoch ms)

updated_at
integer
required

Last update timestamp (epoch ms)

source
string | null

Funding source (crypto_wallet, bank_account, card)

asset
AssetData · object

Asset involved in the transaction, when known

wallet
WalletDataBase · object

Wallet for crypto transactions

account
AccountData · object

Bank account for bank transactions

card
CardData · object

Card for card transactions

tx_hash
string | null

On-chain transaction hash (crypto only)

merchant_name
string | null

Merchant name (card/bank transactions)

merchant_logo_url
string | null
merchant_category_code
string | null

4-digit ISO 18245 merchant category code

category
string | null

Spending category (restaurants, groceries, etc.)

processor_reference
string | null

External processor transaction reference

has_receipt
boolean
default:false

Whether this transaction has an attached receipt