Skip to main content

Report Summary

The totals of a time window, beside the same totals for the window just before it: how many transactions, split by type and by status, how much moved per type and currency, and the fees paid on them. Use the two windows for "vs. previous period" deltas.

New in v3: v2 has no equivalent.

Authorization:

Every request is signed with your API key: a short-lived JWT, signed with your private key, sent in one header on /v3/* and /api/v2/* alike.

Headers:
Authorization: APIKey {SIGNED_JWT}

How to build and sign the JWT: Authentication.

Endpoint

GET

/v3/reports/summary

Query parameters​

The three report endpoints (summary, volume series, type breakdown) take the same filters, so they always describe the same transactions.

ParameterTypeDescription
fromstring (date-time)Required. Start of the window, inclusive. RFC 3339 (2026-07-01T00:00:00Z, any offset), or a bare date (2026-07-01), read as midnight UTC.
tostring (date-time)Required. End of the window, exclusive. Same format. At most 400 days after from.
viewstringall (default), crypto (trades and crypto transfers) or fiat (bank transfers).
transaction_typestringOne family: trade, crypto or bank. Overrides view when both are sent.
kindstringOne sub-kind of that family: a trade side (buy, sell), a crypto direction (deposit, withdraw), a bank instrument (ach, wire, …). Any casing. Needs exactly one family: transaction_type, or view=fiat.
statusstringComma-separated states: preview, in_review, waiting_approval, pending, processing, confirmed, success, refund, return, issue, failed, cancelled. Absent counts every state, failed and pending included.
coinstringOnly transactions that involve this asset, e.g. USDT. A trade counts if the asset is on either side.
instrumentsstringComma-separated bank instruments: ach, wire, swift, clabe, debitcard, phonenum, pix, cvu, transfer. Bank-only report (view=fiat or transaction_type=bank).
wire_typestringdomestic or international. Bank-only report, like instruments.
searchstringFree text, at least 3 characters, over the fields the transactions listing searches: reference, external id, transaction id, account email, type, status, trade side, bank instrument.

A transaction belongs to the window its creation time falls in. Reports cover trades, crypto transfers and bank transfers; platform fee transactions are not counted (fees reads the fees paid on the transactions themselves).

There is no account_id parameter. A workspace-scoped key (or a dashboard member) reports on the whole workspace; an account-scoped key (or a customer) reports on its own account only, and naming another account in account_id is refused with 403.

Response Sample​

GET /v3/reports/summary?from=2026-07-01T00:00:00Z&to=2026-08-01T00:00:00Z

{
"current": {
"from": "2026-07-01T00:00:00Z",
"to": "2026-08-01T00:00:00Z",
"total_transactions": 6,
"counts_by_type": [
{ "type": "trade", "count": 3 },
{ "type": "crypto", "count": 2 },
{ "type": "bank", "count": 1 }
],
"counts_by_status": [
{ "status": "success", "count": 5 },
{ "status": "pending", "count": 1 }
],
"volumes": [
{
"type": "trade",
"usd_total": "363.95",
"by_currency": [
{ "currency": "EUR", "amount": "150.75", "usd_amount": "163.95", "count": 2 },
{ "currency": "USD", "amount": "200", "usd_amount": "200", "count": 1 }
]
},
{
"type": "crypto",
"usd_total": "3549.85",
"by_currency": [
{ "currency": "BTC", "amount": "0.05", "usd_amount": "3050.25", "count": 1 },
{ "currency": "USDT", "amount": "500", "usd_amount": "499.6", "count": 1 }
]
},
{
"type": "bank",
"usd_total": "0",
"by_currency": [
{ "currency": "ARS", "amount": "150000", "count": 1 }
]
}
],
"fees": {
"usd_total": "12.25",
"by_currency": [
{ "currency": "USD", "amount": "12.25", "usd_amount": "12.25", "count": 6 }
]
},
"unconverted_currencies": ["ARS"]
},
"previous": {
"from": "2026-05-31T00:00:00Z",
"to": "2026-07-01T00:00:00Z",
"total_transactions": 2,
"counts_by_type": [
{ "type": "trade", "count": 2 }
],
"counts_by_status": [
{ "status": "success", "count": 2 }
],
"volumes": [
{
"type": "trade",
"usd_total": "320",
"by_currency": [
{ "currency": "USD", "amount": "320", "usd_amount": "320", "count": 2 }
]
},
{ "type": "crypto", "usd_total": "0", "by_currency": [] },
{ "type": "bank", "usd_total": "0", "by_currency": [] }
],
"fees": {
"usd_total": "3.2",
"by_currency": [
{ "currency": "USD", "amount": "3.2", "usd_amount": "3.2", "count": 2 }
]
}
}
}

Response Schema​

FieldTypeDescription
currentwindowThe window asked for.
previouswindowThe window of the same length ending where current starts. Same length, not the previous calendar month: July (31 days) compares with the 31 days before it, from May 31.

Each window:

FieldTypeDescription
from / tostring (date-time)The window these figures cover, in UTC.
total_transactionsintegerHow many transactions the window holds.
counts_by_typearray{ type, count } per family (trade, crypto, bank), most frequent first. A family with none is left out.
counts_by_statusarray{ status, count } per state, most frequent first, every state reported as it is. Which ones count as unfinished is yours to decide.
volumesarrayOne entry per family the filters cover.
volumes[].typestringtrade, crypto or bank.
volumes[].by_currencyarrayWhat moved, per currency. Never summed across currencies.
volumes[].usd_totalstring (decimal)The sum of the rows' usd_amount. Leaves out any currency in unconverted_currencies.
fees.by_currencyarrayThe fees paid on the window's transactions, per fee currency.
fees.usd_totalstring (decimal)Their sum in USD, the same way.
unconverted_currenciesarray of stringsCurrencies with no USD price right now. Their rows keep amount but carry no usd_amount, and the USD totals leave them out. An empty string is a row whose transaction recorded no currency. Absent when every row converted.

Each by_currency row:

FieldTypeDescription
currencystringThe currency the amount is in. Empty when the transaction recorded none.
amountstring (decimal)The total, in that currency.
usd_amountstring (decimal)The same total in USD, at the current market price. Absent when the currency has no price.
countintegerHow many transactions make up the total.

What a family's volume is:

Familyamount isIn
tradeThe trade's quantity, its fiat side.The quantity's currency.
cryptoThe settled amount.The coin transferred.
bankThe transfer amount.The transfer's currency.

usd_amount and usd_total are a convenience priced at request time, not a figure stored with the transaction: the same window asked twice can price differently. amount is the record.

Errors​

StatusmessageWhen
400failed to parse requestfrom or to is not a timestamp or a date.
400invalid_windowfrom is not before to.
400window_too_wideThe window is longer than 400 days.
400invalid_statusA status value is not one of the states above.
400invalid_instrumentAn instruments value is not one of the instruments above.
400instruments_require_fiat_viewinstruments sent on a report that is not bank-only.
400wire_type_requires_fiat_viewwire_type sent on a report that is not bank-only.
400kind_requires_one_transaction_typekind sent without exactly one family.
401unauthorizedMissing or invalid signature.
403forbiddenAn account-scoped key named another account in account_id.
422window_requiredfrom or to is missing.
422Validation failedview, transaction_type or wire_type is not an accepted value, or search is shorter than 3 characters; details names it.

Support and Resources​

If you need assistance or have any questions, our support team is here to help. You can contact our support team at support@blockwyre.com.

Stay Updated​

Stay up-to-date with the latest news, updates, and features from BlockWyre by following us on social media:

We are excited to have you on board and look forward to seeing how you leverage BlockWyre's powerful tools to enhance your financial operations. Happy integrating!