Raw Claims CSV Import

Zus provides customers with the ability to upload CSV files as a bulk upload mechanism. The data provided in these files will appear as Claim FHIR Resources within Zus. The patients referenced in any Claim CSV must be enrolled with a valid patient identifier in place at the time of upload.

Raw Claims CSV Upload Process

CSV Imports are handled through SFTP. Reach out to your Zus support representative to set up a secure SFTP connection to the Zus system. Once an SFTP upload folder is properly mounted, uploading a properly formatted Raw Claims CSV File in that folder will create corresponding Claim FHIR Resources.

CSV File Format

All uploaded CSVs are expected to include the following columns. Rows sharing the same CLAIM_NUMBER are grouped into a single Claim, with one line item per row; a row with a blank CLAIM_NUMBER becomes its own single-line Claim. Diagnosis codes span the numbered DIAG_1 … DIAG_25 columns and procedure modifiers span MODIFIER_1 … MODIFIER_6; empty trailing slots are ignored. Each Claim passes through our deduplication process to either create or update a Claim.

Columns

Column NameDescriptionExample
PERSON_IDRequired. Patient identifier value, resolved against PERSON_ID_SYSTEM to match the patient. If no patient matches, the whole claim is skipped and produces nothing.1AB2CD3EF45
PERSON_ID_SYSTEMRequired. System URL for PERSON_ID.http://hl7.org/fhir/sid/us-mbi
UNIQUE_CLAIM_IDRequired. Stable key used to deduplicate a claim across re-imports. A missing value rejects the claim.unique-abc-123 (or a synthetic key of other fields, like {CONTRACT_ID}:{CLAIM_NUMBER})
SEQUENCE_VALUERequired. Whole-number version stamp for the claim; the highest value wins on re-import. Must be an integer.1712345678
CLAIM_NUMBERClaim identifier. Rows sharing this value are grouped as items into a single claim. A blank value makes the row its own single-line claim.CLM-MULTI-001
PLAN_MEMBER_IDPayer member ID. Recorded as the coverage subscriber ID.854239176
CLAIM_CATEGORY_L1Claim category: Inpatient, Institutional, Hospice, Home Health, and SNF are treated as institutional; Outpatient, Professional, and blank are treated as professional.Inpatient
CLAIM_STATUSClaim status: active or cancelled (case-insensitive). cancelled marks a reversal and produces no line items. Blank defaults to active.active
DIAG_1DIAG_25ICD-10-CM diagnosis codes (up to 25, ordered). Normalized to dotted form (E11319E11.319) and de-duplicated across the claim. DIAG_1 is the principal diagnosis.I10
DRGMS-DRG code (institutional claims only). Attached to the principal diagnosis as its package code.638
PROCEDURE_CODECPT (numeric) or HCPCS (letter-leading) procedure code for the line item. When blank, the claim line item is marked as having an unknown procedure.G0438
MODIFIER_1MODIFIER_6Procedure modifier codes for the line item (up to 6, ordered).LT
REVENUE_CODEUB-04 revenue center code for institutional line items.See https://www.nubc.org/license for examples.
UNITSService unit quantity for the line item (numeric).1
BILLED_AMOUNTTotal billed amount for the claim (decimal, USD).1200.00
PAID_AMOUNTPaid amount for the line item (decimal, USD).800.00
CLAIM_PAID_DATEDate the claim was paid. ISO 8601 date or datetime.2025-03-10
DATE_OF_SERVICE_FROMClaim-level service start date. ISO 8601 date or datetime.2025-03-01T08:00:00-05:00
DATE_OF_SERVICE_THRUClaim-level service end date. ISO 8601 date or datetime.2025-03-05T14:00:00-05:00
DATE_OF_ADMISSIONLine-level start date for the individual line item. ISO 8601 date or datetime.2025-03-01T10:00:00-05:00
DATE_OF_DISCHARGELine-level end date for the individual line item. ISO 8601 date or datetime.2025-03-05T14:00:00-05:00
BILLING_PROVIDER_NPIBilling provider NPI. At least one of BILLING_PROVIDER_NPI or RENDERING_NPI is required, or the claim is rejected.1447496559
RENDERING_NPIRendering provider NPI. At least one of BILLING_PROVIDER_NPI or RENDERING_NPI is required.1245319599
PRODUCTClaim product type. When set to rx, the row is treated as a pharmacy dispense instead of a medical claim line.rx
RX_NDCNDC drug code. Used when PRODUCT is rx.00071015523
COVERAGE_PAYOR_DISPLAY_NAMEPayer display name for the coverage. Blank defaults to Medicare.Aetna
CONTRACT_IDPayer/plan contract identifier. Recorded on the claim and coverage.H1234
TIERPayer/plan tier. Recorded on the claim and coverage.1
SOURCEFree-form identifier for the upstream feed.cclf
PK_SURROGATEUpstream-provided surrogate key, retained for diagnostics.abc-123
PRIOR_CLAIM_IDENTIFIERWhen set, links this claim back to the original claim it adjusts or replaces.CLM-ORIG-000
CLAIM_NUMBER_IDENTIFIER_URLOverrides the identifier system URL used for CLAIM_NUMBER and PRIOR_CLAIM_IDENTIFIER.https://payer.example/claim-id
NCH_CLAIM_TYPE_CODENCH claim type code. Unique values across the claim are collected together.60
FACILITY_TYPE_CODEHeader-level facility type code.1
CLASSIFICATION_CODEHeader-level classification code.1
MEDICARE_NON_PAYMENT_REASONMedicare non-payment reason code.A
PROVIDER_SPECIALTY_CODELine-level provider specialty code.08

Raw Claims Deduplication Process

During CSV import, we do not create a new Claim for a patient if we have previously received similar data. Claims deduplication relies on the following information:

  1. The Patient ID associated with the Claim (Determined through Patient Matching).
  2. Your Builder ID associated with the file (implicitly provided during file upload).
  3. The UNIQUE_CLAIM_ID field: Must be a unique string.
  4. The SEQUENCE_VALUE field: Must be a valid integer.

If a previous Claim for a patient was created with these same values, the existing Claim will be updated with the remaining data (e.g. PRIOR_CLAIM_IDENTIFIER). Similarly, a new Claim will be created if we do NOT have an existing Claim with these same values associated with the matched patient.

SEQUENCE_VALUE

We use a numeric SEQUENCE_VALUE as the version. Re-importing the same UNIQUE_CLAIM_ID with a higher SEQUENCE_VALUE replaces the prior claim; an equal value is idempotent; a lower value does not overwrite newer data. UNIQUE_CLAIM_ID and a valid integer SEQUENCE_VALUE are therefore required — a claim without them is rejected rather than risk duplicates.

Patient Matching at Import Time

Before creating or updating a Claim in our CSV pipeline, we require that a Patient record exists in the current builder that matches the PERSON_ID_SYSTEM and PERSON_ID.

For example, if you have uploaded a CSV with a row that has the values

  • https://fhir.athena.io/sid/ah-patient for PERSON_ID_SYSTEM
  • a-12345.E-12345 and PERSON_ID

Then a Patient FHIR record is expected to exist in your builder with a similar Identifier:

{
  "id": "[uuid]",
  "identifier": [{
     "system": "https://fhir.athena.io/sid/ah-patient",
		 "value": "a-12345.E-12345" 
  },
  ... other identifiers
  ],
  ... additional Patient Data
}

If there is no Patient in your builder with that identifier, then no FHIR Claim will be created for that row.

Please see our docs about Enrolling your Patients for more information.


Did this page help you?