POST /benefit-verification. Use the
example sandbox request to test with synthetic data.
The endpoint reference contains
all request and response fields.
Use National Drug Codes (NDCs) whenever possible. They identify the intended
medication and are required for real-time processing.
Example sandbox request
View example request
View example request
Set Submit the request:Save the returned
DEVELOP_HEALTH_SANDBOX_TOKEN to an API token for your
sandbox organization. Store it
securely on your server.Save this as bv-request.json. The sandbox-only mock_result returns a
simulated result. The NPI is illustrative. Use your configured sandbox test
provider if your workflow requires one.data.id to track the result. For more simulated outcomes,
see sandbox testing.Minimum request and recommended inputs
Include the patient, provider, drug, and insurance inputs above. An accepted
request can still fail later if the payer cannot identify the member or needs
more information.
Patient and provider data
Addresses
Both the patient and provider require a complete address with:streetcitystate_province, using a valid US statezip_postal_code, as a string so leading zeros are preserved
street_line_2 is optional and country defaults to USA. Use the patient’s
current address as recorded with their insurer.
Gender
patient.gender is required and accepts male, female, other, or
not_specified. Use not_specified when the information has not been provided.
Send known information that matches the payer record. Missing demographics can
affect matching and cause delays or inaccurate results.
Patient identifiers
Use a stablepatient.internal_id for the same patient across BV and PA
requests. Store each returned BV ID separately so you can associate webhook
updates with the correct workflow. The patient ID does not deduplicate create
requests.
Provider NPI and tax ID
Send the provider whose NPI is authorized for the verification. Supplying the provider object does not itself authorize the provider. Resolve authorization requirements during onboarding and handle authorization errors. The NPI identifies the provider and is different from an entity’s tax ID.entity.legal_name and entity.tax_id are optional at intake, but some payers
require them to complete verification. A missing tax ID can cause a later
failure even though the API accepted the request. See
BV failure detail codes.
Insurance
Provide at least one ofinsurance (card images) or insurance_content
(structured details). You can send both.
For insurance_content, prioritize the member ID and pharmacy routing codes:
- Preferred: Member ID with Rx BIN, Rx PCN, and Rx group.
- Some Rx codes missing: Member ID with every Rx code you have, plus payer and plan names.
- No Rx codes available: Member ID with payer and plan names.
The alternatives above apply to standard processing. See
real-time inputs for the structured insurance requirements
in real-time modes.
Upload insurance cards
Send each card side as a separate item ininsurance, with the file bytes
encoded as Base64 in file_content. Insurance-card uploads require file
contents; download URLs are unsupported. Replace these placeholders with
Base64-encoded files:
Read extracted insurance data
GET /benefit-verification/{id} returns
insurance records in data.insurance. Each record uses discrete_content for
the values you supplied and scanned_content for values extracted from card
images.
Identify medications by NDC
UseCodedDrugInfo with an ndc and an integer quantity for each medication.
This format supports standard and real-time processing.
Example entry in drugs:
Quantity and units
Quantity is separate from days supply. For the specific Wegovy presentation in the coded example above, four individual single-dose pens usequantity: 4. Confirm the mapping for other presentations, including quantities
recorded in cartons or milliliters.
PA prescriptions have a separate quantity contract. See the
PA prescription guide.
Real-time inputs
Bothrealtime and realtime_only require real-time access to be enabled for
your organization and an NDC for every drug. Include structured insurance in
insurance_content, with the member number and Rx BIN, PCN, and group when
applicable. Card images alone do not qualify.
Use realtime when standard fallback is acceptable, or realtime_only when
your application can handle a failed real-time attempt without fallback. See
real-time processing
for the complete eligibility and fallback rules.
Multiple drugs
Submit one to seven drugs in a single request. Store the returned BV ID and inspect each drug’s result after completion. Real-time completion requires all requested drugs to complete within the real-time deadline. Each submitted drug consumes one unit of the applicable BV drug quota. Confirm billing terms separately with your Develop Health contact.Receive the result
Wait forbenefit_verification.status_change or use
GET /benefit-verification/{id}.
Completion time depends on the verification method and payer, including after
real-time fallback.
See completion time
for typical timings by method and response handling
to determine when results are ready.