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 andAPI_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. |