Skip to content

List Billing Profile Payers

Lists the payers attached to a billing profile.

Endpoint

GET /v2/billing-profiles/{billing_profile_id}/payers

Path Parameters

Parameter Type Required Description
billing_profile_id string Yes The billing profile this record belongs to.

Query Parameters

Parameter Type Required Description
q string No Substring match on client_payer_name, master_name, payer_id, client_payer_id.
state string No Whether this payer mapping is confirmed against the clearing-house master.
claims_status string No Filter by the claims channel's enrollment status.
eligibility_status string No Filter by the eligibility channel's enrollment status.
era_status string No Filter by the ERA channel's enrollment status.
limit integer No Page size. Defaults to 50, max 500.
cursor string No Opaque pagination cursor from a previous page's next_cursor.

Request

curl --location '{base_url}/v2/billing-profiles/b7e4c1a2-6f3d-4e9b-9a51-2c8d0f7e3a14/payers' \
  --header 'Authorization: Bearer JWT_TOKEN'

Response

Success Response

Code: 200 OK

{
  "data": [
    {
      "id": "9f1c8a2e-4b31-4d0a-9c77-2f5ab8e10c44",
      "billing_profile_id": "b7e4c1a2-6f3d-4e9b-9a51-2c8d0f7e3a14",
      "payer_sec_id": null,
      "client_payer_name": "Cascade Health Plan",
      "client_payer_id": "AET-01",
      "payer_id": "CHP204",
      "master_name": "Cascade Health Plan",
      "state": "VERIFIED",
      "plan_type": "COMMERCIAL",
      "network_status": "IN_NETWORK",
      "accept_assignment": true,
      "fee_schedule_ref": null,
      "effective_from": "2026-01-01",
      "effective_to": null,
      "enrollment": {
        "claims": {
          "status": "NOT_STARTED",
          "branch": "FIXED",
          "exceptions": {}
        },
        "eligibility": {
          "status": "NOT_STARTED",
          "branch": "FIXED",
          "exceptions": {}
        },
        "era": {
          "status": "NOT_STARTED",
          "branch": "FIXED",
          "exceptions": {}
        }
      },
      "issues": [
        {
          "code": "PAYER_ID_NOT_IN_MASTER",
          "severity": "error",
          "message": "Payer id not found in the clearing-house master list."
        }
      ],
      "clearing_house": "CLAIM_MD",
      "rollup_statuses": {
        "claims": "IN_PROGRESS",
        "eligibility": "COMPLETE",
        "era": "NOT_APPLICABLE"
      },
      "display_labels": null,
      "profile_payer_contract_id": null
    }
  ],
  "next_cursor": null
}

Response Fields

Field Type Description
data array of object See Data.
next_cursor string Cursor for the next page. null on the last page.

Data

Field Type Description
id string This payer row's own id.
billing_profile_id string The billing profile this record belongs to.
payer_sec_id string or null Id of the underlying payer record, shared across every billing profile that uses it.
client_payer_name string or null Payer name as your organisation knows it.
client_payer_id string or null Your own identifier for this payer. Free text, not used for matching.
payer_id string or null ClaimMD payer id — the payer_code from List Payers, not its id. Matched against the clearing-house master; an unknown value creates the payer as UNVERIFIED.
master_name string or null The payer's name in the clearing-house master list, once resolved.
state string Whether this payer mapping is confirmed against the clearing-house master. One of VERIFIED, UNVERIFIED, PAPER_ONLY, ARCHIVED.
plan_type string or null Payer category for this relationship. One of COMMERCIAL, MEDICARE, MEDICAID, BCBS, WORKERS_COMP, CHAMPUS, SELF_PAY, OTHER.
network_status string or null Whether the relationship is in-network or out-of-network. One of IN_NETWORK, OUT_OF_NETWORK.
accept_assignment boolean or null Whether the provider accepts the payer's allowed amount as full payment.
fee_schedule_ref string or null Fee schedule this payer relationship bills against.
effective_from string or null
effective_to string or null
enrollment object Enrollment status per channel — claims, eligibility and era — each with a per-dimension status (NOT_STARTED, REQUIREMENT_GATHERING, APPLICATION_SUBMITTED, COMPLETE, NOT_APPLICABLE), a branch (FIXED, MANUAL, NA), and per-provider exceptions mapping a provider id to its own status. See Enrollment.
issues array of object Problems found while resolving this payer — for example an unrecognised payer id. See Issues.
clearing_house string or null One of CLAIM_MD, AVAILITY, OFFICE_ALLY, OTHER.
rollup_statuses object Aggregated enrollment status per channel: NOT_STARTED, IN_PROGRESS, COMPLETE, NOT_APPLICABLE. IN_PROGRESS is rollup-only — it never appears in enrollment.*.status.
display_labels any Precomputed label strings for the dashboard's payer list.
profile_payer_contract_id integer or null A stable id in the downstream billing system, once published. null before publish.

Enrollment

Field Type Description
claims object Whether to seed the claims channel into enrollment tracking (enrollment.claims) instead of leaving it NOT_APPLICABLE. See Claims.
eligibility object Whether to seed the eligibility channel into enrollment tracking (enrollment.eligibility) instead of leaving it NOT_APPLICABLE. See Eligibility.
era object Whether to seed the ERA channel into enrollment tracking (enrollment.era) instead of leaving it NOT_APPLICABLE. See Era.

Claims

Field Type Description
status string Lifecycle state of the record. One of NOT_STARTED, REQUIREMENT_GATHERING, APPLICATION_SUBMITTED, COMPLETE, NOT_APPLICABLE.
branch string One of FIXED, MANUAL, NA.
exceptions object

Eligibility

Field Type Description
status string Lifecycle state of the record. One of NOT_STARTED, REQUIREMENT_GATHERING, APPLICATION_SUBMITTED, COMPLETE, NOT_APPLICABLE.
branch string One of FIXED, MANUAL, NA.
exceptions object

Era

Field Type Description
status string Lifecycle state of the record. One of NOT_STARTED, REQUIREMENT_GATHERING, APPLICATION_SUBMITTED, COMPLETE, NOT_APPLICABLE.
branch string One of FIXED, MANUAL, NA.
exceptions object

Issues

Field Type Description
code string Machine-readable issue code.
severity string Whether this issue blocks resolution or is informational.
message string Human-readable detail for this issue.

Error Response

Code: 400 Bad Request

{
  "code": "bad_request",
  "message": "Validation failed",
  "errors": [
    {
      "field": "patient_id",
      "message": "must be a string"
    }
  ]
}

Every error has the same shape — a machine-readable code, a message, and an errors[] array that's empty when there's nothing field-specific to report. The HTTP status is authoritative.

Status code Meaning
400 Bad Request bad_request The request body or parameters failed validation. errors[] names the offending fields.
401 Unauthorized unauthorized The access token is missing, malformed or expired.
403 Forbidden forbidden The request references a resource outside the token's organisation or clinic scope.
404 Not Found not_found No such resource, or it's outside your scope.
429 Too Many Requests rate_limited Rate limit exceeded. Back off and retry.
500 Internal Server Error internal_error Unexpected server error.
502 Bad Gateway upstream_error Upstream service failed or timed out.

Notes

  • state filters on VERIFIED, UNVERIFIED, PAPER_ONLY, ARCHIVED.