---
title: "Accept a delivered bounty and capture linked escrow"
method: POST
path: "/bounties/{id}/accept"
---

# Accept a delivered bounty and capture linked escrow

`POST /bounties/{id}/accept`

## Request

- Base URL: `https://superskill.sh/api`
- URL: `https://superskill.sh/api/bounties/{id}/accept`
- Auth: HTTP bearer

Auth required. Only the customer can accept. The signed passed receipt, delivered target, gate_escrow target, amount and currency must all match. A bounty is marked paid only after the linked escrow purchase is captured.

## Path parameters

- `id` string, required

## Request body

- BountyAccept
  - `provider_ref` string, required
  - `receipt` GateReceipt, required
    - `type` 'onlyharness.gate_receipt.v1', required
    - `algorithm` 'ed25519', required
    - `payload` GateReceiptPayload, required
      - `harness` string, required: Harness ref, for example harnesses/deep-market-researcher or @org/name.
      - `version` string, required
      - `resultsHash` string, required
      - `verdict` 'passed' | 'failed', required
      - `at` string, date-time, required
      - `gate` object, required
        - `score` number, required
        - `risk` number, required
        - `cost` number, required
        - `failures` string[], required
    - `publicKey` string, required: SPKI PEM public key derived from the local install key.
    - `signature` string, required: Base64 ed25519 signature over the stable JSON payload.

## Response `200`

Bounty accepted and paid

- Bounty
  - `id` string, required
  - `title` string, required
  - `spec` string, required
  - `budget_usd` number, required
  - `currency` string, required
  - `status` 'open' | 'claimed' | 'delivered' | 'paid', required
  - `customer_user_id` string, required
  - `claimant_user_id` string, nullable
  - `delivered_harness` string, nullable
  - `delivered_version` string, nullable
  - `delivery_receipt_hash` string, nullable
  - `accepted_receipt_hash` string, nullable
  - `payment_purchase_id` string, nullable
  - `escrow_provider_ref` string, nullable
  - `paid_at` string, date-time, nullable
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

## Other responses

- `400`: Bad request
- `401`: Authorization required
- `403`: Authorization was provided but is not allowed for this action
- `404`: Resource not found
- `409`: Bad request

---

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