---
title: "List redacted tenant x402 payments for a project"
method: GET
path: "/projects/v1/{project_id}/tenant-payments"
tags: ["Projects"]
---

# List redacted tenant x402 payments for a project

`GET /projects/v1/{project_id}/tenant-payments`

## Request

- Base URL: `https://api.run402.com`
- URL: `https://api.run402.com/projects/v1/{project_id}/tenant-payments`
- Auth: one of:
  - HTTP bearer
  - API key in header `SIGN-IN-WITH-X`
  - HTTP bearer

Keyset-paginated list of tenant x402 payments captured from priced function web routes. Requires project.tenant_payments.read: org developer+ or a read-scoped project grant or grant key. Raw x402 authorization material and internal hashes are never returned.

## Path parameters

- `project_id` string, required: Run402 project ID. Public IDs are not UUIDs.

## Query parameters

- `limit` integer
- `after` string
- `cursor` string
- `status` 'created' | 'settling' | 'settled' | 'settle_failed' | 'ambiguous'

## Response `200`

Tenant payment page.

- TenantPaymentListResponse
  - `project_id` string, required: Run402 project ID. Public IDs are not UUIDs.
  - `payments` TenantPaymentRecord[], required
    - `payment_id` string, required
    - `status` 'created' | 'settling' | 'settled' | 'settle_failed' | 'ambiguous', required
    - `org_id` string, uuid, required
    - `project_id` string, required: Run402 project ID. Public IDs are not UUIDs.
    - `release_id` string, nullable
    - `route_pattern` string, required
    - `route_method` string, required
    - `route_target_function` string, nullable
    - `amount_usd_micros` integer, required
    - `settled_amount_usd_micros` integer, nullable
    - `amount_msat` integer, nullable: The amount in millisatoshis for a Lightning (lnbtc) payment; null for an EVM payment.
    - `network` string, required
    - `asset` string, nullable
    - `asset_address` string, nullable
    - `payer` string, nullable
    - `pay_to` string, required
    - `scheme` 'x402' | 'mpp', required: The protocol that paid: x402 (EVM USDC and Lightning) or mpp (an MPP Tempo charge in pathUSD, scheme_version tempo/charge).
    - `scheme_version` string, nullable
    - `facilitator` string, nullable
    - `settlement_reference` string, nullable
    - `settlement_tx_hash` string, nullable
    - `request_id` string, nullable
    - `host` string, nullable
    - `path` string, nullable
    - `operation_id` string, nullable
    - `attempts` integer
    - `last_error_code` string, nullable
    - `last_error_message` string, nullable
    - `next_reconcile_at` string, date-time, nullable
    - `last_reconciled_at` string, date-time, nullable
    - `reconciliation_attempts` integer
    - `reuse_expires_at` string, date-time, nullable
    - `last_seen_at` string, date-time, nullable
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
    - `settled_at` string, date-time, nullable
  - `has_more` boolean, required
  - `next_cursor` string, nullable, required

## Other responses

- `400`: Invalid pagination or status filter.
- `403`: Caller is not authorized to read tenant payments for this project.

---

[API](https://skmtc.dev/run402/apis/run402-api.md) · [All operations](https://skmtc.dev/run402/apis/run402-api/llms.txt) · [OpenAPI document](https://skmtc.dev/run402/apis/run402-api/revisions/893607557f50?raw)
