---
title: "Medicaid"
method: POST
path: "/v1/medicaid"
---

# Medicaid

`POST /v1/medicaid`

## Request body

- MedicaidInput
  - `member_first_name` string, required — Member's first name; as printed on the insurance card.
  - `member_last_name` string, required — Member's last name; as printed on the insurance card.
  - `member_dob` string, date, required — Member's date of birth provided in yyyy-mm-dd format
  - `provider_npi` string, required — Service Provider's 10-character NPI
  - `member_id` string — Member's unique insurance ID, as printed on the insurance card
  - `member_gender` 'M' | 'F'
  - `office_id` string — An identifier for the office or location being visited.
  - `patient_id` string — Patient's id
  - `payer_id` string — Payer ID used to verify benefits
  - `patient_state` string — Patient's state
  - `next_appointment` string, date — Patient's next appointment date in yyyy-mm-dd format
  - `patient_type` 'PROSPECT' | 'NEW_PATIENT' | 'EXISTING_PATIENT'
  - `cpt_code` string — CPT (Current Procedural Terminology) code
  - `with_alerts` boolean — If true, return the list of OneVerify alerts
  - `modality_code` 'PMC' | 'PHT' | 'PSC' | 'PSY' | 'MRI' | 'HST' | 'MNT' | 'CT' | 'IOP' | 'PHP' | 'UC' | 'ABA' | 'OBG' | 'MAT' | 'ORP' | 'DER' | 'GI' | 'ST' | 'CAR' | 'OT' | 'LAB'

## Response `200`

Successful Response

- union
  - MedicaidResponse
    - `payer_id` string
    - `plan_status` 'UNKNOWN' | 'INACTIVE' | 'ACTIVE' | 'ACTIVE_AT_RISK'
    - `coverage_status` 'UNKNOWN' | 'INACTIVE' | 'ACTIVE'
    - `plan_type` 'UNKNOWN' | 'ORIGINAL_MEDICAID' | 'MANAGED_MEDICAID' | 'MEDICARE_ADVANTAGE' | 'ORIGINAL_MEDICARE' | 'DUAL' | 'MARKETPLACE' | 'GOVERNMENT' | 'COMMERCIAL'
    - `plan_name` string — The name of the member's insurance plan
    - `plan_begin_date` string, date — The date the member's plan was activated
    - `plan_end_date` string, date — The date the member's plan expires
    - `insurance_type` 'HMO' | 'PPO' | 'EPO' | 'POS'
    - `managed_care_organization` string
    - `eligibility_type` string, required
    - `demographics` Demographics
      - `gender` 'M' | 'F'
      - `member_id` string — Member's unique insurance ID, as provided by the insurer
      - `first_name` string — First name, as printed on the insurer card or government ID
      - `last_name` string — Last name, as printed on the insurer card or government ID
      - `dob` string, date — Date of birth, as printed on the insurer card or government ID
      - `address` AddressModel
        - `street_line_1` string, required — Physical address of client: street name and number
        - `street_line_2` string — Physical address of client: apartment or unit number
        - `city` string, required — Physical address of client: city
        - `state` string, required — Physical address of client: state
        - `zip` string, required — Physical address of client: zip
    - `relationship_to_subscriber` string — The member's relation to the subscriber of the plan (e.g. self, spouse, child, etc.)
    - `subscriber_demographics` Demographics
      - `gender` 'M' | 'F'
      - `member_id` string — Member's unique insurance ID, as provided by the insurer
      - `first_name` string — First name, as printed on the insurer card or government ID
      - `last_name` string — Last name, as printed on the insurer card or government ID
      - `dob` string, date — Date of birth, as printed on the insurer card or government ID
      - `address` AddressModel
        - `street_line_1` string, required — Physical address of client: street name and number
        - `street_line_2` string — Physical address of client: apartment or unit number
        - `city` string, required — Physical address of client: city
        - `state` string, required — Physical address of client: state
        - `zip` string, required — Physical address of client: zip
    - `additional_policy` AdditionalPolicy
      - `type` string
      - `insurer` string
      - `member_id` string
      - `plan_type` 'MEDICAID' | 'UNKNOWN'
    - `member_obligation` integer — Cost to the member for the next session, in cents
    - `benefit_structure` 'Copay, no deductible, no OOP Max' | 'Copay, no deductible, with OOP Max' | 'Coinsurance after deductible, no OOP Max' | 'Coinsurance after deductible, with OOP Max' | 'Copay after deductible, no OOP Max' | 'Copay after deductible, with OOP Max' | 'Coinsurance, no deductible, no OOP Max' | 'Coinsurance, no deductible, with OOP Max' | 'Copay and coinsurance after deductible, no OOP Max' | 'Copay and coinsurance after deductible, with OOP Max' | 'Copay and coinsurance, no deductible, no OOP Max' | 'Copay and coinsurance, no deductible, with OOP Max' | 'Fully covered' | 'Fully covered after deductible' | 'Other' | 'Unknown'
    - `copayment` integer — Amount that must be collected from the member regardless of deductible status, in cents
    - `coinsurance` integer — Percentage of the session charge for which the member is responsible
    - `deductible` integer — Total deductible of the member's plan, in cents
    - `remaining_deductible` integer — Amount remaining in the member's deductible, in cents
    - `oop_max` integer — Total out-of-pocket maximum of the member's plan, in cents
    - `remaining_oop_max` integer — Amount remaining in the member's out-of-pocket maximum before insurance waives member responsibility, in cents
    - `qmb_status` boolean — Indicates if the member has Qualified Medicare Beneficiary (QMB) status
    - `alerts` string[] — Alerts for OneVerify Reports
    - `network_status` NetworkStatus
      - `is_alert` boolean, nullable
      - `rule` NetworkStatusRule
        - `id` integer, required
        - `network_status` 'IN' | 'OUT', required
    - `eligibility_end_date` string, date — The date when the member lost coverage
  - CoverageResponseError
    - `alerts` string[] — Alerts for OneVerify Reports
    - `error` CoverageError, required
      - `code` 'PAYER_NOT_SUPPORTED' | 'PAYER_FAILURE' | 'MEMBER_NOT_FOUND' | 'MEMBER_ID_PAYER_ID_INVALID' | 'ERROR_RETRIEVING_COVERAGE' | 'NOT_YET_IMPLEMENTED' | 'PROVIDER_NOT_RECOGNIZED' | 'TOO_MANY_REQUESTS' | 'UNEXPECTED_ERROR' | 'INVALID_INPUT' | 'UNKNOWN_PLAN_STATUS' | 'ERROR_PROCESSING_FINANCIALS' | 'CANNOT_CALCULATE_MEMBER_OBLIGATION' | 'MISSING_FINANCIALS' | 'UNKNOWN_REMAININGS' | 'UNKNOWN_COSTSHARE' | 'UNKNOWN_VISITS_TOTAL', required
      - `message` string
      - `details` CoverageErrorDetails
        - `suggested_payer` string
        - `validation_failures` string[]

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `404` — Not Found
- `422` — Unprocessable Entity
- `429` — Too Many Requests
- `500` — Internal Server Error
- `502` — Bad Gateway
- `504` — Gateway Timeout

---

[API](https://skmtc.net/meetnirvana/apis/nirvana-api.md) · [All operations](https://skmtc.net/meetnirvana/apis/nirvana-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/meetnirvana/nirvana-api/versions/80ac8e79aef7/schema)
