---
title: "Get receipt"
method: GET
path: "/v0/ingestion-receipts/{receipt_id}"
tags: ["Ingestion receipts"]
---

# Get receipt

`GET /v0/ingestion-receipts/{receipt_id}`

## Request

- Base URL: `https://docs.quivr.thevibecompany.co` (the document declares no server; this is the origin it was published from)
- URL: `https://docs.quivr.thevibecompany.co/v0/ingestion-receipts/{receipt_id}`
- Auth: HTTP bearer

Return outcome and separately authorized linked availability/diagnostics. Omit unavailable linked content rather than bypassing rights through the Receipt. Linked Version/Record details require current content:read permission and target Corpus authorization.

## Path parameters

- `receipt_id` string, required

## Response `200`

Successful response

- Receipt: Durable acceptance outcome, not workflow state. Availability is a separate authorized live read view; omitted before a linked version exists. Infrastructure retry never resolves a Receipt as failed.
  - `receipt_id` string, required
  - `state` 'pending' | 'resolved', required
  - `outcome` 'created' | 'duplicate' | 'withdrawal_applied' | 'conflict'
  - `record_id` string
  - `version_id` string
  - `availability` Availability
    - `state` 'materialized' | 'building_baseline' | 'retrieval_ready' | 'quarantined', required
    - `is_current` boolean, required
    - `searchable` boolean, required
  - `diagnostics` Error[], required
    - `request_id` string: Bounded caller X-Request-ID, or an engine-generated correlation ID.
    - `trace_id` string: W3C trace ID when a trace context is present.
    - `span_id` string: W3C span ID of the API handler when a trace context is present.
    - `code` string, required
    - `message` string, required
    - `retryable` boolean, required
    - `field` string: JSON Pointer (RFC 6901) to the request member that caused a 422, when known (for example /config/url or /credential/secret/token on connector commands).
    - `resync_url` string, uri-reference
  - `source` SourceIdentity, required
    - `corpus_id` string, required
    - `namespace` string, required
    - `record_key` string, required
  - `processing` ProcessingSummary, required: Live read view, not a Receipt lifecycle or public workflow identifier. blocked means an outstanding contribution needs intervention; diagnostics describe why. idle means no work currently pending, not a promise of final enrichment. Phase is omitted when idle; required and optional progress do not override Version Availability.
    - `state` 'queued' | 'running' | 'retrying' | 'blocked' | 'idle', required
    - `phase` 'materialization' | 'baseline' | 'enrichment'
    - `message` string

## Other responses

- `default`: Structured error. 400 malformed; 401 unauthenticated; 403 forbidden action; 404 absent or inaccessible; 409 conflict; 413 oversized; 422 invalid input; 429 throttled; 503 temporary failure.

---

[API](https://skmtc.dev/thevibecompany/apis/quivr-http-api.md) - [All operations](https://skmtc.dev/thevibecompany/apis/quivr-http-api/llms.txt) - [OpenAPI document](https://skmtc.dev/thevibecompany/apis/quivr-http-api/revisions/4f4e30ba8f4e?raw)
