Skip to main content

Core API Documentation

Overview​

This documentation covers the Core API, a RESTful service providing access to Enrollment123.com's core business data and functionality. The API provides endpoints for agents, members, products, transactions, schedules, contracts, and payables.

Authentication​

Authentication in the Core API is handled in two steps:

  1. Obtain a User Access Token (UAT)
  2. Exchange the UAT for a JWT token for subsequent API calls

User Access Token Endpoint​

POST /auth/getUserToken

Request Body:

{
"corp_id": 123,
"username": "username",
"password": "password"
}

Response:

{
"statuscode": 200,
"rows": [
{
"userToken": "a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6"
}
],
"_meta": {},
"_links": {}
}

Login with User Token Endpoint​

POST /auth/login

Request Body:

{
"userToken": "a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6"
}

Response:

{
"statuscode": 200,
"rows": [
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
],
"_meta": {},
"_links": {}
}

For subsequent API calls, include the JWT token in the Authorization header:

Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

Standard Request Parameters​

All GET endpoints support the following standard query parameters:

ParameterTypeDescriptionDefault
searchstringValue to search for
search_fieldsstringComma-separated list of fields to search in
search_typestringType of search: "exact" or "partial""exact"
search_condstringCondition for multiple fields: "and" or "or""and"
order_bystringField to sort by"name"
order_dirstringSort direction: "asc" or "desc""asc"
limitintegerNumber of records per page10
pageintegerPage number1
startintegerStarting record (alternative to page)0
date_contextstringField to apply date filters to
min_datestringStart date (in ISO 8601 format)
max_datestringEnd date (in ISO 8601 format)
idintegerSpecific ID to filter by

Common Response Format​

All API responses follow this standard format:

{
"statuscode": 200,
"rows": [...],
"_meta": {
"limit": 10,
"page": 1,
"start": 0,
"total": 5,
"rows": 25,
"pages": 3
},
"_links": {
"self": "/endpoint?limit=10&page=1",
"next": "/endpoint?limit=10&page=2",
"prev": "/endpoint?limit=10&page=1",
"first": "/endpoint?limit=10&page=1",
"last": "/endpoint?limit=10&page=3"
}
}

For errors, the response format is:

{
"statuscode": 400,
"message": "Error message",
"detail": "Error details"
}

Agents​

Get Agent​

GET /agents/{id}

Response:

{
"statuscode": 200,
"rows": [
{
"id": 123,
"corp_id": 456,
"firstname": "John",
"lastname": "Doe",
"knownname": "John Doe",
"username": "johndoe",
"email": "john.doe@example.com",
"phone": "5551234567",
"niprnumber": "12345678",
"createdDate": "2023-01-15T10:30:00.000Z",
"updatedDate": "2023-05-20T14:45:00.000Z",
"parent_id": 100,
"children": 5
}
],
"_meta": {},
"_links": {}
}

Search Agents​

GET /agents

Additional query parameters:

ParameterTypeDescription
nipr_npnstringNIPR/NPN number
parent_idintegerParent agent ID
emailstringAgent email
phonestringAgent phone number
bActiveintegerActive status (0 or 1)

Members​

Get Member​

GET /members/{id}

Response:

{
"statuscode": 200,
"rows": [
{
"id": 123,
"memberid": "MEM12345",
"firstname": "Jane",
"lastname": "Smith",
"state": "CA",
"createdDate": "2023-02-10T09:15:00.000Z",
"updatedDate": "2023-06-15T16:30:00.000Z",
"products": [
{
"up_id": 456,
"policynumber": "POL-123456",
"pd_id": 789,
"ccid": 101,
"maReplacement": 1,
"dtEffective": "2023-03-01T00:00:00.000Z",
"dtCancelled": null,
"bHold": 0,
"dtHoldCreated": null,
"fees": [
{
"upfid": 202,
"feetype": "PREMIUM",
"commissionableAmount": 99.50,
"feeamount": 99.50,
"benefitid": 303,
"periodid": 1
}
]
}
]
}
],
"_meta": {},
"_links": {}
}

Search Members​

GET /members

Products​

Get Product​

GET /products/{id}

Response:

{
"statuscode": 200,
"rows": [
{
"id": 123,
"corp_id": 456,
"carrier_id": "",
"product_type_id": "",
"name": "",
"description": "Health Insurance Plan",
"label_display": "Health Insurance Plan",
"label_admin": "HIP2023",
"code": "HIP001",
"sku": "",
"ean": "",
"isbn": "",
"asin": "",
"rfid": "",
"nsn": "",
"gtin": "",
"upc": "",
"created_at": "",
"updated_at": "",
"deleted_at": "",
"category": "Health",
"category2": "Provider A",
"category3": "Individual",
"category4": "Bronze"
}
],
"_meta": {},
"_links": {}
}

Search Products​

GET /products

Additional query parameters:

ParameterTypeDescription
label_displaystringProduct display label
label_adminstringProduct admin label
codestringProduct code
descriptionstringProduct description

Transactions​

Get Transaction​

GET /transactions/{id}

Response:

{
"statuscode": 200,
"rows": [
{
"trans_id": 123,
"trans_date": "2023-07-10T14:30:00.000Z",
"trans_amount": 199.99,
"bAuthorized": 1,
"bCompleted": 1,
"bRefund": 0,
"bRefunded": 0,
"bChargeback": 0,
"bChargedBack": 0,
"bVoided": 0,
"parentid": 0,
"corp_id": 456,
"user_id": 789,
"bSettled": 1,
"dtSettled": "2023-07-11T10:00:00.000Z",
"detail": [
{
"td_id": 101,
"trans_id": 123,
"up_id": 456,
"pd_id": 789,
"ccid": 202,
"maReplacement": 1,
"dtPaidThroughStart": "2023-07-01T00:00:00.000Z",
"dtPaidThroughEnd": "2023-07-31T00:00:00.000Z",
"paymentNumber": 1,
"fees": [
{
"tdfid": 303,
"trans_id": 123,
"td_id": 101,
"upfid": 404,
"pp_id": 505,
"type": "PREMIUM",
"currency": "USD",
"amount": 199.99,
"commissionableAmount": 199.99,
"benefit_id": 606
}
]
}
]
}
],
"_meta": {},
"_links": {}
}

Schedules​

Add Schedule​

POST /schedules

Request Body:

{
"corp_id": 456,
"dtStart": "2023-01-01",
"dtEnd": "2023-12-31"
}

Response:

{
"statuscode": 200,
"rows": [
{
"id": 123
}
],
"_meta": {},
"_links": {}
}

Update Schedule​

PUT /schedules/{id}

Request Body:

{
"corp_id": 456,
"dtStart": "2023-02-01",
"dtEnd": "2023-12-31"
}

Delete Schedule​

DELETE /schedules/{id}

Add Schedule Products​

POST /schedules/{schedid}/products

Request Body:

{
"products": [
{
"pd_id": 123,
"dtStart": "2023-01-01",
"dtEnd": "2023-12-31"
}
]
}

Update Schedule Product​

PUT /schedules/{schedid}/products/{id}

Request Body:

{
"products": [
{
"pd_id": 123,
"dtStart": "2023-02-01",
"dtEnd": "2023-12-31"
}
]
}

Delete Schedule Product​

DELETE /schedules/{schedid}/products/{id}

Contracts​

Add Contract​

POST /contracts

Request Body:

{
"contracts": [
{
"parent_ccid": 0,
"corp_id": 456,
"broker_id": 789,
"csid": 123,
"dtStart": "2023-01-01",
"dtEnd": "2023-12-31"
}
]
}

Update Contract​

PUT /contracts/{id}

Request Body:

{
"contracts": [
{
"parent_ccid": 0,
"corp_id": 456,
"broker_id": 789,
"csid": 123,
"dtStart": "2023-02-01",
"dtEnd": "2023-12-31"
}
]
}

Delete Contract​

DELETE /contracts/{id}

Payables​

Add Payable​

POST /payables

Request Body:

{
"broker_id": 123,
"dtPosted": "2023-07-15T10:00:00.000Z",
"system": "EARNED",
"type": "COMM",
"subtype": "COMMISSION",
"credit": 0,
"debit": 100.00,
"note": "Monthly commission",
"payoutAmount": 100.00,
"payoutAmountType": "DOLLAR",
"payoutCommissionAmount": 100.00,
"payoutCommissionAmountType": "DOLLAR",
"relatedTransactionID": 456,
"relatedProductDefaultID": 789,
"relatedUserProductID": 101,
"relatedAPIDs": [],
"dtCoverageStart": "2023-07-01T00:00:00.000Z",
"dtCoverageEnd": "2023-07-31T00:00:00.000Z",
"currentBalance": 500.00,
"previousBalance": 400.00,
"bRulesCheck": 1,
"advancedMonths": "",
"detail": [],
"externalID": "EXTID-123456"
}

Response:

{
"statuscode": 200,
"rows": [
{
"id": 123
}
],
"_meta": {},
"_links": {}
}

Error Codes​

Status CodeDescription
200OK - Request succeeded
400Bad Request - Invalid parameters or validation error
401Unauthorized - Authentication required
403Forbidden - Valid authentication but insufficient permissions
404Not Found - Resource not found
500Internal Server Error - Unexpected server error