---
title: "Inspect x402 payment terms without making a payment"
method: POST
path: "/v1/tests/preflight"
tags: ["x402", "testing", "payment-terms", "integration"]
---

# Inspect x402 payment terms without making a payment

`POST /v1/tests/preflight`

## Request

- Base URL: `https://api.402rates.com`
- URL: `https://api.402rates.com/v1/tests/preflight`
- Auth: none declared

Free inspection of supplied x402 v1/v2 payment terms against the SDK schema and optional network, asset, recipient and atomic budget constraints. Exact EVM profile checks only. No wallet connection, external fetch, signature verification or settlement. Other profiles are explicitly untested.

## Request body

- object
  - `challenge` object: Decoded PaymentRequired object from HTTP or MCP structuredContent. No signed payment or credentials.
  - `expected` object: Optional exact terms. An atomic budget requires network and asset.
    - `network` string
    - `asset` string
    - `pay_to` string
    - `scheme` string
    - `max_amount_atomic` string

## Response `200`

Successful response

- object
  - `report_version` '1.0.0', required
  - `status` string, required
  - `threshold_bps` number
  - `data` object[]

## Other responses

- `400`: Invalid input
- `405`: POST required
- `413`: Input exceeds 196608 bytes
- `415`: application/json required
- `429`: Free request limit reached

---

[API](https://skmtc.dev/402rates/apis/402rates-com.md) · [All operations](https://skmtc.dev/402rates/apis/402rates-com/llms.txt) · [OpenAPI document](https://skmtc.dev/402rates/apis/402rates-com/revisions/483a9d0a3f0b?raw)
