Skip to main content
GET
List / export the buyer’s unified payment record across all agents

Authorizations

Authorization
string
header
required

Your Nevermined API Key (starts with 'nvm:'). Get one at nevermined.app under Settings > API Keys.

Query Parameters

delegationId
string

Only payments spent against this delegation id.

from
string

ISO-8601 lower bound on createdAt (inclusive).

Example:

"2026-07-01T00:00:00Z"

to
string

ISO-8601 upper bound on createdAt (inclusive).

Example:

"2026-07-31T23:59:59Z"

format
enum<string>

Response format. Defaults to JSON; csv returns a downloadable file.

Available options:
json,
csv

Response

The payment record — a JSON array (or a CSV file when format=csv).

id
string
required
Example:

"b1f9c2e4-3d5a-4c7e-9f21-6a8b0c4d2e13"

createdAt
string
required
Example:

"2026-07-01T09:00:55.605Z"

status
enum<string>
required
Available options:
Issued,
Settled,
Failed
Example:

"Settled"

protocol
string
required
Example:

"x402"

network
string
required
Example:

"base-sepolia"

amount
string
required

Amount in the asset’s smallest unit.

Example:

"1000"

merchantAddress
string
required

The merchant's pay-to identifier: a 0x address for the crypto rails (x402 / MPP-tempo), or the seller's Stripe network business profile id (profile_…) for the MPP-stripe / SPT card rail.

Example:

"0x209693Bc6afc0C5328bA36FaF03C514EF312287C"

delegationId
string
required
Example:

"5e7481c3-..."

deliveryStatus
enum<string>
required

Buyer-visible outcome: delivered when the request settled; charged_not_delivered when it failed and the merchant charge was observed; charged_unconfirmed when the charge was observed but delivery is unconfirmed; not_charged when reconciliation proved the merchant did not charge; pending when the charge outcome is unknown. On SPT and card rails, pending is not proof of no charge.

Available options:
delivered,
charged_not_delivered,
charged_unconfirmed,
not_charged,
pending
Example:

"delivered"

feeFailureReason
string | null
required

Why the routing fee did not collect, or — on a feeStatus: None row — fee-not-quoted: <why> when a fee rate is configured but none was quoted for this payment. Diagnostic text for a human, NOT a stable contract: branch on feeStatus, never on this string. Whitespace is collapsed and any embedded scheme://… URL is replaced with [url] before publication. null when no fee rate is configured, and while a quoted fee is still on its happy path; a non-null value does not on its own mean the fee went uncollected — feeStatus says what happened.

Example:

"HTTP 400: {\"errorReason\":\"amount_too_low\",\"network\":\"eip155:84532\",\"success\":false}"

merchantSettlementObservedAt
string | null
required

When on-chain reconciliation OBSERVED that the merchant redeemed this payment’s authorization — the money really left your wallet. null on the ordinary path (a cleanly settled payment is anchored by txHash), and always on the MPP rails, which carry no EIP-3009 authorization. Read it together with status: status is what you GOT, this is what you PAID — status: Failed/Issued with this set means the merchant took the money and delivered nothing. A non-null txHash on such a row does not mean the payment succeeded.

Example:

"2026-09-08T10:12:00.000Z"

paymentId
string
required

Alias of id, named explicitly for requestId reconciliation clients.

Example:

"b1f9c2e4-8a3d-4f27-9c6b-5d2e17a04f8b"

chargedMicros
string | null
required

Exact amount this payment still contributes to the delegation cap, in micros (1/10,000 of a cent). A merchant or fee share that was proven uncollected and released is excluded. null on legacy rows that predate exact micro-reserve columns.

Example:

"1020000"

resultUrl
string
required

Relative URL of the retained paid result. It may answer Pending while the call is running, or 404 after retention expires, for a mode-A payment, for an unknown payment, or for a payment owned by another caller. A 404 is not delivery evidence; use deliveryStatus.

Example:

"/api/v1/router/payments/b1f9c2e4-8a3d-4f27-9c6b-5d2e17a04f8b/result"

buyer
string
required

The buyer identity that funded the payment: the on-chain payer EOA (0x…) for the crypto rails (x402 / MPP-tempo), or the Stripe customer id (cus_…) for the MPP-stripe / SPT card rail.

Example:

"0x8D6A5233..."

asset
string | null

The settlement asset AS PERSISTED AT MINT, which differs per rail: a symbol for x402 (USDC/EURC), the ERC-20 contract ADDRESS from the challenge for MPP-tempo, and an ISO currency code for MPP-stripe. Prefer assetSymbol/assetDecimals below for display — they normalise all three. Kept as-is for consumers that already parse it.

Example:

"USDC"

assetSymbol
string | null

Ticker to display for asset, resolved from the asset address on this row’s chain — USDC, EURC, USDC.e, pathUSD. null when the asset is not one we recognise there; render the (truncated) asset instead, never a guess.

Example:

"USDC.e"

assetDecimals
number | null

Decimal scale of amount for this asset, so a client never has to assume one. null when the asset is unrecognised — treat amount as raw atomic units rather than defaulting the scale, which would render a wrong NUMBER rather than a wrong label.

Example:

6

txHash
string | null
Example:

"0xfc8af37b..."

requestId
string | null
resourceUrl
string | null
Example:

"https://agent.example/resource"

feeAtomic
string | null

Nevermined’s routing fee for this payment, in the settlement asset’s smallest unit. 0 when no fee applied; null on rows that predate the fee.

Example:

"0"

feeBps
number | null

Fee rate applied, in basis points over 10,000. null on rows that predate the fee.

Example:

0

feeCents
string | null

Cents the fee added to the delegation-cap reserve. Note amount on this record is the MERCHANT leg in atomic units, so the combined cap charge is not derivable from this resource alone — it is recorded as amountCents on GET /delegation/{delegationId}/transactions, where that same row breaks it out as feeCents / feeAtomic / feeBps, with feeReleased marking a fee already refunded to the cap.

Example:

"0"

feeStatus
enum<string> | null

Fee lifecycle, independent of the payment status.

Available options:
None,
Accrued,
Submitted,
Settled,
Failed,
Released,
null
Example:

"None"

feeTxHash
string | null

Settlement reference for the FEE leg — distinct from txHash, which is the MERCHANT leg’s. The two legs are independent movements that settle separately, so reconcile them separately. Reported verbatim by the facilitator (third-party text, not validated to a 0x shape). null until the fee actually settles.

Example:

"0x9c4d6f1e..."

feeNonce
string | null

EIP-3009 nonce of the fee leg, recorded when the leg is submitted. This is the only key that ties an on-chain transfer back to this payment: authorizationState(buyer, feeNonce) answers definitively whether the leg was consumed, which is how a Submitted fee is resolved. null until the leg is submitted. Not spendable on its own — the signed authorization is deliberately never stored.

Example:

"0x7b1e2c..."