---
title: "Bulk create insurance payors"
method: POST
path: "/insurancePayors/bulk"
tags: ["insurancePayors"]
---

# Bulk create insurance payors

`POST /insurancePayors/bulk`

## Request

- Base URL: `https://api.lumahealth.io/api/v2`
- URL: `https://api.lumahealth.io/api/v2/insurancePayors/bulk`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/lumahealth/apis/rest-service/docs/insurancePayors/bulk/post.ts> (a function with typed inputs; its response is checked against the schema)

## Request body

- object[]
  - `name` string, required
  - `externalIdentifiers` object[], required
    - `source` string, required
    - `value` string, required
    - `status` string
  - `source` string, required
  - `isHiddenFromPatients` boolean

## Response `201`

The created insurance payors

- InsurancePayorResponse[]
  - `_id` string: Luma's internal ID of an object.
  - `user` string: The ID of the root account user.
  - `deleted` 0 | 1: Flag for logical deletion where 1 means deleted.
  - `createdBy` string: The ID of the user who created this object.
  - `updatedBy` string: The ID of the user who updated this object.
  - `createdAt` string, date-time: The date/time when this object was created.
  - `updatedAt` string, date-time: The date/time when this object was updated.
  - `name` string: The payor's legal/system name.
  - `friendlyName` string: Patient-facing display name, preferred over `name` when present.
  - `externalId` object: The payor's identifier in the practice's EHR.
    - `source` string
    - `value` string
  - `externalIdentifiers` object[]: Identifiers used to match and write back claims and eligibility data to third-party clearinghouses, such as NextGen Transaction Hub, Change Healthcare, or Waystar.
    - `source` 'nextgentransactionhub' | 'changehealthcare' | 'waystar': The clearinghouse or vendor this identifier is for.
    - `value` string: The opaque identifier value used by that vendor.
    - `status` 'inactive' | 'testing' | 'live'
    - `pin` string: Waystar-specific identifier for this payor.
  - `address` string
  - `address2` string
  - `city` string
  - `state` string
  - `country` string
  - `postcode` string
  - `phone` string
  - `source` 'integrator' | 'manual': Who owns this payor's fields. If `integrator`, the integrator owns all fields and overwrites Luma edits on every sync. If `manual`, the integrator only owns `name` and `externalId`; `friendlyName` and `externalIdentifiers` can be freely edited in Luma.
  - `isHiddenFromPatients` boolean: Whether this payor is excluded from patient-facing payor search.

## Other responses

- `401`: Not authenticated
- `403`: Access token does not have the required scope

---

[API](https://skmtc.dev/lumahealth/apis/rest-service.md) - [All operations](https://skmtc.dev/lumahealth/apis/rest-service/llms.txt) - [OpenAPI document](https://skmtc.dev/lumahealth/apis/rest-service/revisions/f19aeba84a26?raw)
