# Submit a report for a pending reporting appointment Submits preliminary/final report content and interpreting clinician details for a pending reporting appointment. Report submissions overwrite any existing report for the appointment. You can submit a preliminary report and later submit a final report; resubmissions update the report content. Idempotency: supports the Idempotency-Key header. Reuse the same key with the same payload to receive the original response; reuse with a different payload returns 409 Conflict. Keys are retained for 24 hours. Without the header, retries can create duplicate reports. Returns 404 when the appointment is not found or is not in the PENDING REPORTING status. Endpoint: POST /integrations/v1/{domain}/reporting/appointments/{appointmentId}/report Version: v1 Security: Bearer ## Path parameters: - `domain` (string, required) Partner domain identifier. Your bearer token is scoped to one or more domains and requests outside that scope are rejected. Example: "acme" - `appointmentId` (string, required) Appointment identifier within the specified domain. Example: "A123456" ## Header parameters: - `X-Correlation-Id` (string) Request correlation identifier. Echoes the incoming X-Correlation-Id header when provided. Example: "4b7f0a91b4f54f2a" - `Idempotency-Key` (string) Idempotency key for safely retrying POST requests. Use a stable ASCII token (recommend a UUID) up to 128 characters. Reuse the same key with the same request payload to receive the original response; reuse with a different payload returns 409 Conflict. For timeouts or transient errors, retry with the same key and exponential backoff. Example: "cd4a859c7a1f4b44b765a8fe17bb44c1" ## Request fields (application/json): - `reportText` (string, required) Report content text. Required. Stored as-is. ReportText must be 2097152 bytes or less when UTF-8 encoded. Example: "Example reportText" - `reportStatus` (string, required) Report status. One of: preliminary, final. Case-insensitive. Enum: "preliminary", "final" - `reportFormat` (null,string) Optional report format or MIME type for the report content. Defaults to text/plain when omitted. Example: "text/plain" - `interpretingClinicianName` (null,string) Interpreting clinician display name. Example: "Example Name" - `interpretingClinicianProviderNumber` (null,string) Interpreting clinician provider number. Example: "Example interpretingClinicianProviderNumber" - `interpretingClinicianEmail` (null,string) Interpreting clinician email address. Example: "user@example.com" - `reportedAtUtc` (null,string) UTC timestamp for when the report was created or submitted. Example: "2020-01-01T00:00:00Z" ## Response 201 fields (application/json): - `reportGuid` (string, required) Report GUID. Example: "123" - `reportStatus` (string) Report status as stored. Enum: "preliminary", "final" - `reportedAtUtc` (null,string) UTC timestamp for when the report was created or submitted. Example: "2020-01-01T00:00:00Z" ## Response 400 fields (application/problem+json): - `type` (string) Stable error type identifier (urn:qubs:integrations:...). For each response, the type matches the HTTP status. Enum: "urn:qubs:integrations:bad-request" - `title` (null,string) Short, human-readable summary of the error. Example: "Example title" - `status` (integer) HTTP status code for this error response. Example: 400 - `detail` (null,string) Detailed description of the error. Example: "Example detail" - `instance` (null,string) Request path for this error. Example: "Example instance" - `requestId` (string) Request correlation identifier for support. Also returned as the X-Correlation-Id response header. Example: "4b7f0a91b4f54f2a" ## Response 401 fields (application/problem+json): - `type` (string) Stable error type identifier (urn:qubs:integrations:...). For each response, the type matches the HTTP status. Enum: "urn:qubs:integrations:unauthorized" - `title` (null,string) Short, human-readable summary of the error. Example: "Example title" - `status` (integer) HTTP status code for this error response. Example: 401 - `detail` (null,string) Detailed description of the error. Example: "Example detail" - `instance` (null,string) Request path for this error. Example: "Example instance" - `requestId` (string) Request correlation identifier for support. Also returned as the X-Correlation-Id response header. Example: "4b7f0a91b4f54f2a" ## Response 403 fields (application/problem+json): - `type` (string) Stable error type identifier (urn:qubs:integrations:...). For each response, the type matches the HTTP status. Enum: "urn:qubs:integrations:forbidden" - `title` (null,string) Short, human-readable summary of the error. Example: "Example title" - `status` (integer) HTTP status code for this error response. Example: 403 - `detail` (null,string) Detailed description of the error. Example: "Example detail" - `instance` (null,string) Request path for this error. Example: "Example instance" - `requestId` (string) Request correlation identifier for support. Also returned as the X-Correlation-Id response header. Example: "4b7f0a91b4f54f2a" ## Response 404 fields (application/problem+json): - `type` (string) Stable error type identifier (urn:qubs:integrations:...). For each response, the type matches the HTTP status. Enum: "urn:qubs:integrations:not-found" - `title` (null,string) Short, human-readable summary of the error. Example: "Example title" - `status` (integer) HTTP status code for this error response. Example: 404 - `detail` (null,string) Detailed description of the error. Example: "Example detail" - `instance` (null,string) Request path for this error. Example: "Example instance" - `requestId` (string) Request correlation identifier for support. Also returned as the X-Correlation-Id response header. Example: "4b7f0a91b4f54f2a" ## Response 409 fields (application/problem+json): - `type` (string) Stable error type identifier (urn:qubs:integrations:...). For each response, the type matches the HTTP status. Enum: "urn:qubs:integrations:conflict" - `title` (null,string) Short, human-readable summary of the error. Example: "Example title" - `status` (integer) HTTP status code for this error response. Example: 409 - `detail` (null,string) Detailed description of the error. Example: "Example detail" - `instance` (null,string) Request path for this error. Example: "Example instance" - `requestId` (string) Request correlation identifier for support. Also returned as the X-Correlation-Id response header. Example: "4b7f0a91b4f54f2a" ## Response 429 fields (application/problem+json): - `type` (string) Stable error type identifier (urn:qubs:integrations:...). For each response, the type matches the HTTP status. Enum: "urn:qubs:integrations:too-many-requests" - `title` (null,string) Short, human-readable summary of the error. Example: "Example title" - `status` (integer) HTTP status code for this error response. Example: 429 - `detail` (null,string) Detailed description of the error. Example: "Example detail" - `instance` (null,string) Request path for this error. Example: "Example instance" - `requestId` (string) Request correlation identifier for support. Also returned as the X-Correlation-Id response header. Example: "4b7f0a91b4f54f2a" ## Response 500 fields (application/problem+json): - `type` (string) Stable error type identifier (urn:qubs:integrations:...). For each response, the type matches the HTTP status. Enum: "urn:qubs:integrations:server-error" - `title` (null,string) Short, human-readable summary of the error. Example: "Example title" - `status` (integer) HTTP status code for this error response. Example: 500 - `detail` (null,string) Detailed description of the error. Example: "Example detail" - `instance` (null,string) Request path for this error. Example: "Example instance" - `requestId` (string) Request correlation identifier for support. Also returned as the X-Correlation-Id response header. Example: "4b7f0a91b4f54f2a"