Truepill · AsyncAPI Specification
Truepill Webhooks
Version
View Spec
View on GitHub
PharmacyHealthcarePrescription FulfillmentTelehealthDiagnosticsInsuranceCopay AdjudicationPrior AuthorizationElectronic PrescribingPharmacy TransfersWebhookHIPAAAsyncAPIWebhooksEvents
AsyncAPI Specification
generated: '2026-08-14'
method: searched
source: https://rxdocs.fuzehealth.com (Webhook Events and every per-product webhook section)
provider: Truepill
providerId: truepill
asyncapi_published: false
asyncapi_note: >-
Truepill / FuzeRx publishes NO AsyncAPI document. Probes of /asyncapi.yaml,
/asyncapi.json and the docs host returned nothing, and the GitHub orgs contain no
event schemas. This file is the webhook catalogue harvested from the published
reference — it is a faithful record of the provider's event surface, NOT an
AsyncAPI specification, and it is deliberately not written as one.
summary: >-
FuzeRx is asynchronous by design: a POST to the pharmacy surface returns 200/202
meaning accepted, and the real outcome arrives later as a webhook event POSTed to
a customer-hosted endpoint. Twelve callback_type values are documented. The same
events are also PULLABLE — GET /v1/webhook_events/{webhook_type} replays them
with cursor pagination, which is the recovery path when a delivery is missed.
delivery:
transport: HTTPS POST to a customer-hosted webhook server
configuration: >-
Production and test webhook endpoints are set in the FuzeRx Dashboard under
the gear icon → Profile → Account Details, which also exposes a test action.
separate_test_endpoint: true
signing:
documented: false
note: >-
No signature header, shared secret, or verification procedure is documented.
A consumer cannot cryptographically verify that a webhook came from FuzeRx —
a material gap for a surface that carries PHI-adjacent tokens.
retries:
documented: false
replay:
supported: true
operation: GET /v1/webhook_events/{webhook_type}
pagination: cursor (results[] capped at 100, next_page_token → `next` param)
filters: 'id, timestamp, next, status with $lt/$gt/$lte/$gte/$eq operators'
shared_event_shape:
fields:
- name: request_id
type: string
description: Token identifier of the originating request (fill request, direct transfer, etc.).
- name: callback_type
type: string
description: The event type.
- name: status
type: string
description: 'Most commonly success or error; also triage on ORDER and COPAY.'
- name: details
type: object
description: Type-specific payload.
- name: timestamp
type: integer
description: Unix epoch seconds.
exception: >-
NOTIFY_RX carries only callback_type, timestamp and details — it has no
request_id and no status, because it is not the outcome of a customer request.
correlation: >-
details.metadata echoes a customer-supplied string through the whole
lifecycle and is the practical join key.
event_count: 12
events:
- callback_type: NOTIFY_RX
trigger: A prescription for your patient arrives at the FuzeRx pharmacy over Surescripts.
status_values: []
details_fields:
- medication_name
- prescriber
- prescription_token
- patient_token
- transfer_prescription_token
- location
pull_type: notify_rx
- callback_type: ORDER
trigger: A fill request / order is processed, rejected, or moved to triage.
status_values:
- success
- error
- triage
error_codes: errors/truepill-error-codes.yml (Order Error Codes)
triage_codes: errors/truepill-error-codes.yml (Order Triage Codes)
details_fields:
- metadata
- message
- date_filled
- medications[]
- order_token
- callback_type: SHIPMENT
trigger: Carrier scan events for a dispensed order.
status_values:
- success
details_fields:
- metadata
- status
- message
- eta
- tracking_number
- tracking_url
- carrier
shipment_statuses:
- TRANSIT
- DELIVERED
- callback_type: TRANSFER
trigger: Outcome of a pharmacy-to-pharmacy transfer request.
status_values:
- success
- error
error_codes: errors/truepill-error-codes.yml (Transfer Error Codes)
- callback_type: TRANSFER_CONTACT
trigger: FuzeRx contacted the losing pharmacy or the prescriber on a transfer.
status_values:
- success
- error
details_fields:
- metadata
- message
- patient_token
- transfer_token
- contact_name
- contact_method
- contact_number
- callback_type: DIRECT_TRANSFER
trigger: Outcome of POST /v1/direct_transfer.
status_values:
- success
- error
- callback_type: DIRECT_TRANSFER_V2
trigger: Outcome of POST /v2/direct_transfer (RxForward / RxTransfer).
status_values:
- success
- error
- callback_type: COPAY
trigger: Real-time copay / out-of-pocket determination for a prescription.
status_values:
- success
- error
- triage
error_codes: errors/truepill-decline-codes.yml
triage_codes: errors/truepill-decline-codes.yml (CT001–CT010)
- callback_type: COVERAGE
trigger: Outcome of POST /v1/coverage_request — pharmacy benefit coverage determination.
status_values:
- success
- error
- callback_type: PRIOR_AUTH
trigger: Outcome of POST /v1/prior_authorization.
status_values:
- success
- error
- callback_type: CONSULT
trigger: Telehealth consult state changes.
status_values:
- success
- error
- callback_type: FILE
trigger: A patient's identification photo or selfie is uploaded against a consult.
details_fields:
- metadata
- documents[] with status, document_id, tags
document_tags:
- SELFIE
- PHOTO_ID
note: Carries consult_id at the top level rather than request_id.
gaps:
- No AsyncAPI or JSON Schema for any event payload.
- No webhook signature or verification mechanism documented.
- No retry/backoff policy documented; the pull endpoint is the only stated recovery path.
- The overview list in the docs names 9 event types; three more (TRANSFER_CONTACT, DIRECT_TRANSFER_V2, FILE) appear only inside product sections.
maintainers:
- FN: Kin Lane
email: kin@apievangelist.com