Compliance Cases API
This section details the API endpoints for retrieving compliance case data associated with your company.
Endpoint: /cases
Base URL: https://app.integrishield.com/api
List Compliance Cases
- Method:
GET - Full Endpoint:
https://app.integrishield.com/api/cases - Description: Retrieves a paginated list of compliance cases for your company. Supports filtering by status, date range, and distributor. Results include full case details, affiliate information, and associated incidents with infraction
data. - Authentication: Required (Bearer Token).
Query Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
case_status_id |
integer | No | Filter by case status ID. |
created_after |
date | No | Return cases created on or after this date (format: YYYY-MM-DD). |
created_before |
date | No | Return cases created on or before this date (format: YYYY-MM-DD). |
distributor_id |
integer | No | Filter by distributor/affiliate ID. |
sort_by |
string | No | Field to sort by. Allowed values: id, created_dt. Default: id. |
sort_dir |
string | No | Sort direction. Allowed values: asc, desc. Default: desc. |
per_page |
integer | No | Number of results per page. Min: 1. Max: 200. Default: 100. |
page |
integer | No | Page number to retrieve. Default: 1. |
Example Request:
GET /api/cases?case_status_id=2&created_after=2024-01-01&per_page=50&sort_by=created_dt&sort_dir=desc
Success Response (200 OK):
Returns a JSON object containing the cases data and pagination metadata.
{
"code": "1026",
"status": "ok",
"detail": {
"msg": "Cases found"
},
"data": [
{
"case_id": 12345,
"affiliate_name": "John Smith",
"affiliate_id": "ABC123",
"case_worker": "Jane Doe",
"tags": ["high-priority", "trademark"],
"case_status": "Open",
"sub_status": "Under Review",
"submitter": "System",
"notice_status": "Pending",
"risk_level": "High",
"created_date": "2024-03-15 10:30:00",
"reviewed_date": "2024-03-16 14:00:00",
"resolved_date": null,
"first_action_date": "2024-03-15 11:00:00",
"flagged_date": "2024-03-15 10:30:00",
"follow_up_date": "2024-03-22 10:00:00",
"closed_date": null,
"merchant_type": "Affiliate",
"case_country": "United States",
"sub_affiliate_id": null,
"email_one": "john.smith@example.com",
"email_two": null,
"phone_one": "555-123-4567",
"phone_two": null,
"facebook": "https://facebook.com/johnsmith",
"youtube": null,
"twitter": "@johnsmith",
"tiktok": null,
"pintrest": null,
"affiliate_country": "US",
"first_name": "John",
"last_name": "Smith",
"notes": "VIP distributor",
"address": "123 Main St",
"city": "New York",
"state": "NY",
"zip": "10001",
"last_updated_date": "2024-03-15 10:30:00",
"ranking": "Gold",
"replicated_website": "https://johnsmith.company.com",
"sponsor": "SP456",
"upline": "UP789",
"upline_name": "Mary Johnson",
"status": "Active",
"start_date": "2022-01-15",
"language_used": "English",
"territory": "Northeast",
"incidents": [
{
"incident_id": 98765,
"incident_type": "url",
"infraction_type": "Trademark Violation",
"infraction_name": "Unauthorized Logo Usage"
},
{
"incident_id": 98766,
"incident_type": "display ad",
"infraction_type": "Income Claims",
"infraction_name": "Unsubstantiated Earnings"
}
]
}
],
"meta": {
"total": 150,
"per_page": 50,
"current_page": 1,
"last_page": 3
}
}
Response Fields:
code(string): Response code.1026indicates success.status(string):okfor successful requests.detail.msg(string): Human-readable status message.data(array): Array of case objects (see Case Object below).meta(object): Pagination information.total(integer): Total number of cases matching the query.per_page(integer): Number of results per page.current_page(integer): Current page number.last_page(integer): Total number of pages.
Get Single Compliance Case
- Method:
GET - Full Endpoint:
https://app.integrishield.com/api/cases/{id} - Description: Retrieves detailed information for a specific compliance case by its ID.
- Authentication: Required (Bearer Token).
Path Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
integer | Yes | The unique identifier of the compliance case. |
Example Request:
GET /api/cases/12345
Success Response (200 OK):
Returns a JSON object containing the case data.
{
"code": "1026",
"status": "ok",
"detail": {
"msg": "Case found"
},
"data": {
"case_id": 12345,
"affiliate_name": "John Smith",
"affiliate_id": "ABC123",
...
}
}
Error Response (404 Not Found):
Returned if no case exists with the specified ID, or the case does not belong to your company.
{
"code": "1025",
"status": "error",
"detail": {
"msg": "Case not found."
}
}
Case Object Reference
Each case object in the response contains the following fields:
Case Information
| Field | Type | Description |
|---|---|---|
case_id |
integer | Unique identifier for the case. |
case_worker |
string|null | Name of the assigned case worker. |
tags |
array | Array of tag names associated with the case. |
case_status |
string|null | Current status of the case (e.g., "Open", "Closed"). |
sub_status |
string|null | Sub-status providing additional detail. |
submitter |
string|null | Who submitted the case. |
notice_status |
string|null | Status of any notices sent. |
risk_level |
string|null | Assessed risk level of the case. |
case_country |
string|null | Country associated with the case. |
sub_affiliate_id |
string|null | Sub-affiliate identifier, if applicable. |
Case Dates
| Field | Type | Description |
|---|---|---|
created_date |
datetime|null | When the case was created. |
reviewed_date |
datetime|null | When the case was reviewed. |
resolved_date |
datetime|null | When the case was resolved. |
first_action_date |
datetime|null | When the first action was taken. |
flagged_date |
datetime|null | When the case was flagged. |
follow_up_date |
datetime|null | Scheduled follow-up date. |
closed_date |
datetime|null | When the case was closed. |
Affiliate Information
| Field | Type | Description |
|---|---|---|
affiliate_name |
string|null | Full name or business name of the affiliate. |
affiliate_id |
string|null | Client-assigned affiliate/distributor ID. |
merchant_type |
string|null | Type of merchant/affiliate. |
first_name |
string|null | Affiliate's first name. |
last_name |
string|null | Affiliate's last name. |
status |
string|null | Affiliate's current status. |
ranking |
string|null | Affiliate's rank or tier. |
start_date |
date|null | When the affiliate started. |
language_used |
string|null | Primary language. |
territory |
string|null | Assigned territory. |
notes |
string|null | Additional notes about the affiliate. |
Affiliate Contact Information
| Field | Type | Description |
|---|---|---|
email_one |
string|null | Primary email address. |
email_two |
string|null | Secondary email address. |
phone_one |
string|null | Primary phone number. |
phone_two |
string|null | Secondary phone number. |
address |
string|null | Street address. |
city |
string|null | City. |
state |
string|null | State/province. |
zip |
string|null | Postal/ZIP code. |
affiliate_country |
string|null | Country. |
Affiliate Social Media
| Field | Type | Description |
|---|---|---|
facebook |
string|null | Facebook profile URL or handle. |
youtube |
string|null | YouTube channel URL or handle. |
twitter |
string|null | Twitter/X handle. |
tiktok |
string|null | TikTok handle. |
pintrest |
string|null | Pinterest handle. |
replicated_website |
string|null | Affiliate's replicated website URL. |
Affiliate Hierarchy
| Field | Type | Description |
|---|---|---|
sponsor |
string|null | Sponsor ID. |
upline |
string|null | Upline ID. |
upline_name |
string|null | Name of the upline distributor. |
last_updated_date |
datetime|null | When affiliate info was last updated. |
Incidents
| Field | Type | Description |
|---|---|---|
incidents |
array | Array of incident objects associated with the case. |
Incident Object:
| Field | Type | Description |
|---|---|---|
incident_id |
integer | Unique identifier of the incident/content. |
incident_type |
string | Type of content: url, form, display ad, or paid search ad. |
infraction_type |
string|null | Category of the infraction (e.g., "Trademark Violation"). |
infraction_name |
string|null | Specific name of the infraction (e.g., "Unauthorized Logo Usage"). |
Common Error Responses
-
401 Unauthorized: If the Bearer token is missing, invalid, or expired.
-
429 Too Many Requests: If you exceed the API rate limit. Wait before retrying.
-
500 Internal Server Error: If an unexpected error occurs on the server during processing.
{ "code": "500", "status": "error", "detail": { "msg": "Server error! Contact server admin." } }