Pharmacy Benefits API
Show what a prescription will cost before it is filled: cash prices at pharmacies near a ZIP code, or what a member pays under their own pharmacy coverage.
One of haau3's two Benefits services. See Benefits
The haau3 platform API is in preview: it may change as we build, usually to add features or improve performance. Not yet open to customers. Try it now in the Sandbox, where a test insurer, Example Health Plan, answers for synthetic members.
Request
POST /v1/fhir/r4/$process-message
{
"resourceType": "Bundle",
"type": "message",
"entry": [
{ "resource": {
"resourceType": "MessageHeader",
"eventCoding": { "code": "rtpbc-request" } } },
{ "resource": {
"resourceType": "Claim",
"item": [{ "productOrService": { "coding": [{
"code": "311354",
"display": "lisinopril 5 MG Oral Tablet" }] } }] } },
{ "resource": {
"resourceType": "Coverage",
"subscriberId": "EX0000001",
"payor": [{ "display": "Example Health Plan" }] } }
]
}Response
{
"resourceType": "Bundle",
"type": "message",
"entry": [{
"resource": {
"resourceType": "ClaimResponse",
"insurer": { "display": "Example Health Plan" },
"outcome": "complete",
"item": [{
"extension": [{
"url":
"http://hl7.org/fhir/us/carin-rtpbc/StructureDefinition/rtpbc-benefitRestriction",
"valueCoding": {
"code": "covered",
"display": "Covered" } }],
"adjudication": [
{ "category": { "coding": [{
"code": "copay", "display": "Copay" }] },
"amount": { "value": 10, "currency": "USD" } },
{ "category": { "coding": [{
"code": "total",
"display": "Total patient responsibility" }] },
"amount": { "value": 10, "currency": "USD" } }
]
}]
}
}]
}Every answer, from one table.
In the Sandbox, Example Health Plan, a test insurer, answers each test member the same way every time. A request names a test member and a medication, and the tables say what comes back.
Test members
| Test member | Member ID | What every request gets |
|---|---|---|
| Yuk Sample | EX0000001 | The formulary table's answer for the medication |
| Chris Sample | EX-DECLINED | The insurer declines the request, whatever the medication |
| Anyone else | for example EX0000099 | An error: no test member matched |
Medications
| Medication | Outcome | The answer |
|---|---|---|
lisinopril 5 MG Oral Tablet RxNorm 311354 · NDC 00093111210 | Priced with a copay | Covered. Copay $10, total $10. |
atorvastatin 20 MG Oral Tablet RxNorm 617310 · NDC 00093505910 | Covered at $0, with an alternative | Covered. Copay $0, total $0. Alternative: rosuvastatin calcium 10 MG Oral Tablet. Covered. Copay $0, total $0. |
sofosbuvir 400 MG / velpatasvir 100 MG Oral Tablet [Epclusa] RxNorm 1799218 · NDC 61958220101 | Not covered, with an alternative | Not covered. Eligible amount $0. Alternative: elbasvir 50 MG / grazoprevir 100 MG Oral Tablet [Zepatier]. Prior authorization required and quantity limit applies (28 tablets per month). Copay $405, coinsurance $469, total $874. |
fluoxetine 10 MG Oral Capsule [Prozac] RxNorm 205535 · NDC 00777310402 | Prior authorization required | Prior authorization required. Copay $40, coinsurance $30, total $70. Alternative: fluoxetine 10 MG Oral Capsule. Covered. Copay $10, total $10. |
sumatriptan 50 MG Oral Tablet RxNorm 313161 · NDC 00378563159 | Quantity limit | Quantity limit applies (9 tablets per 30 days). Copay $10, total $10. |
| Any other medication | Priced with a copay | Covered. Copay $15, total $15. |
What it does
- Cash prices at pharmacies near the ZIP codes a request names, with no patient details
- A member's price under their own pharmacy coverage, from their health plan, with the member's authorization
- Coverage, copays, prior authorization, quantity limits and lower-cost alternatives, as the CARIN answer carries them
- The CARIN request and answer as the STU2 ballot specifies them
- In the Sandbox, test members and a published table of medications, each with one answer that never changes
- Nothing a request carries is stored or logged
Built on
Send the CARIN Consumer Real-Time Pharmacy Benefit Check and get back what a prescription would cost. A request with no patient details gets cash prices at pharmacies near the ZIP codes it names, each naming where its price comes from. A member's request goes to their own health plan with the member's authorization, and comes back with whether the medication is covered, what the member pays, any prior authorization or quantity limit, and lower-cost alternatives. Pharmacy Benefits serves the prescription part of Real-Time Benefits, a CMS Health Tech Ecosystem use case.
Start building today
Detailed developer docs live at docs.haau3.com.
Open-source SDKs for TypeScript, Python and Go cover every endpoint. SDK docs