Skip to content
Registry StackDocsv0.41.0

Read the original appointment receipt

POST
/v1/appointments/receipt
curl --request POST \
--url https://scheduling.example.test/v1/appointments/receipt \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: example' \
--data '{ "admission": { "capabilities": [ "example" ], "channel": "example", "duplicateKey": "example", "externalReferences": [ { "identifier": "example", "product": "example", "recordType": "example" } ], "offering": "example", "party": { "attendees": 1, "recipients": 1 }, "policyRevision": 1, "prerequisites": [ "example" ], "start": "2026-04-15T12:00:00Z", "windowRevision": 1 }, "hold": "example" }'

Reads only a retained success receipt matching the verified caller’s issuer and subject, the original key, and the original request. It requires current ordinary read authority, can observe work after task authority ends, and never creates or replays a capacity command. Missing, expired, changed, or refused receipts are receipt.unresolved; this is not evidence that no effect occurred.

traceparent
string

Optional W3C trace context continued in the response.

Idempotency-Key
required
string
>= 1 characters <= 128 characters /^[!-~]+$/

Caller-selected ASCII graphic key bound to this exact request. An exact retry replays the first answer, a changed request is idempotency.key-reused, and a receipt retained past its window is idempotency.expired.

Media typeapplication/json

Exactly one of hold or admission: confirming a held allocation, or a direct create. Both, or neither, is request.invalid.

object
>= 1 properties
admission
Any of:
object
capabilities
required
Array<string>
channel
Any of:
string
duplicateKey
Any of:
string
externalReferences
Array<object>
object
identifier
required
string
product
required
string
recordType
required
string
offering
required
string
party
required
object
attendees
required
integer
recipients
required
integer
policyRevision
required
integer format: int64
prerequisites
required
Array<string>
start
required
string format: date-time
windowRevision
Any of:
integer format: int64
hold
Any of:
string
Examplegenerated
{
"admission": {
"capabilities": [
"example"
],
"channel": "example",
"duplicateKey": "example",
"externalReferences": [
{
"identifier": "example",
"product": "example",
"recordType": "example"
}
],
"offering": "example",
"party": {
"attendees": 1,
"recipients": 1
},
"policyRevision": 1,
"prerequisites": [
"example"
],
"start": "2026-04-15T12:00:00Z",
"windowRevision": 1
},
"hold": "example"
}

Success

Media typeapplication/json
object
appointmentId
required
string
cancelledAt
Any of:
string format: date-time
channel
Any of:
string
createdAt
required
string format: date-time
end
required
string format: date-time
externalReferences
required
Array<object>
object
identifier
required
string
product
required
string
recordType
required
string
offering
required
string
policyRevision
required
integer format: int64
resource
Any of:
string
revision
required
integer format: int64
start
required
string format: date-time
state
required
string
Allowed values: confirmed cancelled
units
required
integer
key
additional properties
any
Example
{
"state": "confirmed"
}
cache-control
Allowed value: no-store

Every answer is marked no-store, so a booking view is never served from a cache.

traceparent
string

W3C trace context for the request and response.

Problem response: request.invalid

Media typeapplication/problem+json
object
code
required
string
Allowed values: authentication.refused booking.duplicate-active cancellation.cutoff-passed capability.unmatched capacity.exhausted cursor.expired cursor.invalid eligibility.unavailable hold.expired hold.released hook.unavailable horizon.outside idempotency.expired idempotency.key-reused location.closed operation.not-authorized party.capacity-inadequate policy.changed precondition.failed precondition.required prerequisite.missing profile.not-authorized receipt.unresolved request.body-too-large request.invalid request.method-not-allowed request.not-found request.unprocessable request.unsupported-media-type resource.unavailable revision.mismatch schedule.unpublished service.unavailable
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string format: uri
code
required
Allowed value: request.invalid
detail
required
Allowed value: The request could not be read as a Scheduling request.
status
required
Allowed value: 400
title
required
Allowed value: Request invalid
type
required
Allowed value: https://id.registrystack.org/problems/registry-scheduling/request/invalid
Example
{
"code": "request.invalid",
"detail": "The request could not be read as a Scheduling request.",
"status": 400,
"title": "Request invalid",
"type": "https://id.registrystack.org/problems/registry-scheduling/request/invalid"
}
cache-control
Allowed value: no-store

Every answer is marked no-store, so a booking view is never served from a cache.

traceparent
string

W3C trace context for the request and response.

Problem response: authentication.refused

Media typeapplication/problem+json
object
code
required
string
Allowed values: authentication.refused booking.duplicate-active cancellation.cutoff-passed capability.unmatched capacity.exhausted cursor.expired cursor.invalid eligibility.unavailable hold.expired hold.released hook.unavailable horizon.outside idempotency.expired idempotency.key-reused location.closed operation.not-authorized party.capacity-inadequate policy.changed precondition.failed precondition.required prerequisite.missing profile.not-authorized receipt.unresolved request.body-too-large request.invalid request.method-not-allowed request.not-found request.unprocessable request.unsupported-media-type resource.unavailable revision.mismatch schedule.unpublished service.unavailable
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string format: uri
code
required
Allowed value: authentication.refused
detail
required
Allowed value: The bearer credential is missing, invalid, or expired. Sign in again.
status
required
Allowed value: 401
title
required
Allowed value: Authentication refused
type
required
Allowed value: https://id.registrystack.org/problems/registry-scheduling/authentication/refused
Example
{
"code": "authentication.refused",
"detail": "The bearer credential is missing, invalid, or expired. Sign in again.",
"status": 401,
"title": "Authentication refused",
"type": "https://id.registrystack.org/problems/registry-scheduling/authentication/refused"
}
WWW-Authenticate
Allowed value: Bearer

Bearer authentication challenge.

cache-control
Allowed value: no-store

Every answer is marked no-store, so a booking view is never served from a cache.

traceparent
string

W3C trace context for the request and response.

Problem response: profile.not-authorized

Media typeapplication/problem+json
object
code
required
string
Allowed values: authentication.refused booking.duplicate-active cancellation.cutoff-passed capability.unmatched capacity.exhausted cursor.expired cursor.invalid eligibility.unavailable hold.expired hold.released hook.unavailable horizon.outside idempotency.expired idempotency.key-reused location.closed operation.not-authorized party.capacity-inadequate policy.changed precondition.failed precondition.required prerequisite.missing profile.not-authorized receipt.unresolved request.body-too-large request.invalid request.method-not-allowed request.not-found request.unprocessable request.unsupported-media-type resource.unavailable revision.mismatch schedule.unpublished service.unavailable
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string format: uri
code
required
Allowed value: profile.not-authorized
detail
required
Allowed value: The selected Scheduling profile does not authorize this request.
status
required
Allowed value: 403
title
required
Allowed value: Profile not authorized
type
required
Allowed value: https://id.registrystack.org/problems/registry-scheduling/profile/not-authorized
Example
{
"code": "profile.not-authorized",
"detail": "The selected Scheduling profile does not authorize this request.",
"status": 403,
"title": "Profile not authorized",
"type": "https://id.registrystack.org/problems/registry-scheduling/profile/not-authorized"
}
cache-control
Allowed value: no-store

Every answer is marked no-store, so a booking view is never served from a cache.

traceparent
string

W3C trace context for the request and response.

Problem response: request.method-not-allowed

Media typeapplication/problem+json
object
code
required
string
Allowed values: authentication.refused booking.duplicate-active cancellation.cutoff-passed capability.unmatched capacity.exhausted cursor.expired cursor.invalid eligibility.unavailable hold.expired hold.released hook.unavailable horizon.outside idempotency.expired idempotency.key-reused location.closed operation.not-authorized party.capacity-inadequate policy.changed precondition.failed precondition.required prerequisite.missing profile.not-authorized receipt.unresolved request.body-too-large request.invalid request.method-not-allowed request.not-found request.unprocessable request.unsupported-media-type resource.unavailable revision.mismatch schedule.unpublished service.unavailable
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string format: uri
code
required
Allowed value: request.method-not-allowed
detail
required
Allowed value: The route exists but not for this method.
status
required
Allowed value: 405
title
required
Allowed value: Method not allowed
type
required
Allowed value: https://id.registrystack.org/problems/registry-scheduling/request/method-not-allowed
Example
{
"code": "request.method-not-allowed",
"detail": "The route exists but not for this method.",
"status": 405,
"title": "Method not allowed",
"type": "https://id.registrystack.org/problems/registry-scheduling/request/method-not-allowed"
}
cache-control
Allowed value: no-store

Every answer is marked no-store, so a booking view is never served from a cache.

traceparent
string

W3C trace context for the request and response.

Problem response: receipt.unresolved

Media typeapplication/problem+json
object
code
required
string
Allowed values: authentication.refused booking.duplicate-active cancellation.cutoff-passed capability.unmatched capacity.exhausted cursor.expired cursor.invalid eligibility.unavailable hold.expired hold.released hook.unavailable horizon.outside idempotency.expired idempotency.key-reused location.closed operation.not-authorized party.capacity-inadequate policy.changed precondition.failed precondition.required prerequisite.missing profile.not-authorized receipt.unresolved request.body-too-large request.invalid request.method-not-allowed request.not-found request.unprocessable request.unsupported-media-type resource.unavailable revision.mismatch schedule.unpublished service.unavailable
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string format: uri
code
required
Allowed value: receipt.unresolved
detail
required
Allowed value: No retained success receipt matches this caller, key, and original request. The original outcome remains unknown; this is not evidence that no effect occurred.
status
required
Allowed value: 409
title
required
Allowed value: Original receipt unresolved
type
required
Allowed value: https://id.registrystack.org/problems/registry-scheduling/receipt/unresolved
Example
{
"code": "receipt.unresolved",
"detail": "No retained success receipt matches this caller, key, and original request. The original outcome remains unknown; this is not evidence that no effect occurred.",
"status": 409,
"title": "Original receipt unresolved",
"type": "https://id.registrystack.org/problems/registry-scheduling/receipt/unresolved"
}
cache-control
Allowed value: no-store

Every answer is marked no-store, so a booking view is never served from a cache.

traceparent
string

W3C trace context for the request and response.

Problem response: request.body-too-large

Media typeapplication/problem+json
object
code
required
string
Allowed values: authentication.refused booking.duplicate-active cancellation.cutoff-passed capability.unmatched capacity.exhausted cursor.expired cursor.invalid eligibility.unavailable hold.expired hold.released hook.unavailable horizon.outside idempotency.expired idempotency.key-reused location.closed operation.not-authorized party.capacity-inadequate policy.changed precondition.failed precondition.required prerequisite.missing profile.not-authorized receipt.unresolved request.body-too-large request.invalid request.method-not-allowed request.not-found request.unprocessable request.unsupported-media-type resource.unavailable revision.mismatch schedule.unpublished service.unavailable
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string format: uri
code
required
Allowed value: request.body-too-large
detail
required
Allowed value: The request body exceeds the accepted size.
status
required
Allowed value: 413
title
required
Allowed value: Payload too large
type
required
Allowed value: https://id.registrystack.org/problems/registry-scheduling/request/body-too-large
Example
{
"code": "request.body-too-large",
"detail": "The request body exceeds the accepted size.",
"status": 413,
"title": "Payload too large",
"type": "https://id.registrystack.org/problems/registry-scheduling/request/body-too-large"
}
cache-control
Allowed value: no-store

Every answer is marked no-store, so a booking view is never served from a cache.

traceparent
string

W3C trace context for the request and response.

Problem response: request.unsupported-media-type

Media typeapplication/problem+json
object
code
required
string
Allowed values: authentication.refused booking.duplicate-active cancellation.cutoff-passed capability.unmatched capacity.exhausted cursor.expired cursor.invalid eligibility.unavailable hold.expired hold.released hook.unavailable horizon.outside idempotency.expired idempotency.key-reused location.closed operation.not-authorized party.capacity-inadequate policy.changed precondition.failed precondition.required prerequisite.missing profile.not-authorized receipt.unresolved request.body-too-large request.invalid request.method-not-allowed request.not-found request.unprocessable request.unsupported-media-type resource.unavailable revision.mismatch schedule.unpublished service.unavailable
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string format: uri
code
required
Allowed value: request.unsupported-media-type
detail
required
Allowed value: The request body is not JSON.
status
required
Allowed value: 415
title
required
Allowed value: Unsupported media type
type
required
Allowed value: https://id.registrystack.org/problems/registry-scheduling/request/unsupported-media-type
Example
{
"code": "request.unsupported-media-type",
"detail": "The request body is not JSON.",
"status": 415,
"title": "Unsupported media type",
"type": "https://id.registrystack.org/problems/registry-scheduling/request/unsupported-media-type"
}
cache-control
Allowed value: no-store

Every answer is marked no-store, so a booking view is never served from a cache.

traceparent
string

W3C trace context for the request and response.

Problem response: request.unprocessable

Media typeapplication/problem+json
object
code
required
string
Allowed values: authentication.refused booking.duplicate-active cancellation.cutoff-passed capability.unmatched capacity.exhausted cursor.expired cursor.invalid eligibility.unavailable hold.expired hold.released hook.unavailable horizon.outside idempotency.expired idempotency.key-reused location.closed operation.not-authorized party.capacity-inadequate policy.changed precondition.failed precondition.required prerequisite.missing profile.not-authorized receipt.unresolved request.body-too-large request.invalid request.method-not-allowed request.not-found request.unprocessable request.unsupported-media-type resource.unavailable revision.mismatch schedule.unpublished service.unavailable
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string format: uri
code
required
Allowed value: request.unprocessable
detail
required
Allowed value: The request body could not be processed.
status
required
Allowed value: 422
title
required
Allowed value: Request unprocessable
type
required
Allowed value: https://id.registrystack.org/problems/registry-scheduling/request/unprocessable
Example
{
"code": "request.unprocessable",
"detail": "The request body could not be processed.",
"status": 422,
"title": "Request unprocessable",
"type": "https://id.registrystack.org/problems/registry-scheduling/request/unprocessable"
}
cache-control
Allowed value: no-store

Every answer is marked no-store, so a booking view is never served from a cache.

traceparent
string

W3C trace context for the request and response.

Problem response: service.unavailable

Media typeapplication/problem+json
object
code
required
string
Allowed values: authentication.refused booking.duplicate-active cancellation.cutoff-passed capability.unmatched capacity.exhausted cursor.expired cursor.invalid eligibility.unavailable hold.expired hold.released hook.unavailable horizon.outside idempotency.expired idempotency.key-reused location.closed operation.not-authorized party.capacity-inadequate policy.changed precondition.failed precondition.required prerequisite.missing profile.not-authorized receipt.unresolved request.body-too-large request.invalid request.method-not-allowed request.not-found request.unprocessable request.unsupported-media-type resource.unavailable revision.mismatch schedule.unpublished service.unavailable
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string format: uri
code
required
Allowed value: service.unavailable
detail
required
Allowed value: Scheduling storage is unavailable. Try again after the service recovers.
status
required
Allowed value: 503
title
required
Allowed value: Scheduling service unavailable
type
required
Allowed value: https://id.registrystack.org/problems/registry-scheduling/service/unavailable
Example
{
"code": "service.unavailable",
"detail": "Scheduling storage is unavailable. Try again after the service recovers.",
"status": 503,
"title": "Scheduling service unavailable",
"type": "https://id.registrystack.org/problems/registry-scheduling/service/unavailable"
}
Retry-After
integer

Seconds before retrying the unavailable dependency; the runtime answers 5.

cache-control
Allowed value: no-store

Every answer is marked no-store, so a booking view is never served from a cache.

traceparent
string

W3C trace context for the request and response.