generated: '2026-08-14' method: searched source: - https://www.tebra.com/wp-content/uploads/2025/05/Tebra-FHIR-API-User-Guide.pdf - https://www.tebra.com/wp-content/uploads/2023/10/General_API_Documentation-Tebra.pdf - openapi/tebra-fhir-api-openapi.yml - openapi/tebra-clinical-api-openapi.yml description: >- Cross-cutting runtime semantics across Tebra's three API surfaces. Tebra does not document idempotency, request-id tracing, or a rate-limit signaling header on any surface. auth_style: fhir: SMART on FHIR OAuth 2.0 (authorization-code for user-facing apps, client-credentials for backend apps) clinical_rest: 'API Key in the X-Api-Key header (patient-generated from the Patient Portal)' soap: Customer key + granted permissions, generated by a practice System Administrator idempotency: supported: false evidence: No idempotency-key header, replay-safety guarantee, or retry-safety statement is documented on any surface. pagination: fhir: style: FHIR standard Bundle paging evidence: >- Not separately documented by Tebra; inherited from the underlying FHIR R4 searchset Bundle mechanism (Bundle.link relations next/self/previous), per the FHIR base specification the guide says it implements. clinical_rest: style: none documented evidence: Single-patient scoped responses; startdate/endDate filters exist but no page/limit/cursor parameters are documented. soap: style: none documented metadata: fhir: 'Bundle.meta / resource.meta per standard FHIR; not separately documented by Tebra.' clinical_rest: 'A `meta.date` field (UTC ISO 8601) is included in every response per the Oct 2023 PDF examples.' request_id_tracing: supported: false evidence: No X-Request-Id / correlation-id header is documented on any surface. versioning: fhir: 'HL7 FHIR R4, US Core Implementation Guide STU3 Release 3.1.1 (guide states "ongoing" implementation with new resources to be added).' clinical_rest: 'API version pinned in the path: /clinical/v1/api.' soap: 'SOAP version pinned in the path: /soap/2.1/.' error_envelope: fhir: 'FHIR OperationOutcome (resourceType/issue[]) - see errors/tebra-problem-types.yml.' clinical_rest: 'Custom {status, message} JSON object - see errors/tebra-problem-types.yml.' soap: 'SOAP 1.1/1.2 Fault - see errors/tebra-problem-types.yml.' rate_limit_signaling: supported: false evidence: >- No X-RateLimit-* / RateLimit-* response headers are documented. The FHIR API documents a 429 "Too Many Requests" status but no header signaling the remaining quota; the SOAP API exposes a GetThrottles operation to read throttle configuration rather than signaling it via response headers - see rate-limits/tebra-rate-limits.yml. cross_links: errors: errors/tebra-problem-types.yml lifecycle: lifecycle/tebra-lifecycle.yml authentication: authentication/tebra-authentication.yml rate_limits: rate-limits/tebra-rate-limits.yml