Before you send PHI
Send PHI only once your organization is on the Team or Scale plan and has a business associate agreement (BAA) executed with haau3, as the terms require. Write to hello@haau3.com to request one. Until both are in place, the operations below accept only test data and refuse anything else.Test data
Without a BAA in force and the Team or Scale plan, MedList and a member’s Pharmacy Benefits request accept only test data marked as such, on every plan. Mark a request with HL7’s test data label inmeta.security, on the request and on every resource in it:
Bundle or Parameters) carries the label, and so does each resource in
it: every Bundle entry, every resource part, and the entries of a Bundle sent as a part. A resource
contained in another goes with the one that contains it. The example requests on the
MedList and Pharmacy Benefits pages carry the label
already. Pharmacy Benefits’ check without patient details carries no patient, so it needs none.
A request without the label is refused before the operation runs, with a 403 whose
OperationOutcome is coded forbidden and carries phi-agreement-required from
https://haau3.com/fhir/CodeSystem/api-error in issue.details.coding. When some resources carry
the label and some do not, expression names the first resources without it. A test data request
counts toward your plan like any other request.
Label only made-up data. The label says a record is not about a real person, and it is never a way
to send PHI without a BAA.
The operations that receive PHI
Pharmacy Benefits is not yet open to customers.
What they keep
Nothing. Each request is answered on its own, and nothing it carries is stored, cached or kept after the answer is sent. Every answer, errors included, carriesCache-Control: no-store, so no cache
between you and the API keeps one either. An error never repeats a record’s contents: MedList names
a record it skipped only by its fullUrl or {resourceType}/{id}, and Pharmacy Benefits names an
element it refused only by its path.
Where patient data goes
- MedList returns its answer to you and sends nothing that identifies the patient anywhere else.
- Pharmacy Benefits sends a member’s request to the one health plan that answers for the
member’s coverage, with the member’s
Payer-Authorizationwhen you include one, for that one check. It never sends patient data to a source of cash prices.
What the logs hold
For each request, the logs hold its route, method and status; its timing and counts; your organization and API key; haau3’s request id and any request id you send; an error’s type, never its message; whether a member’s authorization was sent; and the names of any query parameters the API refused, never their values. They hold no request body and no answer body. Google Cloud’s own request log also records each request’s URL, IP address and user agent; the two operations above take no query parameters but_format, so their URLs carry no patient
data.
Each request also leaves a usage record of its route, method, status, service, organization and
API key.
Last updated 2026-10-25.