---
title: "Refund x402 marketplace funding to its verified payer"
method: POST
path: "/v1/payments/x402/refund"
tags: ["billing"]
---

# Refund x402 marketplace funding to its verified payer

`POST /v1/payments/x402/refund`

## Request

- Base URL: `https://api.runx.ai`
- URL: `https://api.runx.ai/v1/payments/x402/refund`
- Auth: HTTP bearer

## Request body

- X402MarketplaceRefundRequest
  - `funding_receipt_id` string, required
  - `idempotency_key` string, required
  - `amount_cents` integer, required
  - `refund_basis` string, required
  - `reason` string, required
  - `worker_slots_refunded` integer, required
  - `worker_refunded_cents` integer, required
  - `fee_refunded_cents` integer, required
  - `policy_decision_ref` string

## Response `200`

Sealed x402 marketplace refund receipt.

- MarketplaceReceiptEnvelope
  - `ok` unknown, required
  - `receipt` object, required
  - `idempotent_replay` boolean, required

## Other responses

- `202`: x402 refund is reserved and still settling.
- `400`: Validation error.
- `401`: Unauthorized.
- `404`: Funding receipt not found.
- `409`: Refund policy or provider-evidence refusal.
- `503`: x402 refund rail is unavailable.

---

[API](https://skmtc.dev/runx/apis/runx-hosted-api.md) · [All operations](https://skmtc.dev/runx/apis/runx-hosted-api/llms.txt) · [OpenAPI document](https://skmtc.dev/runx/apis/runx-hosted-api/revisions/6c940d8edacc?raw)
