Vital supports ordering with commercial insurance billing. To set this up, there are a set of steps required. This document explains the complete flow for ordering via commercial insurance.

Only commercial payors are supported and public insurance payors (medicare, medicaid, etc…) are not supported.

Setting Insurance Data

To place an order for a user in Vital with commercial insurance, you must first provide Vital with insurance data.

This can be done via the POST /{user_id}/insurance endpoint, with the following payload:

Note that you can only set insurance data for users that already have patient information set, either via an order or via the PATCH /v2/user/{user_id}/info.

It is expected that insurance data will become outdated or change with time. It is the customer’s responsability to update this data with Vital in order to minimise the risk of a denied claim.

"insurance": {
    "payor_code": "string",
    "member_id": "string",
    "group_id": "string", // optional
    "relationship": "Self, Spouse, Other",
    "insured": {
        "first_name": "string",
        "last_name": "string",
        "dob": "YYYY-MM-DD",
        "gender": "string",
        "address": {
            "first_line": "string", 
            "second_line": "string", // optional
            "zip_code": "string",
            "state": "string",
            "city": "string",
        },
        "phone_number": "string",
        "email": "string"
    },
    "guarantor": {
        "first_name": "string",
        "last_name": "string",
        "dob": "YYYY-MM-DD",
        "gender": "string",
        "address": {
            "first_line": "string", 
            "second_line": "string", // optional
            "zip_code": "string",
            "state": "string",
            "city": "string",
        },
        "phone_number": "string",
        "email": "string",
    } // optional if relationship is Self
}

Insured, Guarantor and Relationship

First, let’s understand the relationship, insured and guarantor fields.

insured refers to the insured person, and must always be provided. The relationship field, is the relationship between the patient and the holder of the insurance. For example, if the insured person and the insurance holder are the same, then the relationship is Self.

The guarantor is an optional field, that must be provided when the relationship is NOT Self. The guarantor is the financially responsible party. If provided when the relationship is Self, we will store it, but it may not be propagated to all lab partners, as not all partners accept a guarantor in this situation.

Payor Code

The payor code is a lab specific identifier for an insurance company. Vital has abstracted this away into our own Vital payor codes, allowing customers to supply one lab-agnostic payor code for all labs.

To obtain this code, use the Search Payor Code endpoint, using the insurance company name, and select the code from your insurance company.

It is also possible to use this endpoint to search using external provider’s payor codes (e.g Change HealthCare or Availity).

[
  {
    "code": "AARPA",
    "name": "AARP",
    "aliases": [
      "AARP",
      "AARP"
    ],
    "org_address": {
      "first_line": "PO BOX 740819",
      "second_line": null,
      "country": "US",
      "zip": "30374",
      "city": "ATLANTA",
      "state": "GA"
    }
  },
]

Ordering

Once the above steps are complete, you can place an order as usual, with two differences.

In order to trigger the commercial insurance flow, you must supply the following extra fields in the POST /order payload:

{
	"icd_codes": ["ICD.10"], 
	"billing_type": "commercial_insurance" 
}

Billing type

By default, Vital orders are Client Bill. In order to trigger the insurance flow, you must supply the billing_type field, with commercial_insurance.

Diagnosis Codes

Insurance orders require diagnosis codes to be supplied. You can search for diagnosis codes in our Search ICD Code endpoint.

Insurance Availability

Not all labs and not all states are cleared for insurance ordering. You can verify if a zip code is served for insurance via the GET /v3/order/area/info endpoint.

If a particular lab supports insurance, then you should see commercial_insurance in the supported bill types.

{
  "zip_code": "85007",
  "central_labs": {
    "labcorp": {
      "patient_service_centers": {
        "within_radius": 15,
        "radius": "25"
      },
      "supported_bill_types": [
        "commercial_insurance"
      ]
    },
    ...
  }
}

Error Cases

  1. Order with commercial_insurance billing for a lab that does not support it.
  2. Order with commercial_insurance billing for a state that does not support it.
  3. Order with commercial_insurance billing and provide no ICD codes or invalid ICD codes.
  4. Order with commercial_insurance billing and the user has no insurance data.