Skip to main content
Complete reference of all webhook events sent by Parchment, including payload structures and examples.

Event Structure

All webhooks follow this standard structure:
{
  "event_type": "prescription.created",
  "event_id": "evt_e0a97272f60e4952f4b69f2bfb7acead",
  "timestamp": "2025-12-19T06:15:18.786Z",
  "partner_id": "tacklit",
  "organization_id": "7fa84d2b-26d7-4c71-9b5b-e591eff97e7d",
  "data": {
    "patient_id": "f03b972b-53ea-452d-ae48-024817f6c3b0",
    "partner_patient_id": "1523402100149593750",
    "user_id": "8e1c9bab-6614-4723-8981-87c8fa026dae"
    // Event-specific fields
  },
  "metadata": {
    "reserved_1": null,
    "reserved_2": null,
    "reserved_3": null
  }
}

Root Event Fields

FieldTypeDescription
event_typestringEvent type (e.g., prescription.created)
event_idstringUnique event identifier (format: evt_xxx)
timestampstringISO 8601 timestamp when event was created
partner_idstringYour partner identifier
organization_idstringParchment organization ID (UUID)
dataobjectEvent-specific data
metadataobjectReserved custom-data fields. Always present; see Reserved Metadata Fields

Data Object (Common Fields)

FieldTypeDescription
patient_idstringParchment patient ID (UUID)
partner_patient_idstringYour internal patient ID
user_idstringID of the user (prescriber) who triggered the event (UUID)

Reserved Metadata Fields

Every webhook includes a top-level metadata object carrying three reserved fields:
FieldTypeDescription
reserved_1string | nullReserved for future use
reserved_2string | nullReserved for future use
reserved_3string | nullReserved for future use
These fields are reserved for future use. They are always present on every event and are currently always null. Parchment may begin populating them later without changing the payload structure — so build your integration to tolerate them being present, but do not rely on any specific values or semantics yet.

Prescription Events

prescription.created

Sent when a new prescription is created in Parchment.
{
  "event_type": "prescription.created",
  "event_id": "evt_e0a97272f60e4952f4b69f2bfb7acead",
  "timestamp": "2025-12-19T06:15:18.786Z",
  "partner_id": "tacklit",
  "organization_id": "7fa84d2b-26d7-4c71-9b5b-e591eff97e7d",
  "data": {
    "patient_id": "f03b972b-53ea-452d-ae48-024817f6c3b0",
    "partner_patient_id": "1523402100149593750",
    "user_id": "8e1c9bab-6614-4723-8981-87c8fa026dae",
    "scid": "2TM1XVXBJRWXH8NM68"
  },
  "metadata": {
    "reserved_1": null,
    "reserved_2": null,
    "reserved_3": null
  }
}
Root Fields:
FieldTypeDescription
event_typestringAlways prescription.created for this event
event_idstringUnique event identifier (format: evt_xxx)
timestampstringISO 8601 timestamp when the event was created
partner_idstringYour partner identifier
organization_idstringUUID of the organization where the prescription was created
Data Fields:
FieldTypeDescription
patient_idstringParchment’s internal patient ID (UUID)
partner_patient_idstringYour system’s patient ID (as provided during patient creation)
user_idstringUUID of the user (prescriber) who created the prescription
scidstringScript Control Identifier - the unique identifier for the prescription in the eRx system
When to expect:
  • After a prescription is successfully created via the Parchment portal or iFrame
  • Sent immediately after prescription creation is complete
Common use cases:
  • Update your system with the new prescription SCID
  • Use the SCID to fetch full prescription details via the Get Patient Prescriptions API endpoint
  • Sync prescription data to your platform
  • Trigger follow-up workflows (e.g., patient notifications)
The webhook provides the SCID (Script Control Identifier) which you can use to retrieve the complete prescription details by calling the Get Patient Prescriptions API endpoint with the partner_patient_id.

prescription.ceased

Sent when an active prescription is ceased (stopped) in Parchment.
{
  "event_type": "prescription.ceased",
  "event_id": "evt_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
  "timestamp": "2025-12-19T06:15:18.786Z",
  "partner_id": "tacklit",
  "organization_id": "7fa84d2b-26d7-4c71-9b5b-e591eff97e7d",
  "data": {
    "patient_id": "f03b972b-53ea-452d-ae48-024817f6c3b0",
    "partner_patient_id": "1523402100149593750",
    "user_id": "8e1c9bab-6614-4723-8981-87c8fa026dae",
    "scid": "2TM1XVXBJRWXH8NM68"
  },
  "metadata": {
    "reserved_1": null,
    "reserved_2": null,
    "reserved_3": null
  }
}
Root Fields:
FieldTypeDescription
event_typestringAlways prescription.ceased for this event
event_idstringUnique event identifier (format: evt_xxx)
timestampstringISO 8601 timestamp when the event was created
partner_idstringYour partner identifier
organization_idstringUUID of the organization where the prescription was ceased
Data Fields:
FieldTypeDescription
patient_idstringParchment’s internal patient ID (UUID)
partner_patient_idstringYour system’s patient ID (as provided during patient creation)
user_idstringUUID of the user (prescriber) who ceased the prescription
scidstringScript Control Identifier - the unique identifier for the prescription in the eRx system
When to expect:
  • After an active prescription is ceased via the Parchment portal or iFrame
  • Sent immediately after the cease action is complete
Common use cases:
  • Mark the prescription as no longer active in your system
  • Stop any follow-up workflows tied to the ceased prescription
  • Use the SCID to fetch the latest prescription state via the Get Patient Prescriptions API endpoint

prescription.cancelled

Sent when a prescription is cancelled in Parchment.
{
  "event_type": "prescription.cancelled",
  "event_id": "evt_b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7",
  "timestamp": "2025-12-19T06:15:18.786Z",
  "partner_id": "tacklit",
  "organization_id": "7fa84d2b-26d7-4c71-9b5b-e591eff97e7d",
  "data": {
    "patient_id": "f03b972b-53ea-452d-ae48-024817f6c3b0",
    "partner_patient_id": "1523402100149593750",
    "user_id": "8e1c9bab-6614-4723-8981-87c8fa026dae",
    "scid": "2TM1XVXBJRWXH8NM68"
  },
  "metadata": {
    "reserved_1": null,
    "reserved_2": null,
    "reserved_3": null
  }
}
Root Fields:
FieldTypeDescription
event_typestringAlways prescription.cancelled for this event
event_idstringUnique event identifier (format: evt_xxx)
timestampstringISO 8601 timestamp when the event was created
partner_idstringYour partner identifier
organization_idstringUUID of the organization where the prescription was cancelled
Data Fields:
FieldTypeDescription
patient_idstringParchment’s internal patient ID (UUID)
partner_patient_idstringYour system’s patient ID (as provided during patient creation)
user_idstringUUID of the user (prescriber) who cancelled the prescription
scidstringScript Control Identifier - the unique identifier for the prescription in the eRx system
When to expect:
  • After a prescription is cancelled via the Parchment portal or iFrame
  • Sent immediately after the cancel action is complete
Common use cases:
  • Mark the prescription as cancelled in your system
  • Reverse or void any workflow tied to the cancelled prescription
  • Use the SCID to fetch the latest prescription state via the Get Patient Prescriptions API endpoint

prescription.reissued

Sent when a prescription is reissued in Parchment (the prescription token is re-delivered; the SCID is unchanged).
{
  "event_type": "prescription.reissued",
  "event_id": "evt_c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8",
  "timestamp": "2025-12-19T06:15:18.786Z",
  "partner_id": "tacklit",
  "organization_id": "7fa84d2b-26d7-4c71-9b5b-e591eff97e7d",
  "data": {
    "patient_id": "f03b972b-53ea-452d-ae48-024817f6c3b0",
    "partner_patient_id": "1523402100149593750",
    "user_id": "8e1c9bab-6614-4723-8981-87c8fa026dae",
    "scid": "2TM1XVXBJRWXH8NM68"
  },
  "metadata": {
    "reserved_1": null,
    "reserved_2": null,
    "reserved_3": null
  }
}
Root Fields:
FieldTypeDescription
event_typestringAlways prescription.reissued for this event
event_idstringUnique event identifier (format: evt_xxx)
timestampstringISO 8601 timestamp when the event was created
partner_idstringYour partner identifier
organization_idstringUUID of the organization where the prescription was reissued
Data Fields:
FieldTypeDescription
patient_idstringParchment’s internal patient ID (UUID)
partner_patient_idstringYour system’s patient ID (as provided during patient creation)
user_idstringUUID of the user (prescriber) who reissued the prescription
scidstringScript Control Identifier - unchanged by the reissue (the same prescription is re-delivered)
When to expect:
  • After a prescription token is reissued via the Parchment portal or iFrame
  • Sent immediately after the reissue action is complete
Common use cases:
  • Notify the patient that the prescription token has been re-sent
  • Refresh any cached prescription token / delivery details in your system
  • Use the SCID to fetch the latest prescription state via the Get Patient Prescriptions API endpoint
The fetched prescription includes a delivery object describing how and where it was sent (channel, recipient type, destination, and the pharmacy identity for pharmacy sends). delivery always reflects the current version, so a reissue overwrites it. To build a full delivery history (e.g. an original send followed by reissues to different addresses), fetch the prescription in response to each prescription.created / prescription.reissued notification — every fetch returns the delivery state as at that event. The webhook payload itself carries IDs only.

Event Filtering

By Event Type

Process only specific event types:
app.post('/webhook', (req, res) => {
  const event = req.body;

  switch (event.event_type) {
    case 'prescription.created':
      handlePrescriptionCreated(event);
      break;

    case 'prescription.ceased':
      handlePrescriptionCeased(event);
      break;

    case 'prescription.cancelled':
      handlePrescriptionCancelled(event);
      break;

    case 'prescription.reissued':
      handlePrescriptionReissued(event);
      break;

    // Handle other events...
  }

  res.status(200).json({ received: true });
});