LayerHopDocsLaunch app (opens in a new tab)

Payment analytics and exports

See checkout revenue by day, by the token and chain customers paid with, and by settlement in the dashboard, with conversion, refunds and time to pay, and export your sessions as CSV for accounting.

The dashboard's Payments → Analytics page summarizes your checkout payments over a date range: gross and net revenue, refunds, number of payments, average payment, conversion and time to pay, revenue per day, what your customers paid with, and what you were paid in. Every payment link, product, invoice and API-created session counts. You can also download the sessions behind the numbers as a CSV file for your accounting.

Settlement tokens are USD stablecoins (USDC and USDT), so amounts are reported in USD (…Usd fields, rounded to cents). Live and test data are separate: turn on Test mode in the dashboard to see test sessions.

What the numbers mean#

The range covers sessions created in it (default: the last 30 days; at most 366 days). Payments are sessions that reached paid.

Metric Meaning
sessions Sessions created in the range, whatever their status.
payments Of those, sessions that are paid.
grossUsd Total amount of paid sessions.
refundedUsd Total completed refunds (refundedAmount) of those sessions.
netUsd grossUsd − refundedUsd.
averageUsd grossUsd / payments.
conversionRate Percentage of sessions that were paid (one decimal), or null without sessions.
medianSecondsToPay, averageSecondsToPay Time from session creation to verified payment.

The per-day series (byDay) is by payment date (UTC) and has one entry per day of the range, including days without payments. byPaidWith groups revenue by the chain and token customers paid with, and bySettlement by the chain and stablecoin you received; both are sorted by revenue.

The analytics endpoint#

The dashboard reads GET /v1/dashboard/checkout/analytics, authenticated with your dashboard sign-in session (not an API key).

Query Notes
from, to ISO 8601 dates or timestamps, or Unix seconds. Default: the 30 days up to now. from must be before to; at most 366 days.
mode live (default) or test.
JSON
{
  "livemode": true,
  "from": "2026-09-18T00:00:00.000Z",
  "to": "2026-10-18T00:00:00.000Z",
  "totals": {
    "sessions": 214,
    "payments": 163,
    "grossUsd": 8612.5,
    "refundedUsd": 98,
    "netUsd": 8514.5,
    "averageUsd": 52.84,
    "conversionRate": 76.2,
    "medianSecondsToPay": 41,
    "averageSecondsToPay": 73
  },
  "byDay": [
    { "date": "2026-09-18", "payments": 4, "revenueUsd": 196, "refundedUsd": 0 }
  ],
  "byPaidWith": [
    { "chainId": 42161, "chain": "Arbitrum", "token": "0x0000000000000000000000000000000000000000", "payments": 51, "revenueUsd": 2890.25 }
  ],
  "bySettlement": [
    { "chainId": 8453, "chain": "Base", "symbol": "USDC", "payments": 163, "revenueUsd": 8612.5 }
  ]
}

Export sessions as CSV#

Export CSV on the analytics page downloads layerhop-payments-{from}-to-{to}.csv from GET /v1/dashboard/checkout/analytics/sessions.csv (same from, to and mode, plus an optional status, for example status=paid to export payments only). It has one row per session created in the range, newest first, up to 50,000 rows. The file is UTF-8 with CRLF line endings, so it opens directly in Excel, Numbers and Google Sheets.

Column Contents
id Session id (cs_…).
created_at When the session was created (ISO 8601, UTC).
status open, processing, paid, expired or needs_review.
amount Amount due, in base units of the settlement token.
currency Settlement token symbol (USDC or USDT).
settlement_chain Settlement chain name.
amount_usd Amount due in USD, two decimals.
refunded Completed refunds in USD, two decimals.
description, reference As set on the session.
product_id, invoice_id The product or invoice the session came from, if any.
payer The address that paid.
paid_with_chain, paid_with_token, paid_with_amount What the customer paid with: chain name, token address and amount in that token's base units.
src_tx_hash, dst_tx_hash The payment transaction and the delivering transaction.
paid_at When the payment was verified (ISO 8601, UTC).
livemode true for live sessions, false for test.

Cells that start with =, +, -, @ or a tab are prefixed with ' so a spreadsheet never runs them as formulas.

To pull the same data with an API key instead, page through GET /v1/checkout/sessions.

Last updated