API Documentation - Acceling Software
Welcome to Acceling Software | Call Us Now at (877) 299-3373

API Documentation

Integrate Acceling Software's powerful APIs into your applications

AiDGENT API v1.0.13

The NOA PDF Parsing API accepts one or more PDF files, classifies them, extracts structured data, and optionally generates suggested service schedules.

Base URL

https://aidgent-api.accelingsoftware.com

Authentication

Include your Azure subscription key in the header:

Header Description
Ocp-Apim-Subscription-Key Your Azure API Management subscription key

Endpoint: POST /parse

Upload one or more PDFs to parse and optionally generate service schedules. Supports both synchronous and asynchronous processing modes.

Query Parameters

Name Type Required Default Description
suggest_schedules boolean No true Include suggested schedules
use_ocr boolean No true If False, skip OCR. Image-only PDFs will return immediately without OCR.
callback_url string No null URL to receive callback when processing is complete. If provided, processing will be asynchronous.

Processing Modes

Synchronous Mode (Default)

When no callback_url is provided, the API processes documents immediately and returns results in the response.

Asynchronous Mode

When callback_url is provided, the API returns immediately with a job ID and processes documents in the background. Results are sent to the callback URL when complete.

Response Formats

Synchronous Response
{
                              "results": [
                                {
                                  "filename": "document.pdf",
                                  "status": "success",
                                  "document_type": "united_v1",
                                  "authorization_number": "AUTH123456",
                                  "provider": { ... },
                                  "patient": { ... },
                                  "services": [ ... ],
                                  "suggested_schedules": [ ... ]
                                }
                              ],
                              "status": "completed"
                            }
Asynchronous Response
{
                              "job_id": "123e4567-e89b-12d3-a456-426614174000",
                              "status": "pending",
                              "message": "Documents queued for processing",
                              "callback_url": "https://your-callback-endpoint.com/webhook"
                            }

Endpoint: GET /parse/status/{job_id}

Get the status of an asynchronous parsing job.

Response

{
                              "job_id": "123e4567-e89b-12d3-a456-426614174000",
                              "status": "processing",
                              "progress": 45,
                              "created_at": "2025-01-15T10:00:00Z",
                              "updated_at": "2025-01-15T10:02:30Z",
                              "result": null,
                              "error": null,
                              "metadata": {
                                "file_count": 2,
                                "suggest_schedules": true,
                                "use_ocr": true
                              }
                            }

Job Statuses

  • pending: Job created, waiting to start
  • processing: Job is currently running
  • completed: Job finished successfully
  • failed: Job failed with an error

Code Examples

Synchronous Processing

curl --location 'https://aidgent-api.accelingsoftware.com/noa/parse?suggest_schedules=true&use_ocr=true' \
--header 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
--form 'files=@"/c/path/to/first.pdf"' \
--form 'files=@"/c/path/to/second.pdf"'
                                        
Asynchronous Processing

curl --location 'https://aidgent-api.accelingsoftware.com/noa/parse?suggest_schedules=true&use_ocr=true&callback_url=https://your-app.com/webhook' \
--header 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
--form 'files=@"/c/path/to/first.pdf"' \
--form 'files=@"/c/path/to/second.pdf"'
                                        
Check Job Status

curl --location 'https://aidgent-api.accelingsoftware.com/noa/parse/status/JOB_ID' \
--header 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY'
                                        
Synchronous Processing

# === Synchronous Processing ===
import os
import requests

BASE_URL = "https://aidgent-api.accelingsoftware.com/noa"
API_KEY = "YOUR_SUBSCRIPTION_KEY"
SUGGEST_SCHEDULES = True
FILE_PATHS = [
    "/c/path/to/first.pdf",
    "/c/path/to/second.pdf",
]

url = f"{BASE_URL}/parse?suggest_schedules={str(SUGGEST_SCHEDULES).lower()}&use_ocr=true"
headers = {
    "Ocp-Apim-Subscription-Key": API_KEY
}

# Build the multipart payload
files = []
for path in FILE_PATHS:
    filename = os.path.basename(path)
    file_obj = open(path, "rb")
    files.append((
        "files",
        (filename, file_obj, "application/pdf")
    ))

response = requests.post(url, headers=headers, files=files)

# Always close your file handles afterward
for _, (_, fobj, _) in files:
    fobj.close()

print(response.json())
                                        
Asynchronous Processing

# === Asynchronous Processing ===
import os
import requests
import time

BASE_URL = "https://aidgent-api.accelingsoftware.com/noa"
API_KEY = "YOUR_SUBSCRIPTION_KEY"
CALLBACK_URL = "https://your-app.com/webhook"
SUGGEST_SCHEDULES = True
FILE_PATHS = [
    "/c/path/to/first.pdf",
    "/c/path/to/second.pdf",
]

# Submit for async processing
url = f"{BASE_URL}/parse?suggest_schedules={str(SUGGEST_SCHEDULES).lower()}&use_ocr=true&callback_url={CALLBACK_URL}"
headers = {
    "Ocp-Apim-Subscription-Key": API_KEY
}

files = []
for path in FILE_PATHS:
    filename = os.path.basename(path)
    file_obj = open(path, "rb")
    files.append((
        "files",
        (filename, file_obj, "application/pdf")
    ))

response = requests.post(url, headers=headers, files=files)

# Close file handles
for _, (_, fobj, _) in files:
    fobj.close()

job_data = response.json()
job_id = job_data['job_id']
print(f"Job submitted: {job_id}")

# Check job status (optional - results will be sent to callback_url)
status_url = f"{BASE_URL}/parse/status/{job_id}"
status_response = requests.get(status_url, headers=headers)
status = status_response.json()
print(f"Status: {status['status']}, Progress: {status['progress']}%")
                                        
Synchronous Processing
// === Synchronous Processing ===
const BASE_URL = "https://aidgent-api.accelingsoftware.com/noa";
const API_KEY = "YOUR_SUBSCRIPTION_KEY";
const SUGGEST_SCHEDULES = true;
const FILE_PATHS = [
    "C:/path/to/first.pdf",
    "C:/path/to/second.pdf",
];

const fs = require("fs");
const path = require("path");
const axios = require("axios");
const FormData = require("form-data");

const url = `${BASE_URL}/parse?suggest_schedules=${SUGGEST_SCHEDULES}&use_ocr=true`;
const form = new FormData();

FILE_PATHS.forEach(p => {
    form.append(
        "files",
        fs.createReadStream(p),
        {
            filename: path.basename(p),
            contentType: "application/pdf"
        }
    );
});

axios.post(url, form, {
    headers: {
        ...form.getHeaders(),
        "Ocp-Apim-Subscription-Key": API_KEY
    }
})
.then(res => {
    console.log(JSON.stringify(res.data, null, 2));
})
.catch(err => {
    console.error(err);
});
Asynchronous Processing
// === Asynchronous Processing ===
const BASE_URL = "https://aidgent-api.accelingsoftware.com/noa";
const API_KEY = "YOUR_SUBSCRIPTION_KEY";
const CALLBACK_URL = "https://your-app.com/webhook";
const SUGGEST_SCHEDULES = true;
const FILE_PATHS = [
    "C:/path/to/first.pdf",
    "C:/path/to/second.pdf",
];

const fs = require("fs");
const path = require("path");
const axios = require("axios");
const FormData = require("form-data");

// Submit for async processing
const url = `${BASE_URL}/parse?suggest_schedules=${SUGGEST_SCHEDULES}&use_ocr=true&callback_url=${CALLBACK_URL}`;
const form = new FormData();

FILE_PATHS.forEach(p => {
    form.append(
        "files",
        fs.createReadStream(p),
        {
            filename: path.basename(p),
            contentType: "application/pdf"
        }
    );
});

axios.post(url, form, {
    headers: {
        ...form.getHeaders(),
        "Ocp-Apim-Subscription-Key": API_KEY
    }
})
.then(res => {
    const jobData = res.data;
    const jobId = jobData.job_id;
    console.log(`Job submitted: ${jobId}`);
    
    // Check job status (optional - results will be sent to callback_url)
    return axios.get(`${BASE_URL}/parse/status/${jobId}`, {
        headers: {
            "Ocp-Apim-Subscription-Key": API_KEY
        }
    });
})
.then(statusRes => {
    const status = statusRes.data;
    console.log(`Status: ${status.status}, Progress: ${status.progress}%`);
})
.catch(err => {
    console.error(err);
});

Callback Format

When async processing completes, a POST request is sent to the provided callback URL with the following payload:

Success Callback

{
                              "job_id": "123e4567-e89b-12d3-a456-426614174000",
                              "status": "completed",
                              "timestamp": "2025-01-15T10:30:00Z",
                              "result": {
                                "results": [
                                  {
                                    "filename": "document.pdf",
                                    "status": "success",
                                    "document_type": "united_v1",
                                    "authorization_number": "AUTH123456",
                                    "provider": { ... },
                                    "patient": { ... },
                                    "services": [ ... ],
                                    "suggested_schedules": [ ... ]
                                  }
                                ]
                              },
                              "error": null
                            }

Error Callback

{
                              "job_id": "123e4567-e89b-12d3-a456-426614174000",
                              "status": "failed",
                              "timestamp": "2025-01-15T10:30:00Z",
                              "result": null,
                              "error": "Document classification failed - insufficient confidence"
                            }

Response

Success Response

HTTP 200 OK. Returns JSON array of results.

Example Success Response

{
  "document_type": "medicaid_v2",
  "authorization_number": null,
  "notice_date": "06/30/2025",
  "provider": null,
  "patient": {
    "name": "John Doe",
    "address": "789 Pine St\nAnytown, USA 54321",
    "phone": null,
    "rid": "112233445566",
    "ssn": null,
    "dob": "02/02/1970"
  },
  "care_manager": {
    "name": "Smith, Jane",
    "email": "jane.smith@exampleprovider.org"
  },
  "services": [
    {
      "service_name": "Attendant Care",
      "funding_source": "Health and Wellness",
      "line_items": [
        {
          "billing_code": "S5125",
          "modifiers": ["U7", "UA"],
          "start_date": "07/01/2025",
          "stop_date": "07/31/2025",
          "service_description": null,
          "unit_size": "[UNIT_SIZE]",
          "unit_rate": "[UNIT_RATE]",
          "num_units": "32",
          "current_cost": "[CURRENT_COST]"
        }
        // ... more line items
      ]
    }
    // ... more services
  ],
  "suggested_schedules": [
    {
      "service": "ATTC",
      "perfect": [
        "ATTC: 07/01/2025 - 06/30/2026 2hrs/wk (Mon 2hrs/day)"
      ]
    }
    // ... more schedules
  ]
}

Error Responses

  • 400 Invalid file type
  • 500 Processing error

Schedule Generation Endpoints

The following endpoints allow you to generate service schedules based on different criteria. All schedule endpoints require authentication via the Ocp-Apim-Subscription-Key header.

POST /schedules/fixed_monthly

Generate schedules with a fixed number of units per month.

Query Parameters

Name Type Required Default Description
units_ratio number No 4 Hours-to-units ratio (units per hour)
debug boolean No false Include debug info in response

Request Body

Field Type Required Description
start_date string Yes Start date mm/dd/YYYY or mm-dd-YYYY
end_date string Yes End date mm/dd/YYYY or mm-dd-YYYY
units number Yes Units per month (fixed for each month)

Example Request

curl -X POST \
'https://aidgent-api.accelingsoftware.com/schedules/fixed_monthly' \
--header 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
  "start_date": "09/01/2025",
  "end_date": "8/31/2026",
  "units": 400
}'
import requests
import json

api_key = 'YOUR_SUBSCRIPTION_KEY'
base_url = 'https://aidgent-api.accelingsoftware.com'
endpoint = '/schedules/fixed_monthly'

payload = {
    "start_date": "09/01/2025",
    "end_date": "8/31/2026",
    "units": 400
}

headers = {
    'Ocp-Apim-Subscription-Key': api_key,
    'Content-Type': 'application/json'
}

try:
    response = requests.post(base_url + endpoint, headers=headers, data=json.dumps(payload))
    response.raise_for_status()
    print(response.json())
except requests.exceptions.RequestException as e:
    print(f"An error occurred: {e}")
const axios = require('axios');

const apiKey = 'YOUR_SUBSCRIPTION_KEY';
const baseUrl = 'https://aidgent-api.accelingsoftware.com';
const endpoint = '/schedules/fixed_monthly';

const payload = {
    "start_date": "09/01/2025",
    "end_date": "8/31/2026",
    "units": 400
};

const headers = {
    'Ocp-Apim-Subscription-Key': apiKey,
    'Content-Type': 'application/json'
};

axios.post(baseUrl + endpoint, payload, { headers })
    .then(response => {
        console.log(response.data);
    })
    .catch(error => {
        console.error('An error occurred:', error.response ? error.response.data : error.message);
    });

Example Success Response

{
  "balanced": [
    "09/01/2025 - 08/31/2026 22.5hrs/wk (Sun, Tue-Thu, Sat 4.5hrs/day, Sep +5.5hrs, Oct +1.0hrs, Nov +1.0hrs, Dec +1.0hrs, Jan +1.0hrs, Feb +10.0hrs, Mar +1.0hrs, Apr +1.0hrs, May +1.0hrs, Jun +5.5hrs, Jul +1.0hrs, Aug +1.0hrs)",
    "09/01/2025 - 08/31/2026 22.5hrs/wk (Sun-Tue, Thu-Fri 4.5hrs/day, Sep +1.0hrs, Oct +1.0hrs, Nov +5.5hrs, Dec +1.0hrs, Jan +1.0hrs, Feb +10.0hrs, Mar -3.5hrs, Apr +5.5hrs, May +1.0hrs, Jun +1.0hrs, Jul +1.0hrs, Aug +1.0hrs)"
    // ... more balanced options
  ],
  "leastMonthsAdjusted": [
    "09/01/2025 - 08/31/2026 25hrs/wk (Sun, Sat 12.5hrs/day, Nov -25.0hrs, Jan -12.5hrs, Mar -12.5hrs, May -25.0hrs, Aug -25.0hrs)"
    // ... more leastMonthsAdjusted options
  ]
}

POST /schedules/total

Generate schedules based on total units across the entire date range.

Query Parameters

Name Type Required Default Description
units_ratio number No 4 Hours-to-units ratio (units per hour)
debug boolean No false Include debug info in response

Request Body

Field Type Required Description
start_date string Yes Start date mm/dd/YYYY or mm-dd-YYYY
end_date string Yes End date mm/dd/YYYY or mm-dd-YYYY
total_units number Yes Total units across the full date range

Example Request

curl -X POST \
'https://aidgent-api.accelingsoftware.com/schedules/total' \
--header 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
  "start_date": "09/01/2025",
  "end_date": "8/31/2026",
  "total_units": 7300
}'
import requests
import json

api_key = 'YOUR_SUBSCRIPTION_KEY'
base_url = 'https://aidgent-api.accelingsoftware.com'
endpoint = '/schedules/total'

payload = {
    "start_date": "09/01/2025",
    "end_date": "8/31/2026",
    "total_units": 7300
}

headers = {
    'Ocp-Apim-Subscription-Key': api_key,
    'Content-Type': 'application/json'
}

try:
    response = requests.post(base_url + endpoint, headers=headers, data=json.dumps(payload))
    response.raise_for_status()
    print(response.json())
except requests.exceptions.RequestException as e:
    print(f"An error occurred: {e}")
const axios = require('axios');

const apiKey = 'YOUR_SUBSCRIPTION_KEY';
const baseUrl = 'https://aidgent-api.accelingsoftware.com';
const endpoint = '/schedules/total';

const payload = {
    "start_date": "09/01/2025",
    "end_date": "8/31/2026",
    "total_units": 7300
};

const headers = {
    'Ocp-Apim-Subscription-Key': apiKey,
    'Content-Type': 'application/json'
};

axios.post(baseUrl + endpoint, payload, { headers })
    .then(response => {
        console.log(response.data);
    })
    .catch(error => {
        console.error('An error occurred:', error.response ? error.response.data : error.message);
    });

Example Success Response

{"perfect":["09/01/2025 - 08/31/2026 35hrs/wk (Sun-Sat 5hrs/day)"]}

POST /schedules/multi_month

Generate schedules with different units for each month.

Query Parameters

Name Type Required Default Description
units_ratio number No 4 Hours-to-units ratio (units per hour)
debug boolean No false Include debug info in response

Request Body

Field Type Required Description
start_date string Yes Start date mm/dd/YYYY or mm-dd-YYYY
end_date string Yes End date mm/dd/YYYY or mm-dd-YYYY
monthly_units array[number] Yes Units for each month in the range, in order

Example Request

curl -X POST \
  'https://aidgent-api.accelingsoftware.com/schedules/multi_month' \
  --header 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
  --header 'Content-Type: application/json' \
  --data-raw '{
    "start_date": "01/01/2025",
    "end_date": "03/31/2025",
    "monthly_units": [248, 224, 248]
  }'
import requests
import json

api_key = 'YOUR_SUBSCRIPTION_KEY'
base_url = 'https://aidgent-api.accelingsoftware.com'
endpoint = '/schedules/multi_month'

payload = {
    "start_date": "01/01/2025",
    "end_date": "03/31/2025",
    "monthly_units": [248, 224, 248]
}

headers = {
    'Ocp-Apim-Subscription-Key': api_key,
    'Content-Type': 'application/json'
}

try:
    response = requests.post(base_url + endpoint, headers=headers, data=json.dumps(payload))
    response.raise_for_status()
    print(response.json())
except requests.exceptions.RequestException as e:
    print(f"An error occurred: {e}")
const axios = require('axios');

const apiKey = 'YOUR_SUBSCRIPTION_KEY';
const baseUrl = 'https://aidgent-api.accelingsoftware.com';
const endpoint = '/schedules/multi_month';

const payload = {
    "start_date": "01/01/2025",
    "end_date": "03/31/2025",
    "monthly_units": [248, 224, 248]
};

const headers = {
    'Ocp-Apim-Subscription-Key': apiKey,
    'Content-Type': 'application/json'
};

axios.post(baseUrl + endpoint, payload, { headers })
    .then(response => {
        console.log(response.data);
    })
    .catch(error => {
        console.error('An error occurred:', error.response ? error.response.data : error.message);
    });

Example Success Response

{"perfect":["01/01/2025 - 03/31/2025 14hrs/wk (Sun-Sat 2hrs/day)"]}

POST /schedules/cost

Generate schedules based on cost and rate. Calculates total_units = cost / rate and treats it as a total units request.

Query Parameters

Name Type Required Default Description
units_ratio number No 4 Hours-to-units ratio (units per hour)
debug boolean No false Include debug info in response

Request Body

Field Type Required Description
start_date string Yes Start date mm/dd/YYYY or mm-dd-YYYY
end_date string Yes End date mm/dd/YYYY or mm-dd-YYYY
cost number Yes Total cost amount
rate number Yes Rate per unit

Example Request

curl -X POST \
  'https://aidgent-api.accelingsoftware.com/schedules/cost' \
  --header 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
  --header 'Content-Type: application/json' \
  --data-raw '{
    "start_date": "01/01/2025",
    "end_date": "03/31/2025",
    "cost": 384.00,
    "rate": 4.00
  }'
import requests
import json

api_key = 'YOUR_SUBSCRIPTION_KEY'
base_url = 'https://aidgent-api.accelingsoftware.com'
endpoint = '/schedules/cost'

payload = {
    "start_date": "01/01/2025",
    "end_date": "03/31/2025",
    "cost": 384.00,
    "rate": 4.00
}

headers = {
    'Ocp-Apim-Subscription-Key': api_key,
    'Content-Type': 'application/json'
}

try:
    response = requests.post(base_url + endpoint, headers=headers, data=json.dumps(payload))
    response.raise_for_status()
    print(response.json())
except requests.exceptions.RequestException as e:
    print(f"An error occurred: {e}")
const axios = require('axios');

const apiKey = 'YOUR_SUBSCRIPTION_KEY';
const baseUrl = 'https://aidgent-api.accelingsoftware.com';
const endpoint = '/schedules/cost';

const payload = {
    "start_date": "01/01/2025",
    "end_date": "03/31/2025",
    "cost": 384.00,
    "rate": 4.00
};

const headers = {
    'Ocp-Apim-Subscription-Key': apiKey,
    'Content-Type': 'application/json'
};

axios.post(baseUrl + endpoint, payload, { headers })
    .then(response => {
        console.log(response.data);
    })
    .catch(error => {
        console.error('An error occurred:', error.response ? error.response.data : error.message);
    });

Adhere API v1.8.1

The Adhere API enables automated eligibility checking for healthcare organizations, focusing on Medicaid Waiver and HCBS benefits. Integrate real-time verification into your systems.

Base URL

https://adhere-api.accelingsoftware.com/api

Health Check

GET /

A simple endpoint to verify that the API is online and reachable through the gateway.

Example Requests

curl -X GET \
  'https://adhere-api.accelingsoftware.com/api/' \
  --header 'Ocp-Apim-Subscription-Key: Your_Assigned_Subscription_Key'
import requests

api_key = 'Your_Assigned_Subscription_Key'
base_url = 'https://adhere-api.accelingsoftware.com/api'
endpoint = '/'

headers = {
    'Ocp-Apim-Subscription-Key': api_key
}

try:
    response = requests.get(base_url + endpoint, headers=headers)
    response.raise_for_status()
    print(response.json())
except requests.exceptions.RequestException as e:
    print(f"An error occurred: {e}")
const axios = require('axios');

const apiKey = 'Your_Assigned_Subscription_Key';
const baseUrl = 'https://adhere-api.accelingsoftware.com/api';
const endpoint = '/';

const headers = {
    'Ocp-Apim-Subscription-Key': apiKey
};

axios.get(baseUrl + endpoint, { headers })
    .then(response => {
        console.log(response.data);
    })
    .catch(error => {
        console.error('An error occurred:', error.response ? error.response.data : error.message);
    });

Success Response (200 OK)

{
  "status": "ok",
  "message": "Welcome to the Adhere API!"
}

Authentication

All API requests require your Azure subscription key. Include it in the header:

Header Description
Ocp-Apim-Subscription-Key Your Assigned Subscription Key

Check Eligibility for Multiple Members

POST /api/eligibility

Checks the current eligibility status for a list of members to determine if they have active HCBS Waiver or Pathways coverage.

Request Body

Field Type Required Description
member_ids array[string] Yes An array of member IDs to check.

Example Requests

curl -X POST \
  'https://adhere-api.accelingsoftware.com/api/eligibility' \
  --header 'Ocp-Apim-Subscription-Key: Your_Assigned_Subscription_Key' \
  --header 'Content-Type: application/json' \
  --data-raw '{
    "member_ids": [
      "111111111111",
      "222222222222",
      "333333333333"
    ]
  }'
import requests
import json
api_key = 'Your_Assigned_Subscription_Key'
base_url = 'https://adhere-api.accelingsoftware.com/api'
endpoint = '/eligibility'
payload = {
    "member_ids": [
      "111111111111",
      "222222222222",
      "333333333333"
    ]
}
headers = {
    'Ocp-Apim-Subscription-Key': api_key,
    'Content-Type': 'application/json'
}
try:
    response = requests.post(base_url + endpoint, headers=headers, data=json.dumps(payload))
    response.raise_for_status()
    print(response.json())
except requests.exceptions.RequestException as e:
    print(f"An error occurred: {e}")
const axios = require('axios');
const apiKey = 'Your_Assigned_Subscription_Key';
const baseUrl = 'https://adhere-api.accelingsoftware.com/api';
const endpoint = '/eligibility';
const payload = {
    "member_ids": [
      "111111111111",
      "222222222222",
      "333333333333"
    ]
};
const headers = {
    'Ocp-Apim-Subscription-Key': apiKey,
    'Content-Type': 'application/json'
};
axios.post(baseUrl + endpoint, payload, { headers })
    .then(response => {
        console.log(response.data);
    })
    .catch(error => {
        console.error('An error occurred:', error.response ? error.response.data : error.message);
    });

Success Response (200 OK)

The response is a JSON array of objects. Each object contains the detailed eligibility status for a single member.

Field Type Description
member_id string The original member ID this result corresponds to.
patient string The patient's name as returned in the X12 response ( Last, First M ).
waiver_status string The primary eligibility status. Will be 'Eligible' if a Waiver or HCBS benefit is found; otherwise 'Not Eligible' or an error message.
mce string The Managed Care Entity found (e.g., "HUMANA HEALTHY HORIZONS").
coverage string The specific benefit description found (e.g., "Aged and Disabled HCBS Pathways").
start_date string The coverage start date in YYYYMMDD format.
end_date string The coverage end date in YYYYMMDD format, if available.
date_of_birth string The patient's date of birth from the X12 response, in YYYYMMDD format.
raw_x12_response string Raw X12 response for debugging purposes.

Example Success Response

[
  {
    "member_id": "111111111111",
    "patient": "DOE, JANE A",
    "waiver_status": "Eligible",
    "mce": "ANYTOWN HEALTH PLAN",
    "coverage": "Aged and Disabled HCBS Pathways",
    "start_date": "20250101",
    "end_date": "20251231",
    "date_of_birth": "19850115",
    "raw_x12_response": "ISA*00*          *00*          *ZZ*IHCP           *ZZ*A367           *250825*1543*^*00501*080960928*0*P*:~GS*HB*IHCP*A367*20250825*1543*24737*X*005010X279A1~ST*271*1240*005010X279A1~BHT*0022*11*10004218*20250825*1543~HL*1**20*1~NM1*PR*2*INDIANA HEALTH COVERAGE PROGRAM*****46*IHCP~HL*2*1*21*1~NM1*1P*2*ABSOLUTE CAREGIVERS LLC*****SV*300024773~HL*3*2*22*0~TRN*2*93175-012552-3*9877281234~TRN*1*25237HDKS1*1123456789~NM1*IL*1*DOE*JANE*A***MI*111111111111~N3*123 MAIN ST~N4*ANYTOWN*IN*46201~DMG*D8*19850115*F~DTP*307*RD8*20250101-20251231~EB*1*IND*30*MC*Aged and Disabled HCBS Pathways~DTP*307*RD8*20250101-20251231~SE*14*1240~GE*1*24737~IEA*1*080960928~"
  },
  {
    "member_id": "222222222222",
    "patient": "SMITH, JOHN B",
    "waiver_status": "Not Eligible",
    "mce": "STATE MEDICAID OFFICE",
    "coverage": null,
    "start_date": null,
    "end_date": null,
    "date_of_birth": "19920320",
    "raw_x12_response": "ISA*00*          *00*          *ZZ*IHCP           *ZZ*A367           *250825*1543*^*00501*080960928*0*P*:~GS*HB*IHCP*A367*20250825*1543*24737*X*005010X279A1~ST*271*1240*005010X279A1~BHT*0022*11*10004218*20250825*1543~HL*1**20*1~NM1*PR*2*INDIANA HEALTH COVERAGE PROGRAM*****46*IHCP~HL*2*1*21*1~NM1*1P*2*ABSOLUTE CAREGIVERS LLC*****SV*300024773~HL*3*2*22*0~TRN*2*93175-012552-3*9877281234~TRN*1*25237HDKS1*1123456789~NM1*IL*1*SMITH*JOHN*B***MI*222222222222~N3*456 OAK AVE~N4*ANYTOWN*IN*46201~DMG*D8*19920320*M~DTP*307*RD8*20250825-20250825~SE*14*1240~GE*1*24737~IEA*1*080960928~"
  },
  {
    "member_id": "333333333333",
    "patient": "PUBLIC, JOHN Q",
    "waiver_status": "Eligible",
    "mce": "COMMUNITY CARE CONNECT",
    "coverage": "Health and Wellness Waiver",
    "start_date": "20250801",
    "end_date": "20250831",
    "date_of_birth": "19750410",
    "raw_x12_response": "ISA*00*          *00*          *ZZ*IHCP           *ZZ*A367           *250825*1543*^*00501*080960928*0*P*:~GS*HB*IHCP*A367*20250825*1543*24737*X*005010X279A1~ST*271*1240*005010X279A1~BHT*0022*11*10004218*20250825*1543~HL*1**20*1~NM1*PR*2*INDIANA HEALTH COVERAGE PROGRAM*****46*IHCP~HL*2*1*21*1~NM1*1P*2*ABSOLUTE CAREGIVERS LLC*****SV*300024773~HL*3*2*22*0~TRN*2*93175-012552-3*9877281234~TRN*1*25237HDKS1*1123456789~NM1*IL*1*PUBLIC*JOHN*Q***MI*333333333333~N3*789 PINE ST~N4*ANYTOWN*IN*46201~DMG*D8*19750410*M~DTP*307*RD8*20250801-20250831~EB*1*IND*30*MC*Health and Wellness Waiver~DTP*307*RD8*20250801-20250831~SE*14*1240~GE*1*24737~IEA*1*080960928~"
  }
]

Check Daily Eligibility for a Single Member

POST /api/daterange

This endpoint is used to audit or verify coverage for a single member over a period of time. For each day in the provided range, it determines if the member had active HCBS Waiver or Pathways coverage.

Request Body

Field Type Required Description
member_id string Yes The ID of the single member to check.
start_date string Yes The first date of the range in YYYYMMDD format.
end_date string Yes The last date of the range in YYYYMMDD format.

Example Requests

curl -X POST \
  'https://adhere-api.accelingsoftware.com/api/daterange' \
  --header 'Ocp-Apim-Subscription-Key: Your_Assigned_Subscription_Key' \
  --header 'Content-Type: application/json' \
  --data-raw '{
    "member_id": "111111111111",
    "start_date": "20250301",
    "end_date": "20250303"
  }'
import requests
import json
api_key = 'Your_Assigned_Subscription_Key'
base_url = 'https://adhere-api.accelingsoftware.com/api'
endpoint = '/daterange'
payload = {
    "member_id": "111111111111",
    "start_date": "20250301",
    "end_date": "20250303"
}
headers = {
    'Ocp-Apim-Subscription-Key': api_key,
    'Content-Type': 'application/json'
}
try:
    response = requests.post(base_url + endpoint, headers=headers, data=json.dumps(payload))
    response.raise_for_status()
    print(response.json())
except requests.exceptions.RequestException as e:
    print(f"An error occurred: {e}")
const axios = require('axios');
const apiKey = 'Your_Assigned_Subscription_Key';
const baseUrl = 'https://adhere-api.accelingsoftware.com/api';
const endpoint = '/daterange';
const payload = {
    "member_id": "111111111111",
    "start_date": "20250301",
    "end_date": "20250303"
};
const headers = {
    'Ocp-Apim-Subscription-Key': apiKey,
    'Content-Type': 'application/json'
};
axios.post(baseUrl + endpoint, payload, { headers })
    .then(response => {
        console.log(response.data);
    })
    .catch(error => {
        console.error('An error occurred:', error.response ? error.response.data : error.message);
    });

Success Response (200 OK)

The response is a JSON array of objects, one for each day from start_date to end_date.

Field Type Description
date string The specific date this result applies to, in YYYYMMDD format.
status string 'Eligible' if a relevant waiver was found for this date; otherwise 'Not Eligible'.
reason string The specific waiver name found (e.g., "Aged and Disabled HCBS Pathways") or the reason for non-eligibility.
mce string The Managed Care Entity associated with the coverage for that day. Will be 'N/A' if not eligible.

Example Success Response

[
  {
    "date": "20250301",
    "status": "Eligible",
    "reason": "Aged and Disabled HCBS Pathways",
    "mce": "ANYTOWN HEALTH PLAN"
  },
  {
    "date": "20250302",
    "status": "Not Eligible",
    "reason": "Coverage not active on this date.",
    "mce": "N/A"
  },
  {
    "date": "20250303",
    "status": "Eligible",
    "reason": "Aged and Disabled HCBS Pathways",
    "mce": "ANYTOWN HEALTH PLAN"
  }
]

Check Eligibility by Name and Date of Birth

POST /api/referral

Performs a real-time check for the current eligibility status for a list of individuals using their first name, last name, and date of birth, specifically looking for HCBS Waiver or Pathways coverage.

Request Body

Field Type Required Description
records array[object] Yes An array of referral records to process.

Record Object Fields

Field Type Required Description
first_name string Yes The first name of the individual.
last_name string Yes The last name of the individual.
date_of_birth string Yes The date of birth in YYYYMMDD format.

Example Requests

curl -X POST \
  'https://adhere-api.accelingsoftware.com/api/referral' \
  --header 'Ocp-Apim-Subscription-Key: Your_Assigned_Subscription_Key' \
  --header 'Content-Type: application/json' \
  --data-raw '{
    "records": [
      {
        "first_name": "John",
        "last_name": "Doe",
        "date_of_birth": "19850115"
      },
      {
        "first_name": "Jane",
        "last_name": "Smith",
        "date_of_birth": "19920320"
      }
    ]
  }'
import requests
import json

api_key = 'Your_Assigned_Subscription_Key'
base_url = 'https://adhere-api.accelingsoftware.com/api'
endpoint = '/referral'

payload = {
    "records": [
        {
            "first_name": "John",
            "last_name": "Doe",
            "date_of_birth": "19850115"
        },
        {
            "first_name": "Jane",
            "last_name": "Smith",
            "date_of_birth": "19920320"
        }
    ]
}

headers = {
    'Ocp-Apim-Subscription-Key': api_key,
    'Content-Type': 'application/json'
}

try:
    response = requests.post(base_url + endpoint, headers=headers, data=json.dumps(payload))
    response.raise_for_status()
    print(response.json())
except requests.exceptions.RequestException as e:
    print(f"An error occurred: {e}")
const axios = require('axios');

const apiKey = 'Your_Assigned_Subscription_Key';
const baseUrl = 'https://adhere-api.accelingsoftware.com/api';
const endpoint = '/referral';

const payload = {
    "records": [
        {
            "first_name": "John",
            "last_name": "Doe",
            "date_of_birth": "19850115"
        },
        {
            "first_name": "Jane",
            "last_name": "Smith",
            "date_of_birth": "19920320"
        }
    ]
};

const headers = {
    'Ocp-Apim-Subscription-Key': apiKey,
    'Content-Type': 'application/json'
};

axios.post(baseUrl + endpoint, payload, { headers })
    .then(response => {
        console.log(response.data);
    })
    .catch(error => {
        console.error('An error occurred:', error.response ? error.response.data : error.message);
    });

Success Response (200 OK)

The response is a JSON array of objects. Each object contains the detailed eligibility status for a single individual.

Field Type Description
first_name string The first name provided in the request.
last_name string The last name provided in the request.
date_of_birth string The date of birth provided in the request.
patient string The patient's name as returned in the X12 response (Last, First).
waiver_status string The primary eligibility status. Will be 'Eligible' if a Waiver or HCBS benefit is found; otherwise 'Not Eligible', 'Patient Not Found or Inactive', or an error message.
mce string The Managed Care Entity found (e.g., "ANTHEM BLUE CROSS AND BLUE SHIELD").
coverage string The specific benefit description found (e.g., "Aged and Disabled HCBS Pathways").
start_date string The coverage start date in YYYYMMDD format.
end_date string The coverage end date in YYYYMMDD format, if available.
raw_x12_response string Raw X12 response for debugging purposes.

Example Success Response

[
  {
    "first_name": "John",
    "last_name": "Doe",
    "date_of_birth": "19850115",
    "patient": "DOE, JOHN",
    "waiver_status": "Eligible",
    "mce": "ANTHEM BLUE CROSS AND BLUE SHIELD",
    "coverage": "Aged and Disabled HCBS Pathways",
    "start_date": "20250825",
    "end_date": "20250825",
    "raw_x12_response": "ISA*00*          *00*          *ZZ*IHCP           *ZZ*A367           *250825*1551*^*00501*143815806*0*P*:~GS*HB*IHCP*A367*20250825*1551*24737*X*005010X279A1~ST*271*1240*005010X279A1~BHT*0022*11*10009077*20250825*1551~HL*1**20*1~NM1*PR*2*INDIANA HEALTH COVERAGE PROGRAM*****46*IHCP~HL*2*1*21*1~NM1*1P*2*ABSOLUTE CAREGIVERS LLC*****SV*300024773~HL*3*2*22*0~TRN*2*93175-012552-3*9877281234~TRN*1*25237HDT4V*1123456789~NM1*IL*1*DOE*JOHN~DMG*D8*19850115~DTP*307*RD8*20250825-20250825~EB*1*IND*30*MC*Aged and Disabled HCBS Pathways~DTP*307*RD8*20250825-20250825~SE*14*1240~GE*1*24737~IEA*1*143815806~"
  },
  {
    "first_name": "Jane",
    "last_name": "Smith",
    "date_of_birth": "19920320",
    "patient": "SMITH, JANE",
    "waiver_status": "Patient Not Found or Inactive",
    "mce": null,
    "coverage": null,
    "start_date": null,
    "end_date": null,
    "raw_x12_response": "ISA*00*          *00*          *ZZ*IHCP           *ZZ*A367           *250825*1551*^*00501*142065816*0*P*:~GS*HB*IHCP*A367*20250825*1551*24737*X*005010X279A1~ST*271*1240*005010X279A1~BHT*0022*11*10006622*20250825*1551~HL*1**20*1~NM1*PR*2*INDIANA HEALTH COVERAGE PROGRAM*****46*IHCP~HL*2*1*21*1~NM1*1P*2*ABSOLUTE CAREGIVERS LLC*****SV*300024773~HL*3*2*22*0~TRN*2*93175-012552-3*9877281234~TRN*1*25237HDT51*1123456789~NM1*IL*1*SMITH*JANE~AAA*N**76*C~DMG*D8*19920320~DTP*307*RD8*20250825-20250825~SE*14*1240~GE*1*24737~IEA*1*142065816~"
  }
]

Error Handling and Troubleshooting

401 Unauthorized

This error means your Ocp-Apim-Subscription-Key is either missing or invalid. Please verify your key and ensure it is correctly placed in the request header. If the issue persists, contact support to confirm your subscription status.

422 Unprocessable Entity

This error indicates that the request body you sent was not in the expected format (e.g., a field is missing, dates are in an invalid format, or member_ids is not an array). The response body will contain a detailed JSON object explaining which fields were invalid. Please review the documentation for the specific endpoint and correct your request structure.

500 Internal Server Error

If you receive this error, it means an unexpected problem occurred on our end. We are automatically notified of these errors, but we encourage you to report them to support with the details mentioned above to help us correlate and resolve the issue faster.