Cabinet · HIPAA, under a BAA

What does this member take?

Your app walks a member through a medication form. Cabinet keeps the completed answers, exactly as they submitted them, and never learns who that member is.

You know who. We know what.

Cabinet is built so we never find out who your members are. You keep the identity. We keep the medication list. Only a request from you puts the two back together.

  1. In your systems

    Name
    Jordan Lee
    Date of birth
    Jun 2, 1981
    Member id
    M-20418

    Names, contact details and your member id stay with you. We never ask for a name.

  2. In one request

    PUT /v1/members/M-20418/cabinet/items

    M-20418 9f3c…e71a

    We turn your id into a one-way token, using a key kept apart from the database. Your id lives for this one request, then it’s gone.

  3. In our database

    Token
    9f3c…e71a
    Pillwise id
    3fa8…6afa
    List
    lisinopril · 10 mg tablet encrypted
    Your member id
    M-20418 never stored

    A token, a random id that only means something to you, and the list. Nothing here points to a person.

If someone copied our whole database

They would get

  • Tokens that can’t be turned back into your ids without a key that isn’t there
  • Random Pillwise ids that mean nothing outside your systems
  • Medication lists, encrypted, with no one attached

They would not get

  • Names, birthdays or contact details. We never had them.
  • Your member ids. We never stored them.
  • Any way to tell whose list is whose

The only thing that ties a list to a person lives in your systems. That keeps your risk low and your security review short. We still sign a BAA before the first write, and HIPAA controls are on by default.

A cabinet item is a form, not a pointer.

A live join to a catalog row can rename the pill overnight. Cabinet stores what the member said, with the codes other systems already speak, so you can hand the list off as-is.

Cabinet item

Medicine
lisinopril
Form · strength
tablet · 10 mg
Route
oral
How often
once daily
Started
Mar 4, 2026

as_of as submitted

Notices without names
When something on a stored list changes, the notice carries only our random id. You match it to the member on your side.
Yesterday stays yesterday
Names and codes can change in the catalog. Cabinet never silently rewrites what was submitted. Optional notices tell you what moved.
HIPAA on by default
Encrypted at rest, isolated per tenant, audited in the API. A BAA is signed before the first write.

Built for

Teams that already collect a medication list and need it to stay true after a rename or a vendor change: digital health, pharmacy, PBM and benefits apps.

Not built for

  • A consumer pill reminder, or an EHR
  • Scored drug–drug interactions (not in this version)
  • The $99 Launch plan or Sandbox. A BAA is required before you write.
  • Per-row pricing. Cabinet is priced in bands of members, monthly.

Keep the list they gave you. Reconcile it by hand after every rename.

Cabinet starts at +$199 a month for up to 25,000 members, on any paid Index plan above Launch.