Data feed documentation
Getting started
Overview
There are two types of files to provide: daily data files that keep claim and member information up to date, and initial setup files that explain your plans, benefits, and contacts.
Send the setup files before your service goes live. Then send the daily data files using the delivery schedule agreed with your EHVAhealth team. Setup files only need to be sent again when their information changes.
Choose a daily cutoff with your EHVAhealth team, such as 6 AM Eastern. Use your dedicated SFTP account to upload files directly. Confirm your connection details before working through the first-delivery checklist.
Upload securely with SFTP
EHVAhealth provides a dedicated SFTP account for your organization. During setup, your EHVAhealth team supplies the server address, port, username, authentication details, and upload folder.
Upload your daily data files and initial setup files directly to that folder. SFTP (Secure File Transfer Protocol) encrypts files during transfer. Your account is restricted to your organization’s upload area, and files are not publicly accessible.
Automate your deliveries
You can schedule file exports and SFTP uploads from your existing system using Option A or Option B. Routine data-file processing is automatic, with no manual handoff needed for each delivery.
Confirm the connection and complete the first-delivery checklist before enabling scheduled uploads.
Daily data files
These are the files you send regularly to keep answers current. They help EHVAhealth answer questions such as “Has this claim been paid?” and “Is this member covered today?”
Both delivery options use the four file types below. Follow Option A: full daily files or Option B: daily changes for the exact schedule and filenames. Accumulators are always sent as a full file every day.
- Claims
- One row per claim, including its status, service and payment dates, provider details, and amounts.
- Claim lines
- One row per service line, including the procedure code, service date, amounts, and remark codes. Each line links to its claim through
claim_num. - Eligibility
- One row per covered person, with member and subscriber identifiers and separate medical, dental, and vision coverage dates.
- Accumulators
- One row per covered person, showing deductible and out-of-pocket amounts met in the current plan year. Always send a full file daily.
Separate files for initial setup
Send your plan information, remark-code descriptions, plan documents, benefit summaries, and prior authorization information once before your service goes live. These help EHVAhealth explain your coverage rules and give callers the right contact details.
Do not include these in every daily delivery. Send an updated version only when the information changes, such as a new plan year or a different contact number. See initial setup files for filenames and contents.
Delivery schedules
Option A: full files every day
Send four full files: claims, claim lines, eligibility, and accumulators. Each file contains every record for its type and completely replaces the previous file of that type.
- Schedule
- Every day, including weekends
- Contents
- All records
- Effect
- Complete replacement
Send one file per type by the daily cutoff agreed with your EHVAhealth team, such as 6 AM Eastern. In the filenames below, YYYYMMDD is the extract date; for example, claims_20261006.csv.
Files to send
- Claims
claims_YYYYMMDD.csv- Claim lines
claim_lines_YYYYMMDD.csv- Eligibility
eligibility_YYYYMMDD.csv- Accumulators
accumulators_YYYYMMDD.csv
What to include
Include every record, including old claims and terminated members from at least the last year. Keep the corresponding service lines with the claims you send.
A full file must include every record you intend to keep for that file type. Records left out are treated as removed.
If a day is missed
No separate catch-up file is needed. The next day’s complete files bring all four datasets up to date. If you use change files instead, follow the missed change-file instructions.
Option B: daily changes + weekly full files
On weekdays, send only records added or changed since the previous file for that type. Every Sunday, send full claims, claim lines, and eligibility files. Each full file replaces the previous data for its type and corrects any gaps. Accumulators always arrive as a full file every day because these balances change frequently.
Send one file per type on the days shown below, by the cutoff agreed with your EHVAhealth team, such as 6 AM Eastern. Use the extract date for YYYYMMDD in each filename. Follow the three change-file rules when preparing weekday files.
Claims, claim lines, and eligibility changes. Full accumulators.
Full accumulators. No scheduled change files.
Full claims, claim lines, eligibility, and accumulators.
Weekday change files
- Claims
claims_changes_YYYYMMDD.csv- Claim lines
claim_lines_changes_YYYYMMDD.csv- Eligibility
eligibility_changes_YYYYMMDD.csv
Sunday full files
- Claims
claims_full_YYYYMMDD.csv- Claim lines
claim_lines_full_YYYYMMDD.csv- Eligibility
eligibility_full_YYYYMMDD.csv
Every day, including weekends
- Accumulators
accumulators_YYYYMMDD.csv
Sunday full files follow the full-file replacement rule: records not present are treated as gone. Include old claims and terminated members from at least the last year.
Three rules for change files
Include every column
When a record is added or changed, send its complete row using the field definitions. Even if only one value changes, include all the other values too.
Send cancellations and coverage endings
Leaving a record out of a change file keeps its previous values. To report a voided claim or ended coverage, send the complete row again with its updated status or coverage end date.
For a voided claim, set
claim_statustoVoided. For coverage that ends, fill in the relevant coverage end date:med_end_date,den_end_date, orvis_end_date.No changes? Send the header row
Send all three weekday change files every Monday–Friday. If a file type has no added or changed records, send that file with only its header row (column names). Send the other files with their changed records as usual.
This tells EHVAhealth that nothing changed for that file type and the delivery was not missed. The header-only rule applies to change files. Full files must still contain every record, even when nothing changed.
If a change file is missed
Send the missed file as soon as possible. The Sunday full file corrects any remaining gaps. Do not wait until Sunday to send a missed change file.
Keep full files and change files clearly named. A partial export must never be named as a full file.
Data reference
Keep formats consistent
- Headers: use the column names in the field definitions, including their underscores.
- Identifiers: transmit IDs, SSNs, claim numbers, and check numbers as text. Preserve leading zeros.
- Dates: use
YYYY-MM-DDinside files. Leave unavailable dates blank; never use placeholders such as1899-12-31or9999-12-31. Use the extract date inYYYYMMDDformat in filenames. - Amounts: use USD with two decimal places, such as
1234.50. Omit currency symbols and thousands separators. - Text: use normal mixed case for names and descriptions. Keep defined status and code values exactly as specified.
- Terminated groups: keep them in the eligibility file for at least one year after termination.
- Nullable fields: may be blank when no value applies. Keep
0.00distinct from a blank accumulator value. - CSV values: quote fields containing commas, such as a list of remark codes. Keep all columns in each change-file row.
Field definitions
Use the column names below in your CSV header row and follow the data format rules. In the Value column, Required means the cell must have a value; Nullable means it may be blank when no value applies. Field priority is separate: a required field can still be nullable, such as a payment date before a claim is paid. The guidance marks required and optional nullable fields. Optional fields help EHVAhealth answer more questions when your system has the information. Keep every column in each row, including rows in change files.
Claims
30 fieldsOne row per claim. Claim numbers connect the claim to its service lines; member IDs connect it to eligibility.
| Column name | Type | Value | Guidance |
|---|---|---|---|
member_id | Text | Required | Use the same covered-person identifier across claims, eligibility, and accumulators. |
patients_last_name | Text | Required | Patient’s last name. |
patients_first_name | Text | Required | Patient’s first name. |
social_security_number | Text | Required | Send nine digits as text with no dashes; preserve leading zeros. If no SSN is available, use the subscriber SSN plus dependent ID in the format agreed with EHVA. Match the value across claims and eligibility. |
patients_dob | Date | Required | Covered person’s date of birth, in YYYY-MM-DD. |
claim_num | Text | Required | Unique claim identifier. Service lines use the same value to link to their claim. |
original_claim_num | Text | Nullable | Optional field. For an adjustment, void, reversal, or duplicate, identify the original claim. Leave blank for an ordinary claim. |
claim_status | Text | Required | Use Paid, Ready to pay, Pended, Voided, Refunded, Denied, or Exclusion. Confirm the status mapping with EHVAhealth before the first delivery. |
claim_eob_message | Text | Nullable | Optional field. A plain-language explanation that supports the claim status. |
remark_codes | Text | Nullable | Required field. Comma-separated claim remark or adjustment codes. Supply the code descriptions separately. |
claim_start_date | Date | Required | Service date, or admission date for an inpatient claim. Use YYYY-MM-DD. |
provider_name | Text | Required | Billing provider’s name or organization name. |
provider_tin | Text | Required | Billing provider’s nine-digit tax identifier; preserve it as text. |
provider_npi | Text | Required | Billing provider’s ten-digit NPI; preserve it as text. |
network_status | Text | Nullable | Optional field. Use In network or Out of network. |
plan_id | Text | Nullable | Optional field. Match the plan identifier in plan information. For plan information, provide one row per group and plan. |
claim_received_date | Date | Required | Date the TPA received the claim. Use YYYY-MM-DD. |
claim_processed_date | Date | Nullable | Required field. Processing date in YYYY-MM-DD. Leave blank until processing is complete. |
claim_paid_date | Date | Nullable | Required field. Payment date in YYYY-MM-DD. Leave blank until paid. |
claim_total_charges | Amount | Required | Total amount billed by the provider. USD, with two decimal places. |
claim_discount_amount | Amount | Required | Total discounts applied to the billed charges. USD, with two decimal places. Use 0.00 when there is no amount. |
claim_allowed_amount | Amount | Required | Amount allowed for the claim. USD, with two decimal places. Use 0.00 when there is no amount. |
claim_copay_amount | Amount | Required | Copay amount applied to the claim. USD, with two decimal places. Use 0.00 when there is no amount. |
claim_coinsurance_amount | Amount | Required | Coinsurance amount applied to the claim. USD, with two decimal places. Use 0.00 when there is no amount. |
claim_deductible_amount | Amount | Required | Deductible amount applied to the claim. USD, with two decimal places. Use 0.00 when there is no amount. |
claim_paid_amount | Amount | Required | Amount paid to the provider. USD, with two decimal places. Use 0.00 when there is no amount. |
payment_method | Text | Nullable | Optional field. Use Check, EFT, or Virtual card. Leave blank until paid. |
check_number | Text | Nullable | Required field. Check number or EFT trace identifier. Preserve leading zeros; leave blank until paid. |
check_payee | Text | Nullable | Optional field. Person or organization receiving the payment. |
group_policy_number | Text | Required | Employer group identifier used to connect the member or claim to plan information. |
Claim lines
8 fieldsOne row per service line, linked to a claim by claim_num. Export the line-level values directly. Use the remark-code file to provide descriptions for the codes you send.
| Column name | Type | Value | Guidance |
|---|---|---|---|
claim_num | Text | Required | Unique claim identifier. Service lines use the same value to link to their claim. |
line_number | Integer | Required | Service-line number within the claim. |
line_service_date | Date | Required | Date of service for this line, in YYYY-MM-DD. |
procedure_code | Text | Required | CPT or HCPCS procedure code billed on the service line. |
line_billed_amount | Amount | Required | Amount billed for this service line. USD, with two decimal places. |
line_allowed_amount | Amount | Required | Amount allowed for this service line. USD, with two decimal places. Use 0.00 when there is no amount. |
line_paid_amount | Amount | Required | Amount paid for this service line. USD, with two decimal places. Use 0.00 when there is no amount. |
line_remark_codes | Text | Nullable | Required field. Comma-separated remark or adjustment codes applying to this service line. |
Eligibility
19 fieldsOne row per covered person, with separate medical, dental, and vision coverage fields. Use the same member identifiers in claims and accumulators. Provide the associated plan details in plan information.
| Column name | Type | Value | Guidance |
|---|---|---|---|
member_id | Text | Required | Use the same covered-person identifier across claims, eligibility, and accumulators. |
subscriber_id | Text | Required | Insurance-card identifier shared by members of the same family. |
dependent_id | Text | Required | Keep the zero-padded person code: 00 for the subscriber, 01 and above for dependents. |
relationship | Text | Nullable | Optional field. Use Subscriber, Spouse, Child, or Other. |
lastname | Text | Required | Member’s last name. |
firstname | Text | Required | Member’s first name. |
social_security_number | Text | Required | Send nine digits as text with no dashes; preserve leading zeros. If no SSN is available, use the subscriber SSN plus dependent ID in the format agreed with EHVA. Match the value across claims and eligibility. |
patients_dob | Date | Required | Covered person’s date of birth, in YYYY-MM-DD. |
group_name | Text | Required | Employer group or plan sponsor name. |
group_policy_number | Text | Required | Employer group identifier used to connect the member or claim to plan information. |
med_plan_id | Text | Nullable | Required field. Match plan_id in plan information. Leave blank when the member has no coverage of this type. |
med_start_date | Date | Nullable | Required field. Coverage start date for this benefit type, in YYYY-MM-DD. |
med_end_date | Date | Nullable | Required field. Coverage end date in YYYY-MM-DD. Leave blank for active coverage with no set end date; do not use 9999-12-31. |
den_plan_id | Text | Nullable | Required field. Match plan_id in plan information. Leave blank when the member has no coverage of this type. |
den_start_date | Date | Nullable | Required field. Coverage start date for this benefit type, in YYYY-MM-DD. |
den_end_date | Date | Nullable | Required field. Coverage end date in YYYY-MM-DD. Leave blank for active coverage with no set end date; do not use 9999-12-31. |
vis_plan_id | Text | Nullable | Required field. Match plan_id in plan information. Leave blank when the member has no coverage of this type. |
vis_start_date | Date | Nullable | Required field. Coverage start date for this benefit type, in YYYY-MM-DD. |
vis_end_date | Date | Nullable | Required field. Coverage end date in YYYY-MM-DD. Leave blank for active coverage with no set end date; do not use 9999-12-31. |
Accumulators
18 fieldsOne row per covered person. Values describe amounts met in the current plan year. Family totals belong only on subscriber rows. Match member and subscriber identifiers to eligibility, and send a full file every day under either delivery schedule.
| Column name | Type | Value | Guidance |
|---|---|---|---|
member_id | Text | Required | Use the same covered-person identifier across claims, eligibility, and accumulators. |
subscriber_id | Text | Required | Insurance-card identifier shared by members of the same family. |
dependent_id | Text | Required | Keep the zero-padded person code: 00 for the subscriber, 01 and above for dependents. |
last_name | Text | Required | Member’s last name. |
first_name | Text | Required | Member’s first name. |
dob | Date | Required | Covered person’s date of birth, in YYYY-MM-DD. |
medical_individual_deductible | Amount | Nullable | Required field. USD accumulated in the current plan year. Use 0.00 for no amount accumulated; leave blank when not applicable. |
medical_individual_out_of_pocket | Amount | Nullable | Required field. USD accumulated in the current plan year. Use 0.00 for no amount accumulated; leave blank when not applicable. |
medical_family_deductible | Amount | Nullable | Required field. USD accumulated in the current plan year. Use 0.00 for no amount accumulated; leave blank when not applicable. Family totals belong only on subscriber rows (dependent_id 00); leave dependent rows blank. |
medical_family_out_of_pocket | Amount | Nullable | Required field. USD accumulated in the current plan year. Use 0.00 for no amount accumulated; leave blank when not applicable. Family totals belong only on subscriber rows (dependent_id 00); leave dependent rows blank. |
medical_individual_deductible_oon | Amount | Nullable | Optional field. USD accumulated in the current plan year. Use 0.00 for no amount accumulated; leave blank when not applicable. |
medical_individual_out_of_pocket_oon | Amount | Nullable | Optional field. USD accumulated in the current plan year. Use 0.00 for no amount accumulated; leave blank when not applicable. |
medical_family_deductible_oon | Amount | Nullable | Optional field. USD accumulated in the current plan year. Use 0.00 for no amount accumulated; leave blank when not applicable. Family totals belong only on subscriber rows (dependent_id 00); leave dependent rows blank. |
medical_family_out_of_pocket_oon | Amount | Nullable | Optional field. USD accumulated in the current plan year. Use 0.00 for no amount accumulated; leave blank when not applicable. Family totals belong only on subscriber rows (dependent_id 00); leave dependent rows blank. |
dental_individual_deductible | Amount | Nullable | Required field. USD accumulated in the current plan year. Use 0.00 for no amount accumulated; leave blank when not applicable. |
dental_individual_out_of_pocket | Amount | Nullable | Required field. USD accumulated in the current plan year. Use 0.00 for no amount accumulated; leave blank when not applicable. |
dental_family_deductible | Amount | Nullable | Required field. USD accumulated in the current plan year. Use 0.00 for no amount accumulated; leave blank when not applicable. Family totals belong only on subscriber rows (dependent_id 00); leave dependent rows blank. |
dental_family_out_of_pocket | Amount | Nullable | Required field. USD accumulated in the current plan year. Use 0.00 for no amount accumulated; leave blank when not applicable. Family totals belong only on subscriber rows (dependent_id 00); leave dependent rows blank. |
Plan information
18 fieldsOne row per group and plan. Provide at onboarding and update whenever plan details or contacts change. Send this with your initial setup files. Match each group and plan to the identifiers in eligibility.
| Column name | Type | Value | Guidance |
|---|---|---|---|
plan_id | Text | Required | Match the plan identifier in plan information. For plan information, provide one row per group and plan. |
group_policy_number | Text | Required | Employer group identifier used to connect the member or claim to plan information. |
group_name | Text | Required | Employer group or plan sponsor name. |
network_type | Text | Required | Plan or network model, such as PPO, HMO, or HDHP PPO. |
carrier_info | Text | Required | Name the carrier or network. Identify a self-funded plan that has no network. |
claims_mailing_address | Text | Required | Postal address for submitting claims. |
eob_portal_info | Text | Nullable | Optional field. Provider portal URL for claim information and EOBs, when available. |
claims_electronic_payer_id | Text | Nullable | Optional field. Payer identifier used for electronic claim submission. |
payment_vendor | Text | Nullable | Optional field. Company issuing payments when this is handled outside the TPA. |
payment_vendor_contact | Text | Nullable | Optional field. Phone number for payment questions. |
pharmacy_benefit_manager | Text | Nullable | Optional field. Company administering the plan’s pharmacy benefits. |
pharmacy_phone | Text | Nullable | Optional field. Phone number for pharmacy benefit questions. |
prior_auth_contact | Text | Nullable | Optional field. Prior authorization contact and phone number. |
filing_deadline | Text | Nullable | Optional field. Claim filing time limit measured from the service date. |
appeal_window | Text | Nullable | Optional field. Time allowed to appeal after a denial. |
appeal_address | Text | Nullable | Optional field. Postal destination for appeals. |
appeal_fax_email | Text | Nullable | Optional field. Fax number or email address for appeals. |
records_fax_email | Text | Nullable | Optional field. Destination for medical records and itemized bills. |
Initial setup files
Send once before your service goes live
These files explain your plans, benefits, claim codes, and contact details. They help EHVAhealth answer questions such as “Does this service need prior authorization?” or “Who should I contact about a payment?”
Send them during initial setup. You do not need to resend them with your daily data files. Send a replacement when a plan, code, document, or contact changes, including at renewal.
- Plan information
plan_information.xlsxPlan details and contact information, with one row per group and plan. Send during setup; update when a plan or contact changes.
- Remark codes
remark_codes.csvThe meaning of each remark code in claims or claim lines. Use two columns:
codeanddescription. Send during setup; update when codes are added or changed.- Plan documents
<group number>_<plan ID>_SPD.pdfYour Summary Plan Description and any amendments. Send during setup; send the current version at renewal or when a plan is amended.
- Benefit summaries
<group number>_<plan ID>_benefits.pdfA summary of copays, coinsurance, visit limits, deductible and out-of-pocket limits, and the plan year. Send during setup; update at renewal or when benefits change.
- Prior authorization
<group number>_<plan ID>_prior_auth.pdfServices that need prior authorization or precertification, including any dollar thresholds. Send during setup; update when these requirements change. A separate file is not needed if the information is already in your Summary Plan Description.
First delivery
Before your first delivery
- Agree on Option A or Option B and a daily cutoff with your EHVAhealth team.
- Confirm your SFTP connection and upload folder with EHVA. Upload files directly using your dedicated account, and confirm your first delivery before enabling scheduled uploads.
- Match the column names and data formats. Keep identifiers consistent across files.
- Include old claims and terminated members from at least the last year in full files.
- Send the initial setup files before your service goes live. After setup, resend them only when their information changes.
Confirm your field mapping
Review the following with EHVAhealth before automating exports:
- SSNs: send nine digits as text when available. If a dependent has no SSN, confirm how to represent the subscriber SSN plus the dependent ID; do not assume this fallback is a nine-digit value.
- Claim statuses: confirm the accepted status mapping, including whether
Exclusionapplies to your feed. - Accumulators: use the accumulator column names. If your export uses codes such as
MM_IND_DED, confirm how they map to these fields.