Professional Claim Submission
🚧
The RCM Service is currently in beta.

Professional Claims

The RCM service supports validating and submitting professional claims to payers. You can also use the test mode to test your claim submission process without your claim being sent to payers.

Validating Claims

An important step in most workflows is to validate a claim before submitting it to a payer. This can help catch errors before they are sent to the payer, which can save time and money. Here is how you can validate a claim using the RCM service:

Perform a claim validation with the v3 SDK:

import Oystehr from '@oystehr/sdk';
 
const oystehr = new Oystehr({
  accessToken: "<your_access_token>",
});
 
const validationResult = await oystehr.rcm.validateProfessionalClaim({
  cms1500: {
    _1_insuranceProgram: 'MEDICARE',
    _1a_insuredIdNumber: '0000000005',
    _2_patientName: {
      firstName: 'johnone',
      lastName: 'doeone',
    },
    _3_patientBirthDate: {
      day: '01',
      month: '01',
      year: '2000',
    },
    _3_patientSex: 'M',
    _4_insuredName: {
      firstName: 'johnone',
      lastName: 'doeone',
    },
    _5_patientAddress: {
      line: '123 address1',
      city: 'city2',
      state: 'tn',
      zipCode: '372030000',
    },
    _6_patientRelationshipToInsured: 'Self',
    _11d_anotherHealthBenefitPlan: false,
    _17_referringProvider: {
      qualifier: 'DN',
      name: {
        firstName: 'janeone',
        lastName: 'doetwo',
      },
      _b_npiId: '1760854442',
    },
    _21_diagnosis: {
      icdIndicator: '0',
      codes: ['O139', 'J0190'],
    },
    _24_services: [
      {
        _a_datesOfService: {
          from: {
            day: '14',
            month: '07',
            year: '2023',
          },
        },
        _b_placeOfService: '12',
        _d_procedures: {
          cptOrHcpcs: '99241',
        },
        _e_diagnosisPointer: 'AB',
        _f_charges: 100,
        _g_daysOrUnits: 1,
        _j_renderingProviderId: {
          npiId: '1942788757',
        },
      },
    ],
    _25_federalTaxIdNumber: {
      type: 'SSN',
      value: '000000000',
    },
    _26_patientAccountNumber: '00001',
    _28_totalCharge: 100,
    _31_physicianSignedDate: {
      day: '13',
      month: '07',
      year: '2023',
    },
    _32_serviceFacilityLocationInfo: {
      name: 'happy doctors group',
      address: {
        line: '000 address1',
        city: 'city2',
        state: 'wa',
        zipCode: '981010000',
      },
    },
    _33_billingProviderInfoAndPhone: {
      name: 'happy doctors group',
      address: {
        line: '123 address1',
        city: 'city1',
        state: 'wa',
        zipCode: '981010000',
        telephone: '0000000000',
      },
      _a_npiId: '1760854442',
    },
  },
  submitterOrganizationName: 'happy doctors group',
  payerId: '4444',
});
  • cms1500 — The CMS 1500 form data
  • submitterOrganizationName — The name of the organization submitting the claim
  • payerId — The ID of the payer to submit the claim to

Validation Response

{
  {
    "editStatus": "string",
    "errors": [
      {
        "code": "string",
        "description": "string",
        "field": "string",
        "followupAction": "string",
        "location": "string",
        "value": "string"
      }
    ],
    "meta": {
      "applicationMode": "string",
      "billerId": "string",
      "senderId": "string",
      "submitterId": "string",
      "traceId": "string"
    }
  }
}
  • editStatus — The status of the claim validation
  • errors — A list of errors that were found in the claim
  • meta — Additional metadata about the claim validation

Validation AuditEvent

When a claim is validated, an AuditEvent (opens in a new tab) resource is created to record the validation event. This resource can be accessed through the FHIR API.

Submitting Claims

Submitting claims to payers is a critical part of the revenue cycle management process. Here is how you can submit a claim using the RCM service:

Perform a claim submission with the v3 SDK:

import Oystehr from '@oystehr/sdk';
 
const oystehr = new Oystehr({
  accessToken: "<your_access_token>",
});
 
await oystehr.rcm.submitProfessionalClaim({
  testMode: true,
  cms1500: {
    _1_insuranceProgram: 'MEDICARE',
    _1a_insuredIdNumber: '0000000005',
    _2_patientName: {
      firstName: 'johnone',
      lastName: 'doeone',
    },
    _3_patientBirthDate: {
      day: '01',
      month: '01',
      year: '2000',
    },
    _3_patientSex: 'M',
    _4_insuredName: {
      firstName: 'johnone',
      lastName: 'doeone',
    },
    _5_patientAddress: {
      line: '123 address1',
      city: 'city2',
      state: 'tn',
      zipCode: '372030000',
    },
    _6_patientRelationshipToInsured: 'Self',
    _11d_anotherHealthBenefitPlan: false,
    _17_referringProvider: {
      qualifier: 'DN',
      name: {
        firstName: 'janeone',
        lastName: 'doetwo',
      },
      _b_npiId: '1760854442',
    },
    _21_diagnosis: {
      icdIndicator: '0',
      codes: ['O139', 'J0190'],
    },
    _24_services: [
      {
        _a_datesOfService: {
          from: {
            day: '14',
            month: '07',
            year: '2023',
          },
        },
        _b_placeOfService: '12',
        _d_procedures: {
          cptOrHcpcs: '99241',
        },
        _e_diagnosisPointer: 'AB',
        _f_charges: 100,
        _g_daysOrUnits: 1,
        _j_renderingProviderId: {
          npiId: '1942788757',
        },
      },
    ],
    _25_federalTaxIdNumber: {
      type: 'SSN',
      value: '000000000',
    },
    _26_patientAccountNumber: '00001',
    _28_totalCharge: 100,
    _31_physicianSignedDate: {
      day: '13',
      month: '07',
      year: '2023',
    },
    _32_serviceFacilityLocationInfo: {
      name: 'happy doctors group',
      address: {
        line: '000 address1',
        city: 'city2',
        state: 'wa',
        zipCode: '981010000',
      },
    },
    _33_billingProviderInfoAndPhone: {
      name: 'happy doctors group',
      address: {
        line: '123 address1',
        city: 'city1',
        state: 'wa',
        zipCode: '981010000',
        telephone: '0000000000',
      },
      _a_npiId: '1760854442',
    },
  },
  submitterOrganizationName: 'happy doctors group',
  payerId: '4444',
});
  • testMode — Whether to submit the claim in test mode
  • cms1500 — The CMS 1500 form data
  • submitterOrganizationName — The name of the organization submitting the claim
  • payerId — The ID of the payer to submit the claim to

Submission Response

The response from the claim submission will be a FHIR Claim (opens in a new tab) object.

  • Success — HTTP status code of 200 and the status field will be active
  • Validation error — HTTP status code of 4XX and the status field will be entered-in-error
  • Unknown error — HTTP status code of 500

Claim submissions will undergo validation before being sent to payers. If the claim fails validation, it will not be sent to the payer and a 4XX error will be returned. The response shape in this case will match the validation response.

Submission Error AuditEvent

When a claim submission fails, an AuditEvent (opens in a new tab) resource is created to record the submission error event. This resource can be accessed through the FHIR API.

Test Mode

The RCM service supports a test mode that allows you to use the claim submission endpoint without your claim being sent to payers. This can be useful for testing and development purposes. To use test mode, set the testMode parameter to true when submitting a claim.