> 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/partner/integration-paths/white-label-apps.md).

# White-Label Apps

Use MDI-hosted intake and messaging when you want a branded patient experience without building those interfaces yourself. Your application still controls when patients enter each flow — MDI just handles the clinical experience itself once they're in it.

This path relies on two short-lived entry points:

* A [Questionnaires & Vouchers](/partner/key-concepts/questionnaires-and-vouchers.md) starts a medical intake.
* A one-time authentication link opens an existing patient's messaging session.

### Configure the experience

Enable white-label apps in the Partner Portal under **Integration → App Setup**. From there, configure branding, custom domains, patient-facing content, and emails under **Account → Branding**.

### Start medical intake

Create a new Voucher whenever a patient needs an evaluation. Each Voucher identifies the questionnaire, the requested [Offerings](/partner/key-concepts/offerings.md), and, when known, the patient.

{% stepper %}
{% step %}

#### Create a Voucher

Your backend calls the Create Voucher endpoint. A Voucher is single-use, so never reuse it for another intake session.

For a returning patient, pass their existing `patient_id`. Doing so prevents duplicate demographic collection.
{% endstep %}

{% step %}

#### Send the patient to intake

Use the Voucher's hosted URL to redirect the patient, or embed the experience directly in your product.
{% endstep %}

{% step %}

#### Continue after submission

After intake submission, MDI creates a [Patients & Encounters](/partner/key-concepts/patients-and-encounters.md) when needed, along with an Encounter for clinical review.
{% endstep %}
{% endstepper %}

Once you're past the basics, use [Voucher Recipes](/partner/exploring-features/voucher-recipes.md) for common new-patient, returning-patient, refill, and follow-up flows.

### Give patients access to messaging

Messaging serves existing patients. Request a one-time authentication link whenever a patient needs to access their conversation with the assigned physician.

Note that the link doesn't create a Patient or Encounter on its own — it only authenticates a patient into the hosted messaging experience.

1. Request the link for the patient's session.
2. Redirect the patient or open the hosted messaging experience.
3. The patient enters their conversation without a separate sign-in step.

See [Patient Portal](/partner/exploring-features/patient-portal.md) for configuration and [Patient Journey](/partner/key-concepts/patient-journey.md) for lifecycle behavior.

### Embed hosted experiences

You can embed intake, messaging, and the Patient Portal directly in your product rather than linking out to them. Intake uses the Voucher's `onboarding_url`, while messaging and the Patient Portal use their own dedicated URLs and authentication handshake.

Use `?fullscreen=true` to remove MDI framing, and grant camera and microphone permissions when required. You'll also want to handle lifecycle events so your product can update as patients progress through the flow.

See [Embedding White-Label Experiences](/partner/integration-paths/embedding-white-label-experiences.md) for URLs, authentication, and supported events.

### Get started

1. Create Sandbox credentials and test the complete workflow.
2. Generate a Voucher and complete intake as a test patient.
3. Verify the Encounter, clinician assignment, and messaging access.
4. Move to Live after completing the [Go-Live Checklist](/partner/get-started/go-live-checklist.md).

### Choose the API path when needed

If MDI-hosted experiences don't fit your product, you can build a custom intake or messaging interface instead, creating Patients and Encounters directly through the API in that model.

See [API](/partner/integration-paths/api.md) for the direct integration flow.


---

# 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/partner/integration-paths/white-label-apps.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.
