> For the complete documentation index, see [llms.txt](https://docs.mdintegrations.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.mdintegrations.com/changelog/2025/unified-offerings-structure-and-stripe-payments.md).

# Unified Offerings Structure & Stripe Payments

*Released June 17, 2025 (window: June 10–17, 2025)*

> **Breaking change:** A new `case_offerings` field is introduced, deprecating `case_prescriptions` and `case_services`. Both structures coexist during a transition period, with a migration deadline of July 31, 2025. This affects white-label intake forms (Create Voucher endpoint), API case creation (Create Case endpoint), and any endpoints that manipulate Prescriptions/Services directly. Shopify/WooCommerce extension users do not need to take action.

Two changes require your attention in this release.

**Shopify plugin changes**: the "Chat With Doctor" button extension needs to be re-added to templates after this deploy. A new option was added to product associations to set up refill orders (from external plugins), with MDI sending a new intake form directly to the patient.

**New Offerings structure**: the `case_offerings` field is introduced, deprecating `case_prescriptions` and `case_services` (see breaking change note above). A new `Offering Submitted` webhook is introduced alongside the existing `Prescription Submitted` webhook — both fire together until `Prescription Submitted` is retired.

## \[Web]

* Consolidated all offering types into a single offerings structure
* Implemented support for Stripe payments
* Reorganized "Integration" page settings
* Added notification options
* Improved encounters export to match invoices export
* Improved webhook logs loading speed
* You can customize copy of hardcoded questions

## \[Clinicians]

* Prescription wildcards (e.g. `patient_special_necessities`) now replaced when the prescription is created, not submitted
* Reply button added to medical intake questions containing a patient question
* Only admins can now cancel completed encounters
* Fixed sandbox/live mode switching issue
* Added support for additional lab result formats
* Added support to trigger workflows when submitting prescriptions

## \[Shopify/WooCommerce Plugins]

* Added support for subscription flow on certain products
* Bug fixes

## \[Patient]

* Implemented support for Stripe payments
* Fonts now apply on inputs/textareas
* Added body temperature and O2 fields
* Added support to edit hardcoded questions

## \[API]

* New webhook for tracking number on Boothwyn orders
* Fixed invalid webhook signature on prescription-submitted webhooks
* Reduced time for considering a doctor OOO (out of office) due to inactivity: 72 hours → 50 hours
* Added support for patient body temperature and O2 fields
* New `special_necessities` field on patient records
* Patients now get a reminder after 48 hours of not uploading ID or AV when requested


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.mdintegrations.com/changelog/2025/unified-offerings-structure-and-stripe-payments.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
