NAV

Introduction

https://api.sandbox.kinetik.care

You can expect every successfully executed response to have the following JSON schema:

{
  "status": "success",
  "statusCode": 200,
  "message": "A success message.",
  "payload": {}
}

Conversely, you can expect every error response to have the following JSON schema:

{
  "status": "error",
  "statusCode": 500,
  "message": "A message describing the error."
}

The Kinetik API is organized around REST. Our API has predictable resource-oriented URLs, accepts form-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP authentication, response codes, and verbs.

All requests in this documentation can be made with our Postman collection

If you have any questions, please email us at dev@kinetik.care. We'd love to hear from you!

If you have not yet had your app set up by Kinetik, please reach out to your Kinetik Business Representative to get started.

Authentication

To authenticate, use this code:


curl --location --request GET 'https://api.sandbox.kinetik.care/example-service?apiKey=API_KEY&apiSecret=API_SECRET'

Make sure to replace API_KEY with your API key and API_SECRET with your Secret key.

The Kinetik API uses an API key and a Secret key to authenticate requests. You can view and manage both your API and Secret keys on the Kinetik application. The API key is associated with your user profile, while the Secret key is linked to your Provider account.

Authentication to the API is performed via URL query parameters, provide your API key and Secret key as separate query parameters in the request URL. All API requests must be made over HTTPS. HTTP requests and requests without authentication parameters will fail.

Remember, both your API and Secret key carry many privileges, so be sure to keep them secure. Do not share your keys!

Professional Claims

GET Professional Claims


curl -L -X GET 'https://api.sandbox.kinetik.care/billing/claims/professional?apiKey=API_KEY&secretKey=SECREY_KEY'

The above command returns JSON structured like this:

{
  "status": "success",
  "message": "Successfully got professional claims.",
  "payload": {
    "claims": [
      {
        "claimID": "pclmabcded",
        "providerID": "provabcd",
        "remoteClaimID": "1111222555574",
        "type": "f301",
        "status": "c01",
        "serviceType": "st01",
        "startDate": "2020-08-23T00:00:00.000Z",
        "endDate": "2020-08-23T00:00:00.000Z",
        "priorAuthorization": "01234567890",
        "diagnosisCode1": "R69",
        // diagnosisCode fields can range from 1 up to 12
        "driverLicenseNumber": "AAABBBCCDD",
        "vehiclePlateNumber": "EEFFGGTT",
        "countyNumber": "14",
        "account": {
            "order": "PRIMARY",
            "name": "Some Payer",
            "isPayer": true,
            "payerID": "12345",
            "accountID": "acctsktwi34fkkx7gocq",
            "location": {
              "addressOne": "110 Wall Street",
              "addressTwo": null,
              "city": "New York",
              "state": "NY",
              "zip": "10005",
            },
            "contact": {
              "name": "John Doe",
              "email": "john@somepayer.com",
              "phone": "1234567890"
            }
        },
        "subscriber": {
          "isActive": true,
          "providerID": "provabcd",
          "insuranceNumber": "XXXYYYZZ",
          "employerName": "Acme, Inc.",
          "group": "An Insurance Group",
          "plan": "JJ8327",
          "medicareCode": "AABBCC",
          "firstName": "First",
          "lastName": "Last",
          "middleName": "Middle",
          "phoneNumber": "2125550123",
          "sex": "M",
          "dateOfBirth": "1958-04-13T00:00:00.000Z"
        },
        "referringProvider": {
          "firstName": "First",
          "middleName": "Middle",
          "lastName": "Last",
          "npi": "0123456789"
        },
        "resubmissionCount": 0,
        "frequencyCode": "1",
        "services": [
          {
            "serviceID": "srv123",
            "paidAmount": 0,
            "units": 2,
            "expectedPaidAmount": 0,
            "chargeAmount": 2.82,
            "procedureCode": "A0100",
            "startDate": "2020-08-23T00:00:00.000Z",
            "endDate": "2020-08-23T00:00:00.000Z",
            "diagnosisReference": "A",
            "calculatedChargeAmount": 24,
            "payments": [
              {
                "amount": 0.00,
                "method": "ACH",
                "eraID": "example",
                "paymentDate": "2020-09-19T00:00:00.000Z",
                "paymentID": "example"
              }
            ],
            "adjustmentReasons": [
              {
                "adjustmentGroup": "CO",
                "claimAdjustmentGroupDescription": "contractualObligations",
                "adjustmentReason": "45",
                "adjustmentAmount": 0.0
              }
            ]
          },
          {
            "serviceID": "srv234",
            "paidAmount": 0,
            "units": 21.8,
            "expectedPaidAmount": 0,
            "chargeAmount": 76.3,
            "procedureCode": "S0215",
            "modifierOne": null,
            "startDate": "2020-08-23T00:00:00.000Z",
            "endDate": "2020-08-23T00:00:00.000Z",
            "diagnosisReference": "A",
            "calculatedChargeAmount": 65.4,
            "payments": [
              {
                "amount": 0.00,
                "method": "ACH",
                "eraID": "example",
                "paymentDate": "2020-09-19T00:00:00.000Z",
                "paymentID": "example"
              }
            ],
            "adjustmentReasons": [
              {
                "adjustmentGroup": "CO",
                "claimAdjustmentGroupDescription": "contractualObligations",
                "adjustmentReason": "45",
                "adjustmentAmount": 0.0
              }
            ]
          }
        ],
        "patientAmountPaid": 0,
        "financialSummary": {
          "totalCharge": 79.12,
          "totalPaid": 0,
          "totalCalculatedCharge": 89.4,
          "totalExpectedPaid": 0
        },
        "pickup": {
          "longLat": {
            "type": "Point",
            "coordinates": [-78.8742242, 43.0256758]
          },
          "country": "USA",
          "addressOne": "100 Oliver St",
          "addressTwo": null,
          "city": "North Tonawanda",
          "state": "NY",
          "zip": "14120",
          "formattedAddress": "100 Oliver St, North Tonawanda, NY, 14120"
        },
        "dropoff": {
          "longLat": {
            "type": "Point",
            "coordinates": [-78.7301425, 42.9940125]
          },
          "country": "USA",
          "addressOne": "1540 Maple Rd",
          "addressTwo": "Apt C",
          "city": "Buffalo",
          "state": "NY",
          "zip": "14221",
          "formattedAddress": "1540 Maple Rd, Buffalo, NY, 14221"
        },
        "mileage": 21.8,
        "events": [
          {
            "eventID": "evt1p7w1oj5ked02rmn",
            "message": "Claim created via import.",
            "createdAt": "2020-08-27T07:00:02.337Z",
            "type": "creation"
          },
          {
            "eventID": "evt1p7w1oj5ked02rmp",
            "message": "Updates made the to the following field(s): Driver's License, Prior Authorization, Vehicle Plate",
            "updatedFields": {
              "driverLicenseNumber": "412799666",
              "priorAuthorization": "61162145957",
              "vehiclePlateNumber": "22185TY"
            },
            "createdAt": "2020-08-27T07:30:58.688Z",
            "type": "update"
          }
        ],
        "validationErrors": "{"fieldName": "message"}",
        "submissionNote": {
          "referenceCode": "ADD",
          "text": "Here's a submission note!"
        },
        "ambulanceConditionCodes": {
          "12": false,
          "01": false,
          "04": false,
          "05": false,
          "06": false,
          "07": false,
          "08": false,
          "09": false
        },
        "isEmploymentRelated": false,
        "isArchived": false,
        "onHold": false,
        "creationGroupID": ["fle00001"],
        "isInvalid": false,
        "internalNotes": [
           {
          "text": "Here's a note!",
          "reminderDate": "2020-08-31T07:30:00.000Z",
          "createdBy": "user123xyz",
          "isResolved": false
          }
        ],
        "createdAt": "2020-08-27T07:00:01.547Z",
        "updatedAt": "2020-08-27T15:01:42.583Z"
      }
    ],
    "count": 10
  }
}

This endpoint returns an array of professional claims based on your query, as well as the total number of professional claims matching your query. By default, these claims are sorted in descending order by the date they were created.

This endpoint employs pagination. You can use the limit parameter to control how many professional claims you would like to receive in a single request. The page parameter dictates which set of professional claims you would like to receive. For example, if limit equals 5 and page equals 2, the returned array would contain the second set of five professional claims that match the query parameters.

HTTP Request

GET /billing/claims/professional

URL Query Parameters

Parameter Required Default Description
limit No 10 The max number of claims per page to return.
page No 1 The page number of claims you wish to view, works in tandem with limit.
claimID No The Kinetik generated claimID for the claim you wish to retrieve.
remoteClaimID No The remote ID for the claim you wish to retrieve. If a remoteClaimID was provided during the claim's creation, you can use that ID here.
creationGroupID No The ID for the "batch" in which the claim(s) were created. E.g. if you created claims via a file upload, you would use the fileID you were returned on file upload as the creationGroupID here.

Professional Claim Object

Property Type Description
claimID string A unique ID for the claim, generated by Kinetik.
providerID string The providerID for the provider that owns this claim.
remoteClaimID string The ID provided by the claim's creating user/entity.
type string Kinetik's type code for this claim. "f301" here represents a professional claim type.
status string Kinetik's status code for the claim's current status.
Eg: c02 for READY_BILL.
Conversion is as follows:
BROKER_CANCELLED: 'c01',
READY_BILL: 'c02',
BILLED: 'c03',
APPROVED: 'c04',
PAID: 'c05',
REJECTED: 'c06',
SUBMITTED: 'c06',
PENDING: 'c08'
serviceType string The type of trip service.
Eg: st01 for AMBULATORY.
Conversion is as follows:
AMBULATORY: 'st01',
BARIATRIC_WHEELCHAIR: st02',
BARIATRIC_STRETCHER: 'st03',
BARIATRIC_STRETCHER_LG: 'st04',
BRODA_CHAIR: 'st05',
COVID: 'st06',
STRETCHER: 'st07',
STRETCHER_LG: 'st08',
WHEELCHAIR: 'st09',
TAXI: 'st10'
startDate string The ISO 8601 date string for the claim's start date. Is in UTC time.
endDate string The ISO 8601 date string for the claim's end date. Is in UTC time.
priorAuthorization string The prior authorization number for the claim.
diagnosisCode1 string The first diagnosis code for this claim.
diagnosisCodeX string The Xth diagnosis code for this claim.
driverLicenseNumber string The driver's license number for the driver that serviced this claim.
vehiclePlateNumber string The vehicle's plate number for the vehicle used to service this claim.
countyNumber string The county associated with this claim
account object The claim's payer account details object.
account.order string The paying order of the listed payer. Defaults to PRIMARY
account.name string The full name of the payer account for this claim.
account.isPayer boolean A boolean indicating whether this account is a professional claims payer.
account.payerID string The payer account's official payer ID.
account.accountID string Kinetik's internal ID for this account.
account.location object An object containing information about the payer account's address.
account.location.addressOne string The "Address One" line of the payer account's location.
account.location.addressTwo string The "Address Two" line of the payer account's location.
account.location.city string The city of the payer account's location.
account.location.state string The state of the payer account's location.
account.location.zip string The zip code of the payer account's location.
account.contact object An object containing information about how to contact the payer account.
account.contact.name string The primary contact name for this payer account.
account.contact.email string The primary contact email for this payer account.
account.contact.phone string The primary contact phone number for this payer account.
subscriber object The claim's subscriber details object.
subscriber.isActive boolean The status of the subscriber
subscriber.providerID string The providerID for the provider this subscriber is associated with.
subscriber.insuranceNumber string The subscriber's insurance number.
subscriber.employerName string The subscriber's employer name.
subscriber.group string The subscriber's insurance group name.
subscriber.plan string The subscriber's insurance plan name.
subscriber.medicareCode string The subscriber's medicare code.
subscriber.firstName string The subscriber's first name.
subscriber.lastName string The subscriber's last name.
subscriber.middleName string The subscriber's middle name.
subscriber.phoneNumber string The subscriber's phone number.
subscriber.sex string The subscriber's sex. May be any of the following values: 'Male', 'Female', 'M', 'F', 'male', 'female', 'm', 'f'.
subscriber.dateOfBirth string The subscriber's Date of Birth. Is an ISO 8601 date string in UTC time.
referringProvider object The Referring Provider.
referringProvider.firstName string The Referring Provider's first name.
referringProvider.lastName string The Referring Provider's last name.
referringProvider.middleName string The Referring Provider's middle name.
referringProvider.npi string The Referring Provider's NPI.
resubmissionCount number The number of times the claim was resubmitted.
frequencyCode string The frequency code for the claim.
eg: 1 for ORIGINAL.
Conversion is as follows:
ORIGINAL: '1',
RESUBMISSION: '7',
VOID: '8'
services array [object] The services for this claim. Is an array of service objects.
services[index].serviceID string The unique ID for this service.
services[index].paidAmount number The amount paid for this service.
services[index].units number The number of units for this service.
services[index].expectedPaidAmount number The amount expected to be paid for this service.
services[index].chargeAmount number The amount charged for this service.
services[index].procedureCode string The procedure code for this service.
services[index].startDate string The ISO 8601 date string representing the start date for this service. Is in UTC time.
services[index].endDate string The ISO 8601 date string representing the end date for this service. Is in UTC time.
services[index].diagnosisReference string Denotes which one of the claim's diagnosis codes this service refers to.
services[index].calculatedChargeAmount number The amount the service is calculated to be.
services[index].payments array [object] Details about each payment made towards this service.
services[index].adjustmentReasons array [object] Details about each adjustment made towards this service.
patientAmountPaid number The amount the Patient has contributed to the total charge of the claim
financialSummary object An object containing financial details for this claim.
financialSummary.totalCharge number The total charge amount for this claim.
financialSummary.totalPaid number The total paid amount for this claim.
financialSummary.totalCalculatedCharge number The total calculated charge the claim is to be
financialSummary.totalExpectedPaid number The total expected amount to be paid for this claim.
pickup object The claim's pickup location details object.
pickup.longLat object An object that details geo-spacial data about the pickup location.
pickup.longLat.type string The type of data that will be provided bt the longLat object, will always be "Point" to denote coordinates.
pickup.longLat.coordinates array [float] An array of floats representing the coordinates of the pickup location. Index 0 is longitude, Index 1 is latitude.
pickup.country string The country of the pickup location.
pickup.addressOne string The "Address One" line of the pickup location.
pickup.addressTwo string The "Address Two" line of the pickup location.
pickup.city string The city of the pickup location.
pickup.state string The state of the pickup location.
pickup.zip string The zip code of the pickup location.
pickup.formattedAddress string The pickup location formatted as a single string.
dropoff object The claim's dropoff location details object.
dropoff.longLat object An object that details geo-spacial data about the dropoff location.
dropoff.longLat.type string The type of data that will be provided bt the longLat object, will always be "Point" to denote coordinates.
dropoff.longLat.coordinates array [float] An array of floats representing the coordinates of the dropoff location. Index 0 is longitude, Index 1 is latitude.
dropoff.country string The country of the dropoff location.
dropoff.addressOne string The "Address One" line of the dropoff location.
dropoff.addressTwo string The "Address Two" line of the dropoff location.
dropoff.city string The city of the dropoff location.
dropoff.state string The state of the dropoff location.
dropoff.zip string The zip code of the dropoff location.
dropoff.formattedAddress string The dropoff location formatted as a single string.
mileage number The mileage of the claim, i.e. the mileage between pickup and dropoff locations.
events array [object] All events that have occurred for the claim. This is an array of event objects.
event[index].message string A message summarizing the event.
event[index].type string The type of event this is, e.g. "creation", "update", "payment", "denial", "other".
event[index].updatedFields object If the claim was updated, this object will contain the updated field names as the keys, and the corresponding updated value as the values.
event[index].createdAt string The ISO 8601 date string representing the time the event was created. Is in UTC time.
validationErrors string A JSON string summarizing payer-specific validation errors by field name (if any).
submissionNote object An object containing details about this claim's submission note.
submissionNote.referenceCode string The reference code denoting the type of submission note is attached to the claim.
Eg: ADD for ADDITIONAL_INFO.
Conversion is as follows:
ADDITIONAL_INFO: 'ADD',
CERTIFICATION_NARRATIVE: 'CER',
GOALS_REHAB_OR_DISCHARGE: 'DCP',
DIAGNOSIS_DESCRIPTION: 'DGN',
THIRD_PARTY_NOTES: 'TPO'
submissionNote.text string The submission note text for this claim.
ambulanceConditionCodes object The condition codes of the patient during the ambulance trip.
isEmploymentRelated boolean Whether the claim is related to a employment or workers compensation
isArchived boolean Whether the claim is archived or not.
onHold boolean Whether the claim is being held or not.
creationGroupID array [string] An array that represents all the creation "batches" this claim is present in, e.g. and import ID, a file ID, etc.
isInvalid boolean Whether or not the claim is valid for submission to the payer referenced in the claim's payer object. View the validationErrors field to view why the error is invalid (if applicable).
internalNotes array [object] All internal notes regarding this claim, is an array of internalNote objects.
internalNotes[index].text string The text of the internal note.
internalNotes[index].reminderDate string The ISO 8601 date string representing the reminder date for this internal notes. Is in UTC time.
internalNotes[index].createdBy string The internal note's creating user's userID.
internalNotes[index].isResolved boolean Whether this internal note has been resolved.
createdAt string The ISO 8601 date string representing the date when this claim was created in the Kintetik system. Is in UTC time.
updatedAt string The ISO 8601 date string representing the date when this claim was last updated in the Kintetik system. Is in UTC time.

GET Professional Claims By LegID


curl -L -X GET 'https://api.sandbox.kinetik.care/billing/claims/trips?taLegIds=231-456,775-456&apiKey=API_KEY&secretKey=SECREY_KEY'

The above command returns JSON structured like this:

{
  "status": "success",
  "message": "Successfully got professional claims.",
  "payload": {
    "claims": [
      {
        "claimID": "pclmabcded",
        "providerID": "provabcd",
        "remoteClaimID": "1111222555574",
        "type": "f301",
        "status": "c01",
        "serviceType": "st01",
        "startDate": "2020-08-23T00:00:00.000Z",
        "endDate": "2020-08-23T00:00:00.000Z",
        "priorAuthorization": "01234567890",
        "diagnosisCode1": "R69",
        // diagnosisCode fields can range from 1 up to 12
        "driverLicenseNumber": "AAABBBCCDD",
        "vehiclePlateNumber": "EEFFGGTT",
        "countyNumber": "14",
        "account": {
            "order": "PRIMARY",
            "name": "Some Payer",
            "isPayer": true,
            "payerID": "12345",
            "accountID": "acctsktwi34fkkx7gocq",
            "location": {
              "addressOne": "110 Wall Street",
              "addressTwo": null,
              "city": "New York",
              "state": "NY",
              "zip": "10005",
            },
            "contact": {
              "name": "John Doe",
              "email": "john@somepayer.com",
              "phone": "1234567890"
            }
        },
        "subscriber": {
          "isActive": true,
          "providerID": "provabcd",
          "insuranceNumber": "XXXYYYZZ",
          "employerName": "Acme, Inc.",
          "group": "An Insurance Group",
          "plan": "JJ8327",
          "medicareCode": "AABBCC",
          "firstName": "First",
          "lastName": "Last",
          "middleName": "Middle",
          "phoneNumber": "2125550123",
          "sex": "M",
          "dateOfBirth": "1958-04-13T00:00:00.000Z"
        },
        "referringProvider": {
          "firstName": "First",
          "middleName": "Middle",
          "lastName": "Last",
          "npi": "0123456789"
        },
        "resubmissionCount": 0,
        "frequencyCode": "1",
        "services": [
          {
            "serviceID": "srv123",
            "paidAmount": 0,
            "units": 2,
            "expectedPaidAmount": 0,
            "chargeAmount": 2.82,
            "procedureCode": "A0100",
            "startDate": "2020-08-23T00:00:00.000Z",
            "endDate": "2020-08-23T00:00:00.000Z",
            "diagnosisReference": "A",
            "calculatedChargeAmount": 24,
            "payments": [
              {
                "amount": 0.00,
                "method": "ACH",
                "eraID": "example",
                "paymentDate": "2020-09-19T00:00:00.000Z",
                "paymentID": "example"
              }
            ],
            "adjustmentReasons": [
              {
                "adjustmentGroup": "CO",
                "claimAdjustmentGroupDescription": "contractualObligations",
                "adjustmentReason": "45",
                "adjustmentAmount": 0.0
              }
            ]
          },
          {
            "serviceID": "srv234",
            "paidAmount": 0,
            "units": 21.8,
            "expectedPaidAmount": 0,
            "chargeAmount": 76.3,
            "procedureCode": "S0215",
            "modifierOne": null,
            "startDate": "2020-08-23T00:00:00.000Z",
            "endDate": "2020-08-23T00:00:00.000Z",
            "diagnosisReference": "A",
            "calculatedChargeAmount": 65.4,
            "payments": [
              {
                "amount": 0.00,
                "method": "ACH",
                "eraID": "example",
                "paymentDate": "2020-09-19T00:00:00.000Z",
                "paymentID": "example"
              }
            ],
            "adjustmentReasons": [
              {
                "adjustmentGroup": "CO",
                "claimAdjustmentGroupDescription": "contractualObligations",
                "adjustmentReason": "45",
                "adjustmentAmount": 0.0
              }
            ]
          }
        ],
        "financialSummary": {
          "totalCharge": 79.12,
          "totalPaid": 0,
          "totalCalculatedCharge": 89.4,
          "totalExpectedPaid": 0
        },
        "pickup": {
          "longLat": {
            "type": "Point",
            "coordinates": [-78.8742242, 43.0256758]
          },
          "country": "USA",
          "addressOne": "100 Oliver St",
          "addressTwo": null,
          "city": "North Tonawanda",
          "state": "NY",
          "zip": "14120",
          "formattedAddress": "100 Oliver St, North Tonawanda, NY, 14120"
        },
        "dropoff": {
          "longLat": {
            "type": "Point",
            "coordinates": [-78.7301425, 42.9940125]
          },
          "country": "USA",
          "addressOne": "1540 Maple Rd",
          "addressTwo": "Apt C",
          "city": "Buffalo",
          "state": "NY",
          "zip": "14221",
          "formattedAddress": "1540 Maple Rd, Buffalo, NY, 14221"
        },
        "mileage": 21.8,
        "validationErrors": "{"fieldName": "message"}",
        "submissionNote": {
          "referenceCode": "ADD",
          "text": "Here's a submission note!"
        },
        "ambulanceConditionCodes": {
          "12": false,
          "01": false,
          "04": false,
          "05": false,
          "06": false,
          "07": false,
          "08": false,
          "09": false
        },
        "isEmploymentRelated": false,
        "isArchived": false,
        "onHold": false,
        "creationGroupID": ["fle00001"],
        "isInvalid": false,
        "internalNotes": [
           {
          "text": "Here's a note!",
          "reminderDate": "2020-08-31T07:30:00.000Z",
          "createdBy": "user123xyz",
          "isResolved": false
          }
        ],
        "taLegIds": ["231-456", "775-456"],
        "createdAt": "2020-08-27T07:00:01.547Z",
        "updatedAt": "2020-08-27T15:01:42.583Z"
      }
    ]
  }
}

This endpoint returns an array of professional claims based on your query. In the query you need to add Leg IDs as a comma separated list to retrieve claims for those IDs.

HTTP Request

GET /billing/claims/professional/trips

URL Query Parameters

Parameter Required Default Description
taLegIds No The Kinetik generated leg ID for the claims you wish to retrieve.
tsTripIds No The Kinetik Trip IDs for the claim you wish to retrieve.

Professional Claim Object

Property Type Description
claimID string A unique ID for the claim, generated by Kinetik.
providerID string The providerID for the provider that owns this claim.
remoteClaimID string The ID provided by the claim's creating user/entity.
type string Kinetik's type code for this claim. "f301" here represents a professional claim type.
status string Kinetik's status code for the claim's current status.
Eg: c02 for READY_BILL.
Conversion is as follows:
BROKER_CANCELLED: 'c01',
READY_BILL: 'c02',
BILLED: 'c03',
APPROVED: 'c04',
PAID: 'c05',
REJECTED: 'c06',
SUBMITTED: 'c06',
PENDING: 'c08'
serviceType string The type of trip service.
Eg: st01 for AMBULATORY.
Conversion is as follows:
AMBULATORY: 'st01',
BARIATRIC_WHEELCHAIR: st02',
BARIATRIC_STRETCHER: 'st03',
BARIATRIC_STRETCHER_LG: 'st04',
BRODA_CHAIR: 'st05',
COVID: 'st06',
STRETCHER: 'st07',
STRETCHER_LG: 'st08',
WHEELCHAIR: 'st09',
TAXI: 'st10'
startDate string The ISO 8601 date string for the claim's start date. Is in UTC time.
endDate string The ISO 8601 date string for the claim's end date. Is in UTC time.
priorAuthorization string The prior authorization number for the claim.
diagnosisCode1 string The first diagnosis code for this claim.
diagnosisCodeX string The Xth diagnosis code for this claim.
driverLicenseNumber string The driver's license number for the driver that serviced this claim.
vehiclePlateNumber string The vehicle's plate number for the vehicle used to service this claim.
countyNumber string The county associated with this claim
account object The claim's payer account details object.
account.order string The paying order of the listed payer. Defaults to PRIMARY
account.name string The full name of the payer account for this claim.
account.isPayer boolean A boolean indicating whether this account is a professional claims payer.
account.payerID string The payer account's official payer ID.
account.accountID string Kinetik's internal ID for this account.
account.location object An object containing information about the payer account's address.
account.location.addressOne string The "Address One" line of the payer account's location.
account.location.addressTwo string The "Address Two" line of the payer account's location.
account.location.city string The city of the payer account's location.
account.location.state string The state of the payer account's location.
account.location.zip string The zip code of the payer account's location.
account.contact object An object containing information about how to contact the payer account.
account.contact.name string The primary contact name for this payer account.
account.contact.email string The primary contact email for this payer account.
account.contact.phone string The primary contact phone number for this payer account.
subscriber object The claim's subscriber details object.
subscriber.isActive boolean The status of the subscriber
subscriber.providerID string The providerID for the provider this subscriber is associated with.
subscriber.insuranceNumber string The subscriber's insurance number.
subscriber.employerName string The subscriber's employer name.
subscriber.group string The subscriber's insurance group name.
subscriber.plan string The subscriber's insurance plan name.
subscriber.medicareCode string The subscriber's medicare code.
subscriber.firstName string The subscriber's first name.
subscriber.lastName string The subscriber's last name.
subscriber.middleName string The subscriber's middle name.
subscriber.phoneNumber string The subscriber's phone number.
subscriber.sex string The subscriber's sex. May be any of the following values: 'Male', 'Female', 'M', 'F', 'male', 'female', 'm', 'f'.
subscriber.dateOfBirth string The subscriber's Date of Birth. Is an ISO 8601 date string in UTC time.
referringProvider object The Referring Provider.
referringProvider.firstName string The Referring Provider's first name.
referringProvider.lastName string The Referring Provider's last name.
referringProvider.middleName string The Referring Provider's middle name.
referringProvider.npi string The Referring Provider's NPI.
frequencyCode string The frequency code for the claim.
eg: 1 for ORIGINAL.
Conversion is as follows:
ORIGINAL: '1',
RESUBMISSION: '7',
VOID: '8'
services array [object] The services for this claim. Is an array of service objects.
services[index].serviceID string The unique ID for this service.
services[index].paidAmount number The amount paid for this service.
services[index].units number The number of units for this service.
services[index].expectedPaidAmount number The amount expected to be paid for this service.
services[index].chargeAmount number The amount charged for this service.
services[index].procedureCode string The procedure code for this service.
services[index].startDate string The ISO 8601 date string representing the start date for this service. Is in UTC time.
services[index].endDate string The ISO 8601 date string representing the end date for this service. Is in UTC time.
services[index].diagnosisReference string Denotes which one of the claim's diagnosis codes this service refers to.
services[index].calculatedChargeAmount number The amount the service is calculated to be.
services[index].payments array [object] Details about each payment made towards this service.
services[index].adjustmentReasons array [object] Details about each adjustment made towards this service.
financialSummary object An object containing financial details for this claim.
financialSummary.totalCharge number The total charge amount for this claim.
financialSummary.totalPaid number The total paid amount for this claim.
financialSummary.totalCalculatedCharge number The total calculated charge the claim is to be
financialSummary.totalExpectedPaid number The total expected amount to be paid for this claim.
pickup object The claim's pickup location details object.
pickup.longLat object An object that details geo-spacial data about the pickup location.
pickup.longLat.type string The type of data that will be provided bt the longLat object, will always be "Point" to denote coordinates.
pickup.longLat.coordinates array [float] An array of floats representing the coordinates of the pickup location. Index 0 is longitude, Index 1 is latitude.
pickup.country string The country of the pickup location.
pickup.addressOne string The "Address One" line of the pickup location.
pickup.addressTwo string The "Address Two" line of the pickup location.
pickup.city string The city of the pickup location.
pickup.state string The state of the pickup location.
pickup.zip string The zip code of the pickup location.
pickup.formattedAddress string The pickup location formatted as a single string.
dropoff object The claim's dropoff location details object.
dropoff.longLat object An object that details geo-spacial data about the dropoff location.
dropoff.longLat.type string The type of data that will be provided bt the longLat object, will always be "Point" to denote coordinates.
dropoff.longLat.coordinates array [float] An array of floats representing the coordinates of the dropoff location. Index 0 is longitude, Index 1 is latitude.
dropoff.country string The country of the dropoff location.
dropoff.addressOne string The "Address One" line of the dropoff location.
dropoff.addressTwo string The "Address Two" line of the dropoff location.
dropoff.city string The city of the dropoff location.
dropoff.state string The state of the dropoff location.
dropoff.zip string The zip code of the dropoff location.
dropoff.formattedAddress string The dropoff location formatted as a single string.
mileage number The mileage of the claim, i.e. the mileage between pickup and dropoff locations.
event[index].message string A message summarizing the event.
event[index].type string The type of event this is, e.g. "creation", "update", "payment", "denial", "other".
event[index].updatedFields object If the claim was updated, this object will contain the updated field names as the keys, and the corresponding updated value as the values.
event[index].createdAt string The ISO 8601 date string representing the time the event was created. Is in UTC time.
validationErrors string A JSON string summarizing payer-specific validation errors by field name (if any).
submissionNote object An object containing details about this claim's submission note.
submissionNote.referenceCode string The reference code denoting the type of submission note is attached to the claim.
Eg: ADD for ADDITIONAL_INFO.
Conversion is as follows:
ADDITIONAL_INFO: 'ADD',
CERTIFICATION_NARRATIVE: 'CER',
GOALS_REHAB_OR_DISCHARGE: 'DCP',
DIAGNOSIS_DESCRIPTION: 'DGN',
THIRD_PARTY_NOTES: 'TPO'
submissionNote.text string The submission note text for this claim.
ambulanceConditionCodes object The condition codes of the patient during the ambulance trip.
isEmploymentRelated boolean Whether the claim is related to a employment or workers compensation
isArchived boolean Whether the claim is archived or not.
onHold boolean Whether the claim is being held or not.
creationGroupID array [string] An array that represents all the creation "batches" this claim is present in, e.g. and import ID, a file ID, etc.
isInvalid boolean Whether or not the claim is valid for submission to the payer referenced in the claim's payer object. View the validationErrors field to view why the error is invalid (if applicable).
internalNotes array [object] All internal notes regarding this claim, is an array of internalNote objects.
internalNotes[index].text string The text of the internal note.
internalNotes[index].reminderDate string The ISO 8601 date string representing the reminder date for this internal notes. Is in UTC time.
internalNotes[index].createdBy string The internal note's creating user's userID.
internalNotes[index].isResolved boolean Whether this internal note has been resolved.
taLegIds array[string] An array that stores all related Leg IDs.
tsTripIds array[string] An array that stores all related Trip IDs.
createdAt string The ISO 8601 date string representing the date when this claim was created in the Kintetik system. Is in UTC time.
updatedAt string The ISO 8601 date string representing the date when this claim was last updated in the Kintetik system. Is in UTC time.

GET Professional Claim Updates


curl -L -X GET 'https://api.sandbox.kinetik.care/billing/claims/professional/updates?apiKey=API_KEY&secretKey=SECRET_KEY&fromDate=08/18/2020%2000:00&toDate=08/18/2020%2023:59'

The above command returns JSON structured like this:

{
  "status": "success",
  "statusCode": 200,
  "message": "Successfully got professional claim updates.",
  "payload": {
    "professionalClaimUpdates": [
      {
        "status": "c02",
        "providerID": "prov123456",
        "startDate": "2020-08-17T00:00:00.000Z",
        "claimID": "pclm123456789",
        "remoteClaimID": "1345689",
        "subscriberInsuranceNumber": "ABC01234",
        "account": {
          "order": "PRIMARY",
          "name": "Some State Medicaid",
          "isPayer": true,
          "payerID": "12345",
          "accountID": "acctexample"
        },
        "totalPaid": 0,
        "totalCharged": 48.75,
        "events": [
          {
            "message": "Claim created via upload.",
            "type": "creation",
            "createdAt": "2020-08-18T22:35:07.125Z"
          },
          {
            "message": "Updates made the to the following field(s): Prior Authorization",
            "type": "update",
            "updatedFields": {
              "priorAuthorization": "XXXYYYZZZ"
            },
            "createdAt": "2020-08-18T22:40:50.790Z"
          }
        ]
      }
    ]
  }
}

This endpoint returns an array of professional claims that have been updated in the time frame specified. Each item in the array includes basic data on the claim that was updated and an array of updates that occurred to that claim filtered by the queried time frame.

HTTP Request

GET /billing/claims/professional/updates

URL Query Parameters

Parameter Required Default Description
fromDate Yes The start date you would like to see claim updates from.
toDate No Now The end date you would like to see updates from.

Professional Claim Update Object

Property Type Description
status string Kinetik's status code for the claim's current status.
providerID string The providerID for the provider that "owns" the claim.
startDate string The ISO 8601 date string for the claim's start date.
claimID string The claim's claimID, a unique ID Kinetik assigns.
remoteClaimID string The ID provided by the claim's creating user/entity.
subscriberInsuranceNumber string The claim's subscriber's Insurance Number.
account object The claim's payer account details object.
account.order string The paying order of the listed payer. Defaults to PRIMARY
account.name string The full name of the payer account for this claim.
account.isPayer boolean A boolean indicating whether this account is a professional claims payer.
account.payerID string The payer account's official payer ID.
account.accountID string Kinetik's internal ID for this account.
totalPaid number The claim's total payment amount.
totalCharge number The claim's total charge amount.
events array [object] All events that have occurred for the claim during the specified time frame. Is an array of event objects.
event[index].message string A message summarizing the event.
event[index].type string The type of event this is, e.g. "creation", "update", "payment", "denial", "other".
event[index].updatedFields object If the claim was updated, this object will contain the updated field names as the keys, and the corresponding updated value as the values.
event[index].createdAt string The ISO 8601 date string representing the time the event was created.

GET Professional Claim 1500 Form


curl -L -X GET 'https://api.sandbox.kinetik.care/billing/claims/professional/1500/CLAIM_ID?apiKey=API_KEY&secretKey=SECRET_KEY'

The above command returns JSON structured like this:

{
  "status": "success",
  "statusCode": 200,
  "message": "Successfully exported claims 1500 PDF form.",
  "payload": {
    "fileName": "LASTNAME-FIRSTNAME.pdf",
    "base64Pdf": "BASE64STRING"
  }
}

This endpoint expects a professional claim claimID as a URL path parameter to then create and returns a base64 encoded PDF 1500 form for that claim.

HTTP Request

GET /billing/claims/professional/1500/{claimID}

URL Path Parameters

Parameter Required Default Description
claimID Yes The ID of the claim you wish to receive a 1500 form for.

1500 Payload Object

Property Type Description
fileName string The filename for the encoded PDF. Filename is generated using the claim's patient's first and last name.
base64Pdf string The base64 encoded PDF string.

GET Professional Claim History


curl -L -X GET 'https://api.sandbox.kinetik.care/billing/claims/professional/claim/history/pclmqhhhg6DOY5fjx4KC?apiKey=API_KEY&secretKey=SECRET_KEY'

The above command returns JSON structured like this:

{
    "status": "success",
    "statusCode": 200,
    "message": "Successfully fetched claim history",
    "payload": {
        "claimID": "pclmqhhhg6DOY5fjx4KC",
        "claimHistory": [
            {
                "details": "",
                "message": "Changes have been made to the following field(s): Financial Summary",
                "updatedFields": {
                    "financialSummary": {
                        "totalCharge": 7056,
                        "totalCalculatedCharge": 7056,
                        "totalServicesExpectedPaid": 0,
                        "totalClaimPayment": 0,
                        "totalBalance": 7056
                    }
                },
                "createdAt": "2024-01-15T09:10:31.237Z",
                "entity": "Kinetik",
                "type": "update",
                "eventID": "evt1otyz1nghlrernxrc"
            },
            {
                "details": "",
                "message": "Changes have been made to the following field(s): Services",
                "updatedFields": {
                    "services.0.calculatedChargeAmount": 5496,
                    "services.1.calculatedChargeAmount": 1560
                },
                "createdAt": "2024-01-15T09:10:31.084Z",
                "entity": "Kinetik",
                "type": "update",
                "eventID": "evt1otyz1nghlrernxrb"
            }
        ]
    }
}

This endpoint expects a professional claim claimID as a URL path parameter and returns events as claimHistory for that claim.

HTTP Request

GET /billing/claims/professional/claim/history/{claimID}

URL Path Parameters

Parameter Required Default Description
claimID Yes The ID of the claim you wish to receive events.

History Payload Object

Property Type Description
status string Kinetik's status code for the claim's current status.
claimID string The claim's claimID, a unique ID Kinetik assigns.
claimHistory array [object] All events that have occurred for the claim. This is an array of event objects.
claimHistory[index].message string A message summarizing the event.
claimHistory[index].type string The type of event this is, e.g. "creation", "update", "payment", "denial", "other".
claimHistory[index].updatedFields object If the claim was updated, this object will contain the updated field names as the keys, and the corresponding updated value as the values.
claimHistory[index].createdAt string The ISO 8601 date string representing the time the event was created. Is in UTC time.
claimHistory[index].eventID string The ID of the event

POST Professional Claims

curl -L -X POST 'https://api.sandbox.kinetik.care/billing/claims/professional?apiKey=API_KEY&secretKey=SECREY_KEY' \
--header 'Content-Type: application/json' \
--data-raw '[
      {
        "remoteClaimID": "1111222555574",
        "serviceType": "st01",
        "startDate": "2020-08-23T00:00:00.000Z",
        "endDate": "2020-08-23T00:00:00.000Z",
        "priorAuthorization": "01234567890",
        "diagnosisCode1": "R69",
        "driverLicenseNumber": "AAABBBCCDD",
        "vehiclePlateNumber": "EEFFGGTT",
        "countyNumber": "14",
        "account": {
          "order": "PRIMARY",
          "name": "Some State Medicaid",
          "isPayer": true,
          "payerID": "12345",
          "accountID": "acctexample"
        },
        "patient": {
          "insuranceNumber": "XXXYYYZZ",
          "employerName": "Acme, Inc.",
          "group": "An Insurance Group",
          "plan": "JJ8327",
          "medicareCode": "AABBCC",
          "firstName": "First",
          "lastName": "Last",
          "middleName": "Middle",
          "phoneNumber": "2125550123",
          "sex": "M",
          "dateOfBirth": "1958-04-13T00:00:00.000Z"
        },
        "subscriber": {
          "insuranceNumber": "XXXYYYZZ",
          "employerName": "Acme, Inc.",
          "group": "An Insurance Group",
          "plan": "JJ8327",
          "medicareCode": "AABBCC",
          "firstName": "First",
          "lastName": "Last",
          "middleName": "Middle",
          "phoneNumber": "2125550123",
          "sex": "M",
          "dateOfBirth": "1958-04-13T00:00:00.000Z"
        },
        "referringProvider": {
          "firstName": "First",
          "middleName": "Middle",
          "lastName": "Last",
          "npi": "0123456789"
        },
        "services": [
          {
            "units": 2,
            "chargeAmount": 2.82,
            "procedureCode": "A0100",
            "modifierOne": "TN",
            "modifierTwo": "AC",
            "modifierThree": "FF",
            "modifierFour": "LG",
            "startDate": "2020-08-23T00:00:00.000Z",
            "endDate": "2020-08-23T00:00:00.000Z",
            "diagnosisReference": "A"
          },
          {
            "units": 21.8,
            "chargeAmount": 76.3,
            "procedureCode": "S0215",
            "modifierOne": "TN",
            "startDate": "2020-08-23T00:00:00.000Z",
            "endDate": "2020-08-23T00:00:00.000Z",
            "diagnosisReference": "A"
          }
        ],
        "patientAmountPaid": 0,
        "pickup": {
          "country": "USA",
          "addressOne": "100 Oliver St",
          "addressTwo": null,
          "city": "North Tonawanda",
          "state": "NY",
          "zip": "14120",
        },
        "dropoff": {
          "country": "USA",
          "addressOne": "1540 Maple Rd",
          "addressTwo": "Apt C",
          "city": "Buffalo",
          "state": "NY",
          "zip": "14221",
        },
        "mileage": 21.8
      }
  ]'

The above command returns JSON structured like this:

{
  "status": "success",
  "message": "Successfully created 1 new professional claim(s)",
  "payload": {
    "creationGroupID": "apixxyyzz",
    "count": 1
  }
}

This endpoint expects an array of Professional Claim JSON objects as the request body, and returns a confirmation of creation with a creationGroupID and the number of Professional Claims created from the request. You may query the GET Professional Claims route using the returned creationGroupID to see the claims created from the request. Please refer to the "Expected Professional Claim Request Body" below as this is the required format of each Professional Claim in the request body array.

HTTP Request

POST /billing/claims/professional

Expected Professional Claim Request Body

Below is the minimum acceptable Professional Claim expected by this endpoint. Although not every field is required, we strongly recommend most/every applicable value be provided.

Please view the "Professional Claim Object" subheading under the GET Professional Claims route section for a detailed description of these properties.

Property Required Type
remoteClaimID No String
serviceType No String
startDate Yes String (ISO 8601 UTC Date)
endDate Yes String (ISO 8601 UTC Date)
priorAuthorization No String
diagnosisCode1 Yes String
diagnosisCodeX (2-12) No String
driverLicenseNumber No String
vehiclePlateNumber No String
countyNumber No String
account Yes Object
account.order No String
account.name Yes String
account.isPayer Yes Boolean
account.payerID Yes String
account.accountID Yes String
patient Yes Object
patient.insuranceNumber Yes String
patient.employerName No String
patient.group No String
patient.plan No String
patient.medicareCode No String
patient.firstName Yes String
patient.lastName Yes String
patient.middleName No String
patient.phoneNumber No String
patient.sex Yes String
patient.dateOfBirth Yes String (ISO 8601 UTC Date)
subscriber No Object
subscriber.insuranceNumber No String
subscriber.employerName No String
subscriber.group No String
subscriber.plan No String
subscriber.medicareCode No String
subscriber.firstName No String
subscriber.lastName No String
subscriber.middleName No String
subscriber.middleName No String
subscriber.phoneNumber No String
subscriber.sex No String
subscriber.dateOfBirth No String (ISO 8601 UTC Date)
referringProvider.firstName No String
referringProvider.lastName No String
referringProvider.middleName No String
referringProvider.npi No String
services Yes Array
services[index].units Yes Number
services[index].chargeAmount Yes Number
services[index].procedureCode Yes String
services[index].modifierOne No String
services[index].modifierX (Two - Four) No String
services[index].startDate Yes String (ISO 8601 UTC Date)
services[index].endDate Yes String (ISO 8601 UTC Date)
services[index].diagnosisReference Yes String
patientAmountPaid No Number
pickup No Object
pickup.country No String
pickup.addressOne No String
pickup.addressTwo No String
pickup.city No String
pickup.state No String
pickup.zip No String
dropoff No Object
dropoff.country No String
dropoff.addressOne No String
dropoff.addressTwo No String
dropoff.city No String
dropoff.state No String
dropoff.zip No String
mileage No Number

POST Professional Claims from Trips


curl -L -X POST 'https://api.sandbox.kinetik.care/billing/claims/professional/trips?apiKey=API_KEY&secretKey=SECRET_KEY' \
-H 'Content-Type: application/json' \
--data-raw '[
  {
      "remoteTripID": "tripxxyeembw",
      "remoteServiceType": "AMBULATORY",
      "patientFirstName": "John",
      "patientLastName": "Smith",
      "patientInsuranceNumber": "PCN123456",
      "patientDOB": "05/11/1991",
      "patientSex": "M",
      "patientPhoneNumber": "2125556789",
      "patientAddressOne": "1123 Main Street",
      "patientAddressTwo": "Apt 4C",
      "patientCity": "Queens",
      "patientState": "NY",
      "patientZip": "11375",
      "serviceType": "st01",
      "priorAuthorizationNumber": "PA7237931",
      "referringProviderNPI": "NPI12345",
      "referringProviderFirstName": "Parth",
      "referringProviderLastName": "Patel",
      "renderingProviderNPI": "RRIV828582",
      "renderingProviderFirstName": "Charles",
      "renderingProviderLastName": "Rivas",
      "pickupDateTime": "07/23/2020 13:14",
      "pickupAddressOne": "1123 Main Street",
      "pickupAddressTwo": "Apt 4C",
      "pickupCity": "Queens",
      "pickupState": "NY",
      "pickupZip": "11375",
      "dropoffDateTime": "07/23/2020 13:57",
      "dropoffAddressOne": "100 Wall Street",
      "dropoffAddressTwo": "",
      "dropoffCity": "New York",
      "dropoffState": "NY",
      "dropoffZip": "10005",
      "mileage": 15.25,
      "driverLicenseNumber": "LI83H83",
      "vehiclePlateNumber": "T7362943",
      "patientAmountPaid": 0,
      "hasToll": false,
      "accountID": "acctsktwi34fkkx7hkge",
      "tollCharge": 0,
      "waitTime": 10,
      "remoteChargeAmount": 100.00,
      "custom": {
          "custom_trip_key": "Custom Trip Value"
      }
  }
]'

The above command returns JSON structured like this:

{
  "status": "success",
  "statusCode": 200,
  "message": "Processing trips into claims initialized, however no webhook endpoint is available to invoke upon processing completion. You may directly query for these claims after some time using the creation group ID in the payload.",
  "payload": {
    "creationGroupID": "pcft1p7w10oyke3bvgye"
  }
}

This endpoint creates professional claims from trip data. Instead of waiting for claims to be created to return, this endpoint immediately returns a creationGroupID. This can be used to later query the GET Professional Claims route for the professional claims created from this request.

For creating claims using trip data, Kinetik requires a remoteTripID field for each trip. This remoteTripID will become the claim's remoteClaimID that you can use to track these claims individually. We highly recommend remoteTripID be an ID from your own system.

Incoming trip data is treated as an upsert. This means that trips with unique remoteTripID values will be created, but trips with remoteTripID values that match an existing claim's remoteClaimID will be treated as an update instead of a create. Incoming trip data will be prioritized over existing claim data in the event of an update.

HTTP Request

POST /billing/claims/professional/trips

Expected Trip Data Object format

The request body must be an array of objects following this specific format:

Property Required Type Description
remoteTripID Yes string An ID you must provide for the
trip, will be the created claim's remoteClaimID.
patientFirstName Yes string The Patient's first name.
patientLastName Yes string The Patient's last name.
patientInsuranceNumber Yes string The Patient's Insurance Number.
patientDOB Yes string The Patient's Date of Birth.
Must be in MM/DD/YYYY format.
patientSex Yes string The Patient's sex. Valid values include:
'Male',
'Female',
'M',
'F',
'male',
'female',
'm',
'f'.
patientPhoneNumber Yes string The Patient's phone number.
patientAddressOne Yes string The "Address One" line of the patient's home address.
patientAddressTwo No string The "Address Two" line of the patient's home address.
patientCity Yes string The city of the patient's home address.
patientState Yes string The US State of the patient's
home address. Eg: 'NY'
patientZip Yes string The Zip Code of the patient's
home address.
accountID Yes string The Kinetik provided ID of the account this claim will be
submitted to.
Eg: acctsktwi34fkkx7hkge
serviceType Yes string The type of trip service.
Eg: st01 for AMBULATORY.
Conversion is as follows:
AMBULATORY: 'st01',
BARIATRIC_WHEELCHAIR: st02',
BARIATRIC_STRETCHER: 'st03',
BARIATRIC_STRETCHER_LG: 'st04',
BRODA_CHAIR: 'st05',
COVID: 'st06',
STRETCHER: 'st07',
STRETCHER_LG: 'st08',
WHEELCHAIR: 'st09',
TAXI: 'st10'
priorAuthorizationNumber No string The trip prior authorization
number.
referringProviderNPI No string The Referring Provider's NPI.
referringProviderFirstName No string The Referring Provider's first
name.
referringProviderLastName No string The Referring Provider's last
name.
renderingProviderNPI No string The Rendering Provider's NPI.
renderingProviderFirstName No string The Rendering Provider's first
name.
renderingProviderLastName No string The Rendering Provider's last
name.
countyNumber No string The county code where the trip
was completed. Eg: '14'
isCanceled No boolean True if trip was canceled.
Defaults to false
pickupDateTime Yes string Pickup time and date string in the following format: 'MM/DD/YYYY HH:mm'
pickupAddressOne Yes string The "Address One" line of the pickup location.
pickupAddressTwo No string The "Address Two" line of the
pickup location.
pickupCity Yes string The city of the pickup location.
pickupState Yes string The US State of the pickup
location.
pickupZip Yes string The Zip Code of the pickup
location.
dropoffDateTime Yes string Dropoff time and date string in
the following format: 'MM/DD/YYYY HH:mm'
dropoffAddressOne Yes string The "Address One" line of the dropoff location.
dropoffAddressTwo No string The "Address Two" line of the dropoff location.
dropoffCity Yes string The city of the dropoff location.
dropoffState Yes string The US State of the dropoff
location.
dropoffZip Yes string The Zip Code of the dropoff location.
mileage No float Float of number of miles were
taken to complete trip.
Min amount is 0.
driverLicenseNumber No string The license number of the driver who completed the trip.
vehiclePlateNumber No string The license plate of the vehicle
that completed the trip.
patientAmountPaid No number The amount the patient paid.
If blank, defaults to 0.
hasToll Yes boolean Indicates if a toll was involved in
the trip.
tollCharge No number The amount the of tolls paid. If blank, defaults to 0.
waitTime No number The amount of time in minute driver waits for patient pickup
remoteChargeAmount No number The amount charged for the trip, defaults to 0.
custom No object Custom fields and values for recording non standard information.

POST Upload Professional Claim Files


curl -L -X POST 'https://api.sandbox.kinetik.care/billing/claims/professional/upload?apiKey=API_KEY&secretKey=SECRET_KEY' \
-H 'Content-Type: multipart/form-data' \
-F 'file=@/Users/user/Desktop/another_test_837.txt'

The above command returns JSON structured like this:

{
  "status": "success",
  "statusCode": 200,
  "message": "Successfully uploaded professional claims file.",
  "payload": {
    "fileID": "fle123456"
  }
}

This endpoint accepts 837p or CSV file upload via multipart/form-data request body and expects the file to be assigned to the file field. This endpoint returns a fileID that you can use to query the GET Professional Claims route to receive professional claims created from this endpoint.

Kinetik requires an ID for each claim in the uploaded file and highly recommends sending unique IDs. The associated field name for the ID in CSV is Remote Claim ID and the field in 837p files is the Claim Submitter Identifier segment in Loop 2300.

Incoming claim data is treated as an upsert. This means that claims with unique IDs will be created, but claims with IDs that match an existing claim's remoteClaimID will be treated as an update instead of a create. Incoming claim data will be prioritized over existing claim data in the event of an update.

HTTP Request

POST /billing/claims/professional/upload

URL Query Parameters

Parameter Required Default Description
claimFileType Yes Type of Claim File. Accepted File types are described above. First column is the value for this param
accountID No Account for which claims should be created.

PUT Update Professional Claim By claimID

curl -L -X PUT 'https://api.sandbox.kinetik.care/billing/claims/professional/update/pclmzityg9l5tsv5om?apiKey=API_KEY&secretKey=SECREY_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
      "serviceType": "st01",
      "startDate": "2020-08-23T00:00:00.000Z",
      "endDate": "2020-08-23T00:00:00.000Z",
      "priorAuthorization": "01234567890",
      "diagnosisCode1": "R69",
      "driverLicenseNumber": "AAABBBCCDD",
      "vehiclePlateNumber": "EEFFGGTT",
      "countyNumber": "14",
      "account": {
        "order": "PRIMARY",
        "name": "Some State Medicaid",
        "isPayer": true,
        "payerID": "12345",
        "accountID": "acctexample"
      },
      "patient": {
        "insuranceNumber": "XXXYYYZZ",
        "employerName": "Acme, Inc.",
        "group": "An Insurance Group",
        "plan": "JJ8327",
        "medicareCode": "AABBCC",
        "firstName": "First",
        "lastName": "Last",
        "middleName": "Middle",
        "phoneNumber": "2125550123",
        "sex": "M",
        "dateOfBirth": "1958-04-13T00:00:00.000Z"
      },
      "subscriber": {
        "insuranceNumber": "XXXYYYZZ",
        "employerName": "Acme, Inc.",
        "group": "An Insurance Group",
        "plan": "JJ8327",
        "medicareCode": "AABBCC",
        "firstName": "First",
        "lastName": "Last",
        "middleName": "Middle",
        "phoneNumber": "2125550123",
        "sex": "M",
        "dateOfBirth": "1958-04-13T00:00:00.000Z"
      },
      "referringProvider": {
        "firstName": "First",
        "middleName": "Middle",
        "lastName": "Last",
        "npi": "0123456789"
      },
      "pickup": {
        "country": "USA",
        "addressOne": "100 Oliver St",
        "addressTwo": null,
        "city": "North Tonawanda",
        "state": "NY",
        "zip": "14120",
      },
      "dropoff": {
        "country": "USA",
        "addressOne": "1540 Maple Rd",
        "addressTwo": "Apt C",
        "city": "Buffalo",
        "state": "NY",
        "zip": "14221",
      },
      "mileage": 21.8,
      "custom": {
        "extra": "dgfashj"
      }
  }'

The above command returns JSON structured like this:

{
  "status": "success",
  "statusCode": 200,
  "message": "Successfully Updated Professional Claim",
  "payload": {
    "updatedProfessionalClaim": {
      "submissionNote": {
        "referenceCode": "ADD"
      },
      "financialSummary": {
        "totalCharge": 447.59,
        "totalCalculatedCharge": 461.85,
        "totalServicesExpectedPaid": 0,
        "totalClaimPayment": 40.69,
        "totalBalance": 406.9
      },
      "lastUpdatedBy": {
        "userID": "user1t3hre87kylrqlz5",
        "name": "Kinetik Support",
        "timestamp": "1658850311937"
      },
      "isAssignmentAccepted": true,
      "isAutoAccidentRelated": false,
      "isEmploymentRelated": false,
      "isOtherAccidentRelated": false,
      "isCrossover": false,
      "ambulanceConditionCodes": {
        "12": false,
        "01": false,
        "04": false,
        "05": false,
        "06": false,
        "07": false,
        "08": false,
        "09": false
      },
      "patientRelationToSubscriber": "18",
      "patientRelationToOtherSubscriber": "18",
      "alerts": [],
      "status": "c06",
      "isArchived": false,
      "onHold": false,
      "isInvalid": false,
      "resubmissionCount": 0,
      "frequencyCode": "1",
      "creationType": "ct05",
      "creationGroupID": [
        "mas2vfor9kppnnkdx"
      ],
      "submissionIDs": [
        "662071593",
      ],
      "type": "f301",
      "assignees": [],
      "related": [
        "FLE5S2L9KTLONY79.csv",
      ],
      "serviceType": "st10",
      "attachments": [],
      "providerID": "prov19g6ekon9jg58",
      "importServiceOrigin": "mas",
      "diagnosisCode1": "R69",
      "remoteClaimID": "1086050230",
      "priorAuthorization": "",
      "vehiclePlateNumber": "null",
      "driverLicenseNumber": "dsadsa543543",
      "countyNumber": "66",
      "patientAmountPaid": 0,
      "mileage": 12,
      "patient": {
        "isActive": true,
        "sex": "M",
        "firstName": "Mario",
        "lastName": "Boose",
        "insuranceNumber": "ADHJK895H",
        "dateOfBirth": "1972-01-05T00:00:00.000Z",
        "phoneNumber": "5858673749",
        "location": {
          "longLat": {
              "type": "Point",
              "coordinates": []
          },
          "country": "USA",
          "addressOne": "332 Ave a",
          "addressTwo": "",
          "city": "Rochester",
          "state": "NY",
          "zip": "14621",
          "formattedAddress": "332 Ave a, Rochester, NY, 14621, USA"
        },
        "providerID": "prov19g6ekon9jg58",
        "patientID": "pat3qh4b8kpohpm9q",
        "height": 0,
        "weight": 0
      },
      "pickup": {
        "longLat": {
          "type": "Point",
          "coordinates": []
        },
        "country": "USA",
        "addressOne": "332 Ave a",
        "addressTwo": "",
        "city": "Rochester",
        "state": "NY",
        "zip": "14621",
        "formattedAddress": "332 Ave a, Rochester, NY, 14621, USA"
      },
      "dropoff": {
        "longLat": {
          "type": "Point",
          "coordinates": []
        },
        "country": "USA",
        "addressOne": "4901 Lac de Ville Blvd",
        "addressTwo": "",
        "city": "Rochester",
        "state": "NY",
        "zip": "14618",
        "formattedAddress": "4901 Lac de Ville Blvd, Rochester, NY, 14618, USA"
      },
      "account": {
        "order": "PRIMARY",
        "name": "Fidelis",
        "isPayer": true,
        "payerID": "11315",
        "accountID": "acct19g6ekon9p0wk",
        "accountType": "acct102"
      },
      "renderingProvider": {
        "firstName": "",
        "lastName": "",
        "npi": ""
      },
      "referringProvider": {
        "firstName": "Alhasan",
        "lastName": "Schlagman Megan Mahala",
        "npi": "1548503873"
      },
      "services": [
        {
          "placeOfService": "99",
          "units": 2,
          "expectedPaidAmount": 0,
          "serviceID": "srv2vfor9kppnnn2w",
          "payments": [
            {
              "amount": 5.84,
              "paymentID": "paybghp4ogktlq2kv6",
              "method": "ACH",
              "eraID": "1417223058-018309288",
              "paymentDate": "2021-09-14T00:00:00.000Z"
            }
          ],
          "adjustmentReasons": [
            {
              "isActive": false,
              "adjustmentGroup": "CO",
              "claimAdjustmentGroupDescription": "contractualObligations",
              "adjustmentReason": "45",
              "adjustmentAmount": 1.17,
              "createdAt": "2021-09-15T16:34:33.567Z",
              "updatedAt": "2021-09-16T19:32:11.682Z"
            }
          ],
          "expectedPayments": [],
          "chargeAmount": 5.84,
          "calculatedChargeAmount": 20.1,
          "procedureCode": "A0100",
          "modifierOne": null,
          "startDate": "2021-06-02T00:00:00.000Z",
          "endDate": "2021-06-02T00:00:00.000Z",
          "diagnosisReference": "A",
          "paidAmount": 5.84
        }
      ],
      "appliedRules": [],
      "subscriber": {
        "isActive": true,
        "firstName": "Mario",
        "lastName": "Boose",
        "insuranceNumber": "AD71835C",
        "dateOfBirth": "1972-01-05T00:00:00.000Z",
        "sex": "M",
        "phoneNumber": "5858673749",
        "location": {
          "longLat": {
            "type": "Point",
            "coordinates": []
          },
          "country": "USA",
          "addressOne": "332 Ave a",
          "addressTwo": "",
          "city": "Rochester",
          "state": "NY",
          "zip": "14621",
          "formattedAddress": "332 Ave a, Rochester, NY, 14621, USA"
        },
        "height": 0,
        "weight": 0
      },
      "startDate": "2021-06-02T00:00:00.000Z",
      "endDate": "2021-06-02T00:00:00.000Z",
      "claimID": "pclm2vfor9kppnnn2y",
      "internalNotes": [],
      "otherPayments": [],
      "createdAt": "2021-06-09T15:57:09.126Z",
      "updatedAt": "2022-07-26T15:45:12.239Z",
      "lastSubmissionDate": "2021-09-15T16:36:02.752Z",
      "originalClaimReference": "TST332583486",
    }
  }
}

This endpoint expects a JSON object as the request body to update a Professional Claim, and returns a confirmation of update operation. Please refer to the "Expected Professional Claim Update Request Body" below as those are the allowed fields for Professional Claim update.

HTTP Request

PUT /billing/claims/professional/update/:claimID

Expected Professional Claim Update Request Body

Below is the allowed Professional Claim update fields expected by this endpoint.

Please view the "Professional Claim Object" subheading under the GET Professional Claims route section for a detailed description of these properties.

Property Type
serviceType String
startDate String (ISO 8601 UTC Date)
endDate String (ISO 8601 UTC Date)
priorAuthorization String
diagnosisCode1 String
diagnosisCodeX (2-12) String
driverLicenseNumber String
vehiclePlateNumber String
countyNumber String
account Object
account.order String
account.name String
account.isPayer Boolean
account.payerID String
account.accountID String
patient Object
patient.insuranceNumber String
patient.employerName String
patient.group String
patient.plan String
patient.medicareCode String
patient.firstName String
patient.lastName String
patient.middleName String
patient.phoneNumber String
patient.sex String
patient.dateOfBirth String (ISO 8601 UTC Date)
subscriber Object
subscriber.insuranceNumber String
subscriber.employerName String
subscriber.group String
subscriber.plan String
subscriber.medicareCode String
subscriber.firstName String
subscriber.lastName String
subscriber.middleName String
subscriber.middleName String
subscriber.phoneNumber String
subscriber.sex String
subscriber.dateOfBirth String (ISO 8601 UTC Date)
referringProvider.firstName String
referringProvider.lastName String
referringProvider.middleName String
referringProvider.npi String
pickup Object
pickup.country String
pickup.addressOne String
pickup.addressTwo String
pickup.city String
pickup.state String
pickup.zip String
dropoff Object
dropoff.country String
dropoff.addressOne String
dropoff.addressTwo String
dropoff.city String
dropoff.state String
dropoff.zip String
mileage Number
isAssignmentAccepted Boolean
isAutoAccidentRelated Boolean
isEmploymentRelated Boolean
isOtherAccidentRelated Boolean
isCrossover Boolean
orderingProviderFirstName String
orderingProviderLastName String
orderingProviderMiddleName String
orderingProviderNPI String
medicalRecordNumber String
delayReasonCode String
ambulanceConditionCodes Object
ambulanceTransportReasonCode String
cliaNumber String
autoAccidentState String
facility Object
cliaNumber String
hospitalStartDate String (ISO 8601 UTC Date)
hospitalEndDate String (ISO 8601 UTC Date)
patientRelationToSubscriber String
patientRelationToOtherSubscriber String
otherSubscriber Object
otherAccount Object
renderingProvider Object
submissionNote Object
submissionNote.referenceCode String
submissionNote.text String
internalNotes Array [Object]
internalNotes[index].text String
internalNotes[index].reminderDate String
internalNotes[index].createdBy String
internalNotes[index].isResolved Boolean
alerts Array [String]
originalClaimReference String
frequencyCode String
status String
custom Object

Non-Insurance Claims

GET Non-Insurance Claims


curl -L -X GET 'https://api.sandbox.kinetik.care/billing/claims/noninsurance?apiKey=API_KEY&secretKey=SECREY_KEY'

The above command returns JSON structured like this:

{
  "status": "success",
  "message": "Successfully fetched noninsurance claims.",
  "payload": {
    "claims": [
      {
        "claimID": "nclm12345",
        "providerID": "provsktwi34fkkx7fe48",
        "remoteClaimID": "101010101",
        "type": "f302",
        "status": "c02",
        "serviceType": "st01",
        "startDate": "2021-05-20T00:00:00.000Z",
        "endDate": "2021-05-20T00:00:00.000Z",
        "account": {
            "order": "PRIMARY",
            "name": "Some Payer",
            "isPayer": true,
            "payerID": "12345",
            "accountID": "acctsktwi34fkkx7gocq",
            "location": {
              "addressOne": "110 Wall Street",
              "addressTwo": null,
              "city": "New York",
              "state": "NY",
              "zip": "10005",
            },
            "contact": {
              "name": "John Doe",
              "email": "john@somepayer.com",
              "phone": "1234567890"
            }
        },
        "services": [
          {
            "chargeAmount": 57.49,
            "units": 52.27,
            "startDate": "2021-05-20T17:17:55.913Z",
            "endDate": "2021-05-20T18:23:50.000Z",
            "name": "10% Service Fee Inclusive",
            "calculatedChargeAmount": 57.49,
            "serviceID": "srvbz86qskox334vn",
            "payments": [
              {
                "amount": 0.00,
                "method": "ACH",
                "eobID": "example",
                "paymentDate": "2021-05-21T00:00:00.000Z",
                "paymentID": "example"
              }
            ],
            "paidAmount": 0
          }
        ],
        "financialSummary": {
          "totalCharge": 57.49,
          "totalClaimPayment": 0,
          "totalCalculatedCharge": 57.49
        },
        "pickup": {
          "longLat": {
            "type": "Point",
            "coordinates": [-78.8742242, 43.0256758]
          },
          "country": "USA",
          "addressOne": "100 Oliver St",
          "addressTwo": null,
          "city": "North Tonawanda",
          "state": "NY",
          "zip": "14120",
          "formattedAddress": "100 Oliver St, North Tonawanda, NY, 14120"
        },
        "dropoff": {
          "longLat": {
            "type": "Point",
            "coordinates": [-78.7301425, 42.9940125]
          },
          "country": "USA",
          "addressOne": "1540 Maple Rd",
          "addressTwo": "Apt C",
          "city": "Buffalo",
          "state": "NY",
          "zip": "14221",
          "formattedAddress": "1540 Maple Rd, Buffalo, NY, 14221"
        },
        "mileage": 8.66,
        "validationErrors": "{"fieldName": "message"}",
        "isArchived": false,
        "isInvalid": false,
        "onHold": false,
        "creationGroupID": ["api12345"],
        "internalNotes": [
          {
          "text": "Here's a note!",
          "reminderDate": "2021-05-20T22:30:00.000Z",
          "createdBy": "user123xyz",
          "isResolved": false
          }
        ],
        "submissionNote": {
          "referenceCode": "ADD",
          "text": "Here's a submission note!"
        },
        "events": [
          {
            "message": "Claim created via API endpoint.",
            "createdAt": "2021-05-20T19:22:48.205Z",
            "type": "creation",
            "entity": "Some User"
          }
        ],
        "lastUpdatedBy": {
          "userID": "user123xyz",
          "name": "Some User",
          "timestamp": "1621538568011"
        },
        "createdAt": "2021-05-20T19:22:48.034Z",
        "updatedAt": "2021-05-20T19:22:48.034Z",
      }
    ],
    "count": 10
  }
}

This endpoint returns an array of non-insurance claims based on your query, as well as the total number of claims matching your query. By default, these claims are sorted in descending order by the date they were created.

This endpoint employs pagination. You can use the limit parameter to control how many claims you would like to receive in a single request. The page parameter dictates which set of claims you would like to receive. For example, if limit equals 5 and page equals 2, the returned array would contain the second set of five claims that match the query parameters.

HTTP Request

GET /billing/claims/noninsurance

URL Query Parameters

Parameter Required Default Description
limit No 10 The max number of claims per page to return.
page No 1 The page number of claims you wish to view, works in tandem with limit.
claimID No The Kinetik generated claimID for the claim you wish to retrieve.
remoteClaimID No The remote ID for the claim you wish to retrieve. If a remoteClaimID was provided during the claim's creation, you can use that ID here.
creationGroupID No The ID for the "batch" in which the claim(s) were created. E.g. if you created claims via a file upload, you would use the fileID you were returned on file upload as the creationGroupID here.

Non-Insurance Claim Object

Property Type Description
claimID string A unique ID for the claim, generated by Kinetik.
providerID string The providerID for the provider that owns this claim.
remoteClaimID string The ID provided by the claim's creating user/entity.
type string Kinetik's type code for this claim. "f302" here represents a non-insurance claim type.
status string Kinetik's status code for the claim's current status.
serviceType string The type of trip service.
Eg: st01 for AMBULATORY.
Conversion is as follows:
AMBULATORY: 'st01',
BARIATRIC_WHEELCHAIR: st02',
BARIATRIC_STRETCHER: 'st03',
BARIATRIC_STRETCHER_LG: 'st04',
BRODA_CHAIR: 'st05',
COVID: 'st06',
STRETCHER: 'st07',
STRETCHER_LG: 'st08',
WHEELCHAIR: 'st09',
TAXI: 'st10'
startDate string The ISO 8601 date string for the claim's start date. Is in UTC time.
endDate string The ISO 8601 date string for the claim's end date. Is in UTC time.
account object The claim's payer account details object.
account.order string The paying order of the listed payer. Defaults to PRIMARY
account.name string The full name of the payer account for this claim.
account.isPayer boolean A boolean indicating whether this account is a professional claims payer.
account.payerID string The payer account's official payer ID.
account.accountID string Kinetik's internal ID for this account.
account.location object An object containing information about the payer account's address.
account.location.addressOne string The "Address One" line of the payer account's location.
account.location.addressTwo string The "Address Two" line of the payer account's location.
account.location.city string The city of the payer account's location.
account.location.state string The state of the payer account's location.
account.location.zip string The zip code of the payer account's location.
account.contact object An object containing information about how to contact the payer account.
account.contact.name string The primary contact name for this payer account.
account.contact.email string The primary contact email for this payer account.
account.contact.phone string The primary contact phone number for this payer account.
services array [object] The services for this claim. Is an array of service objects.
services[index].serviceID string The unique ID for this service.
services[index].paidAmount number The amount paid for this service.
services[index].units number The number of units for this service.
services[index].name string The name of the service, typically derived from a fee schedule.
services[index].chargeAmount number The amount charged for this service.
services[index].startDate string The ISO 8601 date string representing the start date for this service. Is in UTC time.
services[index].endDate string The ISO 8601 date string representing the end date for this service. Is in UTC time.
services[index].calculatedChargeAmount number The amount the service is calculated to be.
services[index].payments array [object] Details about each payment made towards this service.
financialSummary object An object containing financial details for this claim.
financialSummary.totalCharge number The total charge amount for this claim.
financialSummary.totalPaid number The total paid amount for this claim.
financialSummary.totalCalculatedCharge number The total calculated charge the claim is to be
financialSummary.totalExpectedPaid number The total expected amount to be paid for this claim.
pickup object The claim's pickup location details object.
pickup.longLat object An object that details geo-spacial data about the pickup location.
pickup.longLat.type string The type of data that will be provided bt the longLat object, will always be "Point" to denote coordinates.
pickup.longLat.coordinates array [float] An array of floats representing the coordinates of the pickup location. Index 0 is longitude, Index 1 is latitude.
pickup.country string The country of the pickup location.
pickup.addressOne string The "Address One" line of the pickup location.
pickup.addressTwo string The "Address Two" line of the pickup location.
pickup.city string The city of the pickup location.
pickup.state string The state of the pickup location.
pickup.zip string The zip code of the pickup location.
pickup.formattedAddress string The pickup location formatted as a single string.
dropoff object The claim's dropoff location details object.
dropoff.longLat object An object that details geo-spacial data about the dropoff location.
dropoff.longLat.type string The type of data that will be provided bt the longLat object, will always be "Point" to denote coordinates.
dropoff.longLat.coordinates array [float] An array of floats representing the coordinates of the dropoff location. Index 0 is longitude, Index 1 is latitude.
dropoff.country string The country of the dropoff location.
dropoff.addressOne string The "Address One" line of the dropoff location.
dropoff.addressTwo string The "Address Two" line of the dropoff location.
dropoff.city string The city of the dropoff location.
dropoff.state string The state of the dropoff location.
dropoff.zip string The zip code of the dropoff location.
dropoff.formattedAddress string The dropoff location formatted as a single string.
mileage number The mileage of the claim, i.e. the mileage between pickup and dropoff locations.
events array [object] All events that have occurred for the claim. This is an array of event objects.
event[index].message string A message summarizing the event.
event[index].type string The type of event this is, e.g. "creation", "update", "payment", "denial", "other".
event[index].updatedFields object If the claim was updated, this object will contain the updated field names as the keys, and the corresponding updated value as the values.
event[index].createdAt string The ISO 8601 date string representing the time the event was created. Is in UTC time.
validationErrors string A JSON string summarizing payer-specific validation errors by field name (if any).
submissionNote object An object containing details about this claim's submission note.
submissionNote.referenceCode string The reference code denoting the type of submission note is attached to the claim.
Eg: ADD for ADDITIONAL_INFO.
Conversion is as follows:
ADDITIONAL_INFO: 'ADD',
CERTIFICATION_NARRATIVE: 'CER',
GOALS_REHAB_OR_DISCHARGE: 'DCP',
DIAGNOSIS_DESCRIPTION: 'DGN',
THIRD_PARTY_NOTES: 'TPO'
submissionNote.text string The submission note text for this claim.
isArchived boolean Whether the claim is archived or not.
onHold boolean Whether the claim is being held or not.
creationGroupID array [string] An array that represents all the creation "batches" this claim is present in, e.g. and import ID, a file ID, etc.
isInvalid boolean Whether or not the claim is valid for submission to the payer referenced in the claim's payer object. View the validationErrors field to view why the error is invalid (if applicable).
internalNotes array [object] All internal notes regarding this claim, is an array of internalNote objects.
internalNotes[index].text string The text of the internal note.
internalNotes[index].reminderDate string The ISO 8601 date string representing the reminder date for this internal notes. Is in UTC time.
internalNotes[index].createdBy string The internal note's creating user's userID.
internalNotes[index].isResolved boolean Whether this internal note has been resolved.
createdAt string The ISO 8601 date string representing the date when this claim was created in the Kintetik system. Is in UTC time.
updatedAt string The ISO 8601 date string representing the date when this claim was last updated in the Kintetik system. Is in UTC time.

GET Non-Insurance Claims By LegID


curl -L -X GET 'https://api.sandbox.kinetik.care/billing/claims/noninsurance/trips?taLegIds=231-456,775-456&apiKey=API_KEY&secretKey=SECREY_KEY'

The above command returns JSON structured like this:

{
  "status": "success",
  "message": "Successfully fetched noninsurance claims.",
  "payload": {
    "claims": [
      {
        "claimID": "nclm12345",
        "providerID": "provsktwi34fkkx7fe48",
        "remoteClaimID": "101010101",
        "type": "f302",
        "status": "c02",
        "serviceType": "st01",
        "startDate": "2021-05-20T00:00:00.000Z",
        "endDate": "2021-05-20T00:00:00.000Z",
        "account": {
            "order": "PRIMARY",
            "name": "Some Payer",
            "isPayer": true,
            "payerID": "12345",
            "accountID": "acctsktwi34fkkx7gocq",
            "location": {
              "addressOne": "110 Wall Street",
              "addressTwo": null,
              "city": "New York",
              "state": "NY",
              "zip": "10005",
            },
            "contact": {
              "name": "John Doe",
              "email": "john@somepayer.com",
              "phone": "1234567890"
            }
        },
        "services": [
          {
            "chargeAmount": 57.49,
            "units": 52.27,
            "startDate": "2021-05-20T17:17:55.913Z",
            "endDate": "2021-05-20T18:23:50.000Z",
            "name": "10% Service Fee Inclusive",
            "calculatedChargeAmount": 57.49,
            "serviceID": "srvbz86qskox334vn",
            "payments": [
              {
                "amount": 0.00,
                "method": "ACH",
                "eobID": "example",
                "paymentDate": "2021-05-21T00:00:00.000Z",
                "paymentID": "example"
              }
            ],
            "paidAmount": 0
          }
        ],
        "financialSummary": {
          "totalCharge": 57.49,
          "totalClaimPayment": 0,
          "totalCalculatedCharge": 57.49
        },
        "pickup": {
          "longLat": {
            "type": "Point",
            "coordinates": [-78.8742242, 43.0256758]
          },
          "country": "USA",
          "addressOne": "100 Oliver St",
          "addressTwo": null,
          "city": "North Tonawanda",
          "state": "NY",
          "zip": "14120",
          "formattedAddress": "100 Oliver St, North Tonawanda, NY, 14120"
        },
        "dropoff": {
          "longLat": {
            "type": "Point",
            "coordinates": [-78.7301425, 42.9940125]
          },
          "country": "USA",
          "addressOne": "1540 Maple Rd",
          "addressTwo": "Apt C",
          "city": "Buffalo",
          "state": "NY",
          "zip": "14221",
          "formattedAddress": "1540 Maple Rd, Buffalo, NY, 14221"
        },
        "mileage": 8.66,
        "validationErrors": "{"fieldName": "message"}",
        "isArchived": false,
        "isInvalid": false,
        "onHold": false,
        "creationGroupID": ["api12345"],
        "internalNotes": [
          {
          "text": "Here's a note!",
          "reminderDate": "2021-05-20T22:30:00.000Z",
          "createdBy": "user123xyz",
          "isResolved": false
          }
        ],
        "submissionNote": {
          "referenceCode": "ADD",
          "text": "Here's a submission note!"
        },
        "lastUpdatedBy": {
          "userID": "user123xyz",
          "name": "Some User",
          "timestamp": "1621538568011"
        },
        "taLegIds": ["231-456", "775-456"],
        "createdAt": "2021-05-20T19:22:48.034Z",
        "updatedAt": "2021-05-20T19:22:48.034Z",
      }
    ],
  }
}

This endpoint returns an array of non-insurance claims based on your query. In the query you need to add Leg IDs as a comma separated list.

HTTP Request

GET /billing/claims/noninsurance/trips

URL Query Parameters

Parameter Required Default Description
taLegIds No The Kinetik generated LegID of the trip to retrieve the claim.
tsTripIds No The Kinetik generated TripId of the Trip to retrieve the claim here.

Non-Insurance Claim Object

Property Type Description
claimID string A unique ID for the claim, generated by Kinetik.
providerID string The providerID for the provider that owns this claim.
remoteClaimID string The ID provided by the claim's creating user/entity.
type string Kinetik's type code for this claim. "f302" here represents a non-insurance claim type.
status string Kinetik's status code for the claim's current status.
serviceType string The type of trip service.
Eg: st01 for AMBULATORY.
Conversion is as follows:
AMBULATORY: 'st01',
BARIATRIC_WHEELCHAIR: st02',
BARIATRIC_STRETCHER: 'st03',
BARIATRIC_STRETCHER_LG: 'st04',
BRODA_CHAIR: 'st05',
COVID: 'st06',
STRETCHER: 'st07',
STRETCHER_LG: 'st08',
WHEELCHAIR: 'st09',
TAXI: 'st10'
startDate string The ISO 8601 date string for the claim's start date. Is in UTC time.
endDate string The ISO 8601 date string for the claim's end date. Is in UTC time.
account object The claim's payer account details object.
account.order string The paying order of the listed payer. Defaults to PRIMARY
account.name string The full name of the payer account for this claim.
account.isPayer boolean A boolean indicating whether this account is a professional claims payer.
account.payerID string The payer account's official payer ID.
account.accountID string Kinetik's internal ID for this account.
account.location object An object containing information about the payer account's address.
account.location.addressOne string The "Address One" line of the payer account's location.
account.location.addressTwo string The "Address Two" line of the payer account's location.
account.location.city string The city of the payer account's location.
account.location.state string The state of the payer account's location.
account.location.zip string The zip code of the payer account's location.
account.contact object An object containing information about how to contact the payer account.
account.contact.name string The primary contact name for this payer account.
account.contact.email string The primary contact email for this payer account.
account.contact.phone string The primary contact phone number for this payer account.
services array [object] The services for this claim. Is an array of service objects.
services[index].serviceID string The unique ID for this service.
services[index].paidAmount number The amount paid for this service.
services[index].units number The number of units for this service.
services[index].name string The name of the service, typically derived from a fee schedule.
services[index].chargeAmount number The amount charged for this service.
services[index].startDate string The ISO 8601 date string representing the start date for this service. Is in UTC time.
services[index].endDate string The ISO 8601 date string representing the end date for this service. Is in UTC time.
services[index].calculatedChargeAmount number The amount the service is calculated to be.
services[index].payments array [object] Details about each payment made towards this service.
financialSummary object An object containing financial details for this claim.
financialSummary.totalCharge number The total charge amount for this claim.
financialSummary.totalPaid number The total paid amount for this claim.
financialSummary.totalCalculatedCharge number The total calculated charge the claim is to be
financialSummary.totalExpectedPaid number The total expected amount to be paid for this claim.
pickup object The claim's pickup location details object.
pickup.longLat object An object that details geo-spacial data about the pickup location.
pickup.longLat.type string The type of data that will be provided bt the longLat object, will always be "Point" to denote coordinates.
pickup.longLat.coordinates array [float] An array of floats representing the coordinates of the pickup location. Index 0 is longitude, Index 1 is latitude.
pickup.country string The country of the pickup location.
pickup.addressOne string The "Address One" line of the pickup location.
pickup.addressTwo string The "Address Two" line of the pickup location.
pickup.city string The city of the pickup location.
pickup.state string The state of the pickup location.
pickup.zip string The zip code of the pickup location.
pickup.formattedAddress string The pickup location formatted as a single string.
dropoff object The claim's dropoff location details object.
dropoff.longLat object An object that details geo-spacial data about the dropoff location.
dropoff.longLat.type string The type of data that will be provided bt the longLat object, will always be "Point" to denote coordinates.
dropoff.longLat.coordinates array [float] An array of floats representing the coordinates of the dropoff location. Index 0 is longitude, Index 1 is latitude.
dropoff.country string The country of the dropoff location.
dropoff.addressOne string The "Address One" line of the dropoff location.
dropoff.addressTwo string The "Address Two" line of the dropoff location.
dropoff.city string The city of the dropoff location.
dropoff.state string The state of the dropoff location.
dropoff.zip string The zip code of the dropoff location.
dropoff.formattedAddress string The dropoff location formatted as a single string.
mileage number The mileage of the claim, i.e. the mileage between pickup and dropoff locations.
validationErrors string A JSON string summarizing payer-specific validation errors by field name (if any).
submissionNote object An object containing details about this claim's submission note.
submissionNote.referenceCode string The reference code denoting the type of submission note is attached to the claim.
Eg: ADD for ADDITIONAL_INFO.
Conversion is as follows:
ADDITIONAL_INFO: 'ADD',
CERTIFICATION_NARRATIVE: 'CER',
GOALS_REHAB_OR_DISCHARGE: 'DCP',
DIAGNOSIS_DESCRIPTION: 'DGN',
THIRD_PARTY_NOTES: 'TPO'
submissionNote.text string The submission note text for this claim.
isArchived boolean Whether the claim is archived or not.
onHold boolean Whether the claim is being held or not.
creationGroupID array [string] An array that represents all the creation "batches" this claim is present in, e.g. and import ID, a file ID, etc.
isInvalid boolean Whether or not the claim is valid for submission to the payer referenced in the claim's payer object. View the validationErrors field to view why the error is invalid (if applicable).
internalNotes array [object] All internal notes regarding this claim, is an array of internalNote objects.
internalNotes[index].text string The text of the internal note.
internalNotes[index].reminderDate string The ISO 8601 date string representing the reminder date for this internal notes. Is in UTC time.
internalNotes[index].createdBy string The internal note's creating user's userID.
internalNotes[index].isResolved boolean Whether this internal note has been resolved.
taLegIds array[string] An array that stores all related Leg IDs.
tsTripIds array[string] An array that stores all related Trip IDs.
createdAt string The ISO 8601 date string representing the date when this claim was created in the Kintetik system. Is in UTC time.
updatedAt string The ISO 8601 date string representing the date when this claim was last updated in the Kintetik system. Is in UTC time.

GET Non-Insurance Claim History


curl -L -X GET 'https://api.sandbox.kinetik.care/billing/claims/noninsurance/claim/history/nclmqhhhg6DOY5fjx4KC?apiKey=API_KEY&secretKey=SECRET_KEY'

The above command returns JSON structured like this:

{
    "status": "success",
    "statusCode": 200,
    "message": "Successfully fetched claim history",
    "payload": {
        "claimID": "nclmqhhhg6DOY5fjx4KC",
        "claimHistory": [
            {
                "details": "",
                "message": "Changes have been made to the following field(s): Financial Summary",
                "updatedFields": {
                    "financialSummary": {
                        "totalCharge": 7056,
                        "totalCalculatedCharge": 7056,
                        "totalClaimPayment": 0,
                        "totalBalance": 7056
                    }
                },
                "createdAt": "2024-01-15T09:10:31.237Z",
                "entity": "Kinetik",
                "type": "update",
                "eventID": "evt1otyz1nghlrernxrc"
            },
            {
                "details": "",
                "message": "Changes have been made to the following field(s): Services",
                "updatedFields": {
                    "services.0.calculatedChargeAmount": 5496,
                    "services.1.calculatedChargeAmount": 1560
                },
                "createdAt": "2024-01-15T09:10:31.084Z",
                "entity": "Kinetik",
                "type": "update",
                "eventID": "evt1otyz1nghlrernxrb"
            }
        ]
    }
}

This endpoint expects a professional claim claimID as a URL path parameter and returns events as claimHistory for that claim.

HTTP Request

GET /billing/claims/noninsurance/claim/history/{claimID}

URL Path Parameters

Parameter Required Default Description
claimID Yes The ID of the claim you wish to receive events.

History Payload Object

Property Type Description
status string Kinetik's status code for the claim's current status.
claimID string The claim's claimID, a unique ID Kinetik assigns.
claimHistory array [object] All events that have occurred for the claim. This is an array of event objects.
claimHistory[index].message string A message summarizing the event.
claimHistory[index].type string The type of event this is, e.g. "creation", "update", "payment", "denial", "other".
claimHistory[index].updatedFields object If the claim was updated, this object will contain the updated field names as the keys, and the corresponding updated value as the values.
claimHistory[index].createdAt string The ISO 8601 date string representing the time the event was created. Is in UTC time.
claimHistory[index].eventID string The ID of the event

POST Non-Insurance Claims

curl -L -X POST 'https://api.sandbox.kinetik.care/billing/claims/noninsurance?apiKey=API_KEY&secretKey=SECREY_KEY' \
--header 'Content-Type: application/json' \
--data-raw '[
      {
        "remoteClaimID": "101010101",
        "serviceType": "st01",
        "startDate": "2021-05-20T00:00:00.000Z",
        "endDate": "2021-05-20T00:00:00.000Z",
        "patient": {
          "firstName": "First",
          "lastName": "Last",
          "middleName": "Middle",
          "phoneNumber": "2125550123",
        },
        "account": {
            "order": "PRIMARY",
            "name": "Some Payer",
            "isPayer": true,
            "payerID": "12345",
            "accountID": "acctsktwi34fkkx7gocq",
        },
        "services": [
          {
            "chargeAmount": 57.49,
            "units": 52.27,
            "startDate": "2021-05-20T17:17:55.913Z",
            "endDate": "2021-05-20T18:23:50.000Z",
            "name": "General Ride Fare",
          }
        ],
        "pickup": {
          "addressOne": "100 Oliver St",
          "city": "North Tonawanda",
          "state": "NY",
          "zip": "14120",
        },
        "dropoff": {
          "addressOne": "1540 Maple Rd",
          "addressTwo": "Apt C",
          "city": "Buffalo",
          "state": "NY",
          "zip": "14221",
        },
        "mileage": 8.66
      }
  ]'

The above command returns JSON structured like this:

{
  "status": "success",
  "message": "Successfully created 1 new claim(s)",
  "payload": {
    "creationGroupID": "apixxyyzz",
    "count": 1
  }
}

This endpoint expects an array of Non-Insurance Claim JSON objects as the request body, and returns a confirmation of creation with a creationGroupID and the number of claims created from the request. You may query the GET Non-Insurance Claims route using the returned creationGroupID to see the claims created from the request. Please refer to the "Expected Non-Insurance Claim Request Body" below as this is the required format of each Non-Insurance Claim in the request body array.

HTTP Request

POST /billing/claims/noninsurance

Expected Non-Insurance Claim Request Body

Below is the minimum acceptable Non-Insurance Claim expected by this endpoint. Although not every field is required, we strongly recommend most/every applicable value be provided.

Please view the "Non-Insurance Claim Object" subheading under the GET Non-Insurance Claims route section for a detailed description of these properties.

Property Required Type
remoteClaimID No String
serviceType No String
startDate Yes String (ISO 8601 UTC Date)
endDate Yes String (ISO 8601 UTC Date)
account Yes Object
account.order No String
account.name Yes String
account.isPayer Yes Boolean
account.payerID Yes String
account.accountID Yes String
patient Yes Object
patient.firstName Yes String
patient.lastName Yes String
patient.middleName No String
patient.phoneNumber No String
services Yes Array
services[index].units Yes Number
services[index].chargeAmount Yes Number
services[index].name Yes String
services[index].startDate Yes String (ISO 8601 UTC Date)
services[index].endDate Yes String (ISO 8601 UTC Date)
pickup Yes Object
pickup.country No String
pickup.addressOne Yes String
pickup.addressTwo No String
pickup.city No String
pickup.state No String
pickup.zip No String
dropoff Yes Object
dropoff.country No String
dropoff.addressOne Yes String
dropoff.addressTwo No String
dropoff.city No String
dropoff.state No String
dropoff.zip No String
mileage No Number

POST Non-Insurance Claims from Trips


curl -L -X POST 'https://api.sandbox.kinetik.care/billing/claims/noninsurance/trips?apiKey=API_KEY&secretKey=SECRET_KEY' \
-H 'Content-Type: application/json' \
--data-raw '[
  {
      "remoteTripID": "tripxxyeembw",
      "remoteServiceType": "TAXI",
      "patientFirstName": "John",
      "patientLastName": "Smith",
      "patientPhoneNumber": "2125556789",
      "serviceType": "st10",
      "pickupDateTime": "07/23/2020 13:14",
      "pickupAddressOne": "1123 Main Street",
      "pickupAddressTwo": "Apt 4C",
      "pickupCity": "Queens",
      "pickupState": "NY",
      "pickupZip": "11375",
      "dropoffDateTime": "07/23/2020 13:57",
      "dropoffAddressOne": "100 Wall Street",
      "dropoffAddressTwo": "",
      "dropoffCity": "New York",
      "dropoffState": "NY",
      "dropoffZip": "10005",
      "mileage": 15.25,
      "countyNumber": "14",
      "hasToll": false,
      "accountID": "acctsktwi34fkkx7hkge",
      "tollCharge": 0,
      "waitTime": 10,
      "remoteChargeAmount": 100.00,
      "custom": {
          "custom_trip_key": "Custom Trip Value"
      }
  }
]'

The above command returns JSON structured like this:

{
  "status": "success",
  "statusCode": 200,
  "message": "Processing trips into claims initialized, however no webhook endpoint is available to invoke upon processing completion. You may directly query for these claims after some time using the creation group ID in the payload.",
  "payload": {
    "creationGroupID": "pcft1p7w10oyke3bvgye"
  }
}

This endpoint creates Non-Insurance claims from trip data. Instead of waiting for claims to be created to return, this endpoint immediately returns a creationGroupID. This can be used to later query the GET Non-Insurance Claims route for the claims created from this request.

For creating claims using trip data, Kinetik requires a remoteTripID field for each trip. This remoteTripID will become the claim's remoteClaimID that you can use to track these claims individually. We highly recommend remoteTripID be an ID from your own system.

Incoming trip data is treated as an upsert. This means that trips with unique remoteTripID values will be created, but trips with remoteTripID values that match an existing claim's remoteClaimID will be treated as an update instead of a create. Incoming trip data will be prioritized over existing claim data in the event of an update.

HTTP Request

POST /billing/claims/noninsurance/trips

Expected Trip Data Object format

The request body must be an array of objects following this specific format:

Property Required Type Description
remoteTripID Yes string An ID you must provide for the
trip, will be the created claim's remoteClaimID.
patientFirstName Yes string The Patient's first name.
patientLastName Yes string The Patient's last name.
accountID Yes string The Kinetik provided ID of the account this claim will be
submitted to.
Eg: acctsktwi34fkkx7hkge
serviceType Yes string The type of trip service.
Eg: st01 for AMBULATORY.
Conversion is as follows:
AMBULATORY: 'st01',
BARIATRIC_WHEELCHAIR: st02',
BARIATRIC_STRETCHER: 'st03',
BARIATRIC_STRETCHER_LG: 'st04',
BRODA_CHAIR: 'st05',
COVID: 'st06',
STRETCHER: 'st07',
STRETCHER_LG: 'st08',
WHEELCHAIR: 'st09',
TAXI: 'st10'
priorAuthorizationNumber No string The trip prior authorization
number.
isCanceled No boolean True if trip was canceled.
Defaults to false
pickupDateTime Yes string Pickup time and date string in the following format: 'MM/DD/YYYY HH:mm'
pickupAddressOne Yes string The "Address One" line of the pickup location.
pickupAddressTwo No string The "Address Two" line of the
pickup location.
pickupCity Yes string The city of the pickup location.
pickupState Yes string The US State of the pickup
location.
pickupZip Yes string The Zip Code of the pickup
location.
dropoffDateTime Yes string Dropoff time and date string in
the following format: 'MM/DD/YYYY HH:mm'
dropoffAddressOne Yes string The "Address One" line of the dropoff location.
dropoffAddressTwo No string The "Address Two" line of the dropoff location.
dropoffCity Yes string The city of the dropoff location.
dropoffState Yes string The US State of the dropoff
location.
dropoffZip Yes string The Zip Code of the dropoff location.
countyNumber No string The county code where the trip was completed. Eg: '14'

| mileage | No | float | Float of number of miles were
taken to complete trip.
Min amount is 0. | | hasToll | Yes | boolean | Indicates if a toll was involved in
the trip. | | tollCharge | No | number | The amount the of tolls paid. If blank, defaults to 0. | | waitTime | No | number | The amount of time in minute driver waits for patient pickup | | remoteChargeAmount | No | number | The amount charged for the trip, defaults to 0. | | custom | No | object | Custom fields and values for recording non standard information. |

PUT Update NonInsurance Claim By claimID

curl -L -X PUT 'https://api.sandbox.kinetik.care/billing/claims/noninsurance/update/nclm6501l0sl5lfrz3z?apiKey=API_KEY&secretKey=SECREY_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
    "serviceType": "st01",
    "startDate": "2021-05-20T00:00:00.000Z",
    "endDate": "2021-05-20T00:00:00.000Z",
    "patient": {
      "firstName": "First",
      "lastName": "Last",
      "middleName": "Middle",
      "phoneNumber": "2125550123",
    },
    "account": {
        "order": "PRIMARY",
        "name": "Some Payer",
        "isPayer": true,
        "payerID": "12345",
        "accountID": "acctsktwi34fkkx7gocq",
    },
    "pickup": {
      "addressOne": "100 Oliver St",
      "city": "North Tonawanda",
      "state": "NY",
      "zip": "14120",
    },
    "dropoff": {
      "addressOne": "1540 Maple Rd",
      "addressTwo": "Apt C",
      "city": "Buffalo",
      "state": "NY",
      "zip": "14221",
    },
    "mileage": 8.66,
    "pickupTime": "13:20",
    "dropoffTime": "13:55"
}'

The above command returns JSON structured like this:

{
  "status": "success",
  "statusCode": 200,
  "message": "Successfully Updated NonInsurance Claim",
  "payload": {
    "updatedNonInsuranceClaim": {
        "claimID": "nclm12345",
        "providerID": "provsktwi34fkkx7fe48",
        "remoteClaimID": "101010101",
        "type": "f302",
        "status": "c02",
        "serviceType": "st01",
        "startDate": "2021-05-20T00:00:00.000Z",
        "endDate": "2021-05-20T00:00:00.000Z",
        "account": {
            "order": "PRIMARY",
            "name": "Some Payer",
            "isPayer": true,
            "payerID": "12345",
            "accountID": "acctsktwi34fkkx7gocq",
            "location": {
              "addressOne": "110 Wall Street",
              "addressTwo": null,
              "city": "New York",
              "state": "NY",
              "zip": "10005",
            },
            "contact": {
              "name": "John Doe",
              "email": "john@somepayer.com",
              "phone": "1234567890"
            }
        },
        "services": [
          {
            "chargeAmount": 57.49,
            "units": 52.27,
            "startDate": "2021-05-20T17:17:55.913Z",
            "endDate": "2021-05-20T18:23:50.000Z",
            "name": "10% Service Fee Inclusive",
            "calculatedChargeAmount": 57.49,
            "serviceID": "srvbz86qskox334vn",
            "payments": [
              {
                "amount": 0.00,
                "method": "ACH",
                "eobID": "example",
                "paymentDate": "2021-05-21T00:00:00.000Z",
                "paymentID": "example"
              }
            ],
            "paidAmount": 0
          }
        ],
        "financialSummary": {
          "totalCharge": 57.49,
          "totalClaimPayment": 0,
          "totalCalculatedCharge": 57.49
        },
        "pickup": {
          "longLat": {
            "type": "Point",
            "coordinates": [-78.8742242, 43.0256758]
          },
          "country": "USA",
          "addressOne": "100 Oliver St",
          "addressTwo": null,
          "city": "North Tonawanda",
          "state": "NY",
          "zip": "14120",
          "formattedAddress": "100 Oliver St, North Tonawanda, NY, 14120"
        },
        "dropoff": {
          "longLat": {
            "type": "Point",
            "coordinates": [-78.7301425, 42.9940125]
          },
          "country": "USA",
          "addressOne": "1540 Maple Rd",
          "addressTwo": "Apt C",
          "city": "Buffalo",
          "state": "NY",
          "zip": "14221",
          "formattedAddress": "1540 Maple Rd, Buffalo, NY, 14221"
        },
        "mileage": 8.66,
        "pickupTime": "13:20",
        "dropoffTime": "13:55",
        "validationErrors": "{"fieldName": "message"}",
        "isArchived": false,
        "isInvalid": false,
        "onHold": false,
        "creationGroupID": ["api12345"],
        "internalNotes": [
          {
          "text": "Here's a note!",
          "reminderDate": "2021-05-20T22:30:00.000Z",
          "createdBy": "user123xyz",
          "isResolved": false
          }
        ],
        "submissionNote": {
          "referenceCode": "ADD",
          "text": "Here's a submission note!"
        },
        "events": [
          {
            "message": "Claim created via API endpoint.",
            "createdAt": "2021-05-20T19:22:48.205Z",
            "type": "creation",
            "entity": "Some User"
          }
        ],
        "lastUpdatedBy": {
          "userID": "user123xyz",
          "name": "Some User",
          "timestamp": "1621538568011"
        },
        "createdAt": "2021-05-20T19:22:48.034Z",
        "updatedAt": "2021-05-20T19:22:48.034Z",
      }
  }
}

This endpoint expects a JSON object as the request body to update a NonInsurance Claim, and returns a confirmation of update operation. Please refer to the "Expected NonInsurance Claim Update Request Body" below as those are the allowed fields for NonInsurance Claim update.

HTTP Request

PUT /billing/claims/NonInsurance/update/:claimID

Expected NonInsurance Claim Update Request Body

Below is the allowed NonInsurance Claim update fields expected by this endpoint.

Please view the "NonInsurance Claim Object" subheading under the GET NonInsurance Claims route section for a detailed description of these properties.

Property Type
serviceType String
startDate String (ISO 8601 UTC Date)
endDate String (ISO 8601 UTC Date)
priorAuthorization String
driverLicenseNumber String
vehiclePlateNumber String
account Object
account.order String
account.name String
account.isPayer Boolean
account.payerID String
account.accountID String
patient Object
patient.insuranceNumber String
patient.employerName String
patient.group String
patient.plan String
patient.medicareCode String
patient.firstName String
patient.lastName String
patient.middleName String
patient.phoneNumber String
patient.sex String
patient.dateOfBirth String (ISO 8601 UTC Date)
pickup Object
pickup.country String
pickup.addressOne String
pickup.addressTwo String
pickup.city String
pickup.state String
pickup.zip String
dropoff Object
dropoff.country String
dropoff.addressOne String
dropoff.addressTwo String
dropoff.city String
dropoff.state String
dropoff.zip String
mileage Number
submissionNote Object
submissionNote.referenceCode String
submissionNote.text String
internalNotes Array [Object]
internalNotes[index].text String
internalNotes[index].reminderDate String
internalNotes[index].createdBy String
internalNotes[index].isResolved Boolean
status String
custom Object
pickupTime String
dropoffTime String
willCallTime String

ERAs

GET ERAs

curl -L -X GET 'https://api.sandbox.kinetik.care/billing/eras?apiKey=API_KEY&secretKey=SECRET_KEY'

The above command returns JSON structured like this:

{
  "status": "success",
  "message": "Successfully got ERAs.",
  "payload": {
    "eras": [
      {
        "claimIDs": ["pclm1234"],
        "paidAmount": 0,
        "paidDate": "2020-08-27T00:00:00.000Z",
        "claimCount": 1,
        "providerID": "provg5sbe5g4kb2bkpzx",
        "eraID": "era1p7w1s2aked5273g",
        "createdAt": "2020-08-27T18:26:35.501Z",
        "updatedAt": "2020-08-27T18:26:35.501Z",
        "s3FileID": "fle646461458",
        "account": {
          "order": "PRIMARY",
          "name": "Some State Medicare",
          "isPayer": true,
          "payerID": "12345",
          "accountID": "acctexample",
          "location": {},
          "contact": {}
        }
      }
    ],
    "count": 10
  }
}

This endpoint returns an array of ERAs based on your query, as well as the total number of ERAs matching your query. By default, these ERAs are sorted in descending order by the date they were created.

This endpoint employs pagination. You can use the limit parameter to control how many ERAs you would like to receive in a single request. The page parameter dictates which set of ERAs you would like to receive. For example, if limit equals 5 and page equals 2, the returned array would contain the second set of five ERAs that match the query parameters.

HTTP Request

GET /billing/eras

URL Query Parameters

Parameter Required Default Description
limit No 10 The max number of ERAs per page to return.
page No 1 The page number of ERAs you wish to view, works in tandem with limit.
eraID No The ID for the ERA you wish to retrieve.
paidDate No The date of payment for ERAs you wish to retrieve. Must be in 'MM/DD/YYYY' format.

ERA Object

Property Type Description
claimIDs array [string] Each element in this array is a claimID for a claim contained in the ERA.
paidAmount number The total paid amount for the ERA.
paidDate string The ISO 8601 date string representing the payment date of this ERA. Is in UTC.
claimCount number The number of claims contained in the ERA.
providerID string The providerID for the Provider the ERA belongs to.
eraID string The unique, Kinetik generated ID for the ERA.
createdAt string The ISO 8601 date string representing when the ERA object was created in the Kinetik system. Is in UTC.
updatedAt string The ISO 8601 date string representing when the ERA object was last updated in the Kinetik system. Is in UTC.
s3FileID string The fileID associating the ERA object to the actual file stored by Kinetik.
account object Contains details about the payer account that published the ERA.

Accounts

GET Accounts

curl -L -X GET 'https://api.sandbox.kinetik.care/accounts?apiKey=API_KEY&secretKey=SECRET_KEY'

The above command returns JSON structured like this:

{
  "status": "success",
  "statusCode": 200,
  "message": "Successfully got specified accounts.",
  "payload": {
    "accounts": [
      {
        "order": "PRIMARY",
        "acceptedClaimTypes": {
          "f301": true,
          "f302": true,
          "f303": true
        },
        "name": "Some State Medicaid",
        "isPayer": true,
        "payerID": "12345",
        "providerID": "prov12345",
        "accountID": "acctexample",
        "location": {
          "addressOne": "110 Wall Street",
          "addressTwo": null,
          "city": "New York",
          "state": "NY",
          "zip": "10005"
        },
        "contact": {
          "name": "John Doe",
          "email": "john@somestate.com",
          "phone": "1234567890"
        }
      }
    ],
    "count": 1
  }
}

This endpoint returns an array of Accounts based on your query, as well as the total number of Accounts matching your query. By default, these Accounts are sorted in descending order by the date they were created.

HTTP Request

GET /accounts

URL Query Parameters

Parameter Required Default Description
accountID No The Kinetik generated Account ID for the specific account you wish to retrieve.
payerID No The official Payer ID for the specific account you wish to retrieve.
name No String to match an account or multiple accounts with by name, e.g. "Medicaid" will return all accounts with "Medicaid" in the name.

Account Object

Property Type Description
order string The Account's paying order, e.g. if it is a Primary payer to claims, a Secondary payer
acceptedClaimTypes object Details which types of claims the Account accepts.
name string The Account's name.
isPayer boolean Specifies if the Account is a traditional insurance claim payer.
payerID string The Account's official Payer ID (if it is a traditional payer account).
providerID string The ID of the provider the Account is associated to.
accountID string The unique, Kinetik generated ID for the Account.
location object Details regarding the Account's address.
contact object Primary contact details for the Account.

Submissions

GET Submissions

curl -L -X GET 'https://api.sandbox.kinetik.care/billing/submissions?apiKey=API_KEY&secretKey=SECRET_KEY'

The above command returns JSON structured like this:

{
  "status": "success",
  "statusCode": 200,
  "message": "Successfully fetched submissions",
  "payload": {
    "submissions": [
      {
        "claimIDs": [
          "nclm4b28fo8kro7x3c"
        ],
        "isOpen": true,
        "claimType": "f302",
        "submissionID": "956243711",
        "userID": "user19g6kosu3hr5",
        "account": {
          "order": "PRIMARY",
          "name": "Logisticare",
          "isPayer": true,
          "payerID": "13265",
          "accountID": "acct19g6ekon9ujwq",
          "contact": {
            "name": "Contact Person Name",
            "email": "example@kinetik.care"
          },
          "location": {}
        },
        "s3FileID": "LOGISTICARE-95624371.pdf",
        "providerID": "prov19g6ekn9jg58",
        "services": [
          {
            "chargeAmount": 10,
            "name": "Base Service",
            "claimID": "nclm4b28fo8kro7x3c",
            "id": "60ef00842140080008fdfe87"
          }
        ],
        "paymentIntentID": "pi_1JD9rzDKYV7XN5N1HfvZqnF5_secret_MHh6CeiMURVeQNpV3efeKY5on",
        "createdAt": "2021-07-14T15:19:32.289Z",
        "updatedAt": "2021-07-14T15:19:32.289Z",
        "isInvoice": true,
        "paidAmount": 0,
        "totalCharge": 10
      }
    ],
    "count": 1
  }
}

This endpoint returns an array of submissions based on your query, as well as the total number of submissions matching your query. By default, these submissions are sorted in descending order by the date they were created.

This endpoint employs pagination. You can use the limit parameter to control how many submissions you would like to receive in a single request. The page parameter dictates which set of submissions you would like to receive. For example, if limit equals 5 and page equals 2, the returned array would contain the second set of five submissions that match the query parameters.

HTTP Request

GET /billing/submissions

URL Query Parameters

Parameter Required Default Description
limit No 10 The max number of submissions per page to return.
page No 1 The page number of submissions you wish to view, works in tandem with limit.
submissionIDs No The IDs for submissions you wish to retrieve.
accountID No The Account ID for the submissions you wish to retrieve.
isOpen No The status of submissions you wish to retrieve. If true, returns all open submissions, else if false returns all closed submissions, else returns all submissions.

Submission Object

Property Type Description
claimIDs array [string] Each element in this array is a claimID for a claim contained in the submission.
paidAmount number The total paid amount for the submission.
totalCharge number The total charge amount for the submission.
providerID string The providerID for the Provider the submission belongs to.
submissionID string The unique, Kinetik generated ID for the submission.
createdAt string The ISO 8601 date string representing when the submission object was created in the Kinetik system. Is in UTC.
updatedAt string The ISO 8601 date string representing when the submission object was last updated in the Kinetik system. Is in UTC.
s3FileID string The fileID associating the submission object to the actual file stored by Kinetik.
account object Contains details about the payer account that published the submission.
userID string Unique ID of the user that created the submission.
isOpen bool Indicates if payment process has been completed or not for the submission.
claimType string Kinetik's type code for this claim. "f301" represents a professional claim type and "f302" represents a non-insurance claim type.
services object Contains details about the payer account that published the submission.
paymentIntentID string Stripe payment intent ID that can be used to make payments for the submission.
services array [object] The services for the claims contained in the submission. Is an array of service objects.
services[index].claimID string The claim ID of which the service belongs to.
services[index].name string The name of the service.
services[index].units number The number of units for this service.
services[index].chargeAmount number The amount charged for this service.
services[index].procedureCode string The procedure code for this service.
services[index].modifierX (One - Four) String The modifier codes for this service.

Errors

The Kinetik API uses the following error codes in it's Response Headers:

Error Code Meaning
400 Bad Request -- Your request is invalid.
401 Unauthorized -- Your API Key or Secret Key is wrong.
403 Forbidden -- Your account is unauthorized to make this request.
404 Not Found -- The specified resource could not be found.
500 Internal Server Error -- We had a problem with our server. Try again later.