---
title: "Price an offering (x402 402), or buy one that needs no input"
method: GET
path: "/m/{handle}/x/{slug}"
tags: ["wallet", "x402"]
---

# Price an offering (x402 402), or buy one that needs no input

`GET /m/{handle}/x/{slug}`

## Request

- Base URL: `https://www.immersivecommons.com`
- URL: `https://www.immersivecommons.com/m/{handle}/x/{slug}`
- Auth: none required

An x402 v2 resource (coinbase/x402 specs/transports-v2/http.md). Without a payment header it answers 402 with PaymentRequirements (in the PAYMENT-REQUIRED header and the body) whose payTo is the SELLING MEMBER's own address: Base USDC (exact, EIP-3009) and, when the member takes it, Solana USDC (exact, fee payer from the CDP facilitator). Retry with PAYMENT-SIGNATURE (or the v1 X-PAYMENT) header: IC checks the payment itself, settles through the CDP facilitator straight into the member's wallet, fulfils (file link, booking, paid inbox message, the member's webhook, or manual) and returns the receipt with PAYMENT-RESPONSE / X-PAYMENT-RESPONSE. The same payment replayed returns the same receipt and is never fulfilled twice. A fulfilment that fails after settlement still returns the receipt (status fulfilment_failed); the member is told. 202 = settlement_pending: retry the same request, never pay again. IC holds no funds and takes no fee. Unknown handle, unknown slug, paused and taken-down offerings all answer the same 404. MCP discovery: `ic_offerings_get`. 404 unless offerings are enabled.

## Path parameters

- `handle` string, required
- `slug` string, required

## Query parameters

- `amount` string
- `quantity` integer
- `network` 'base' | 'solana'

## Headers

- `PAYMENT-SIGNATURE` string

## Response `200`

Paid, settled and fulfilled (or fulfilment_failed): the receipt and the result.

- OfferingReceiptResponse
  - `ok` boolean, required
  - `receipt` OfferingReceipt, required
    - `receipt_id` string, required: rcp_...
    - `offering_id` string, required
    - `offering_slug` string
    - `offering_title` string
    - `member` string, required: The seller's handle.
    - `buyer_address` string, required
    - `amount` string, required: Decimal USDC.
    - `amount_atomic` string
    - `asset` 'USDC'
    - `network` 'base' | 'solana', required
    - `network_caip2` string
    - `network_mode` 'testnet' | 'mainnet'
    - `tx_hash` string, nullable
    - `via` 'x402' | 'member_wallet'
    - `status` 'fulfilled' | 'fulfilment_failed', required
    - `fulfilled_at` string, date-time, nullable
    - `created_at` string, date-time
    - `result` object
    - `fulfilment_error` string
  - `fulfilment` object, required
    - `ok` boolean
    - `message` string
  - `result` object: What was bought: download_url, booking, thread_id, the member endpoint's response, or instructions.
  - `replayed` boolean: true when this payment had already been settled: the stored receipt, nothing re-fulfilled.

## Other responses

- `202`: settlement_pending: the payment was broadcast; retry the same request with the same payment.
- `400`: Bad ?amount / ?quantity / ?network, or input invalid for this offering's kind (not charged).
- `402`: Payment required, or the payment did not match: the body is x402 v2 PaymentRequired { x402Version, error, resource, accepts[] (payTo = the member's own address) } plus offering, input and amount_usdc (schema OfferingPaymentRequired); the PAYMENT-REQUIRED header carries the same object.
- `403`: Members-only offering and you are not an IC member, or the member does not accept messages from you (not charged).
- `404`: No such offering on sale, or offerings are not enabled.
- `409`: This payment is already being processed.
- `410`: Sold out.
- `429`: Per-buyer daily limit reached (not charged).
- `502`: The facilitator reported a different payer.
- `503`: Payments unavailable right now.

---

[API](https://skmtc.dev/immersivecommons/apis/immersive-commons-agent-rest-api.md) · [All operations](https://skmtc.dev/immersivecommons/apis/immersive-commons-agent-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/immersivecommons/apis/immersive-commons-agent-rest-api/revisions/be67c1f67c27?raw)
