Groups
The groups API allow you to search, create, fetch, update and delete groups from within the ITC network.
The Group Resource
The group resource contains all information about a requested group
Properties
- Name
id- Required
- Type
- integer
- Description
Unique identifier for the group.
- Name
name- Required
- Type
- string
- Description
The name of the group
- Name
slug- Required
- Type
- string
- Description
The slug of the group
- Name
type- Required
- Type
- string
- Description
The groups industry
- Name
dates.created_at- Required
- Type
- datetime
- Description
The date the group was created, represented in
YYYY-MM-DD HH:MM:SSformat
- Name
dates.updated_at- Required
- Type
- datetime
- Description
The date the group was last updated, represented in
YYYY-MM-DD HH:MM:SSformat
- Name
dates.deleted_at- Required
- Type
- null | datetime
- Description
The date the group was deleted, represented in
YYYY-MM-DD HH:MM:SSformat. If the group is not deleted, this will benull
Group Resource
{
"id": 1,
"name": "Dev Group",
"slug": "dev-group",
"type": "motor",
"dates": {
"created_at": "2024-01-01 00:00:00",
"updated_at": "2024-01-02 12:00:00",
"deleted_at": null,
}
}
Search Groups
The search groups endpoint uses the standard [/searching](search package) from the SDK.
An array of group resources are returned. If no results are found, an empty collection is returned.
Search Filters
- Name
filters.id.equals- Required
- Type
- integer
- Description
Match a single group by ID
- Name
filters.id.in- Required
- Type
- array<integer>
- Description
Match groups by multiple IDs
- Name
filters.name.equals- Required
- Type
- string
- Description
Match a group by their name
- Name
filters.name.in- Required
- Type
- array<string>
- Description
Match group by multiple name
- Name
filters.name.contains- Required
- Type
- string
- Description
Match a group by a partial name
- Name
filters.slug.equals- Required
- Type
- string
- Description
Match a group by their slug
- Name
filters.slug.in- Required
- Type
- array<string>
- Description
Match group by multiple slug
- Name
filters.type.equals- Required
- Type
- string
- Description
Match groups by their type
- Name
filters.type.in- Required
- Type
- array<string>
- Description
Match groups by multiple types
- Name
filters.created_at.before_or_on- Required
- Type
- datetime
- Description
Match all groups that were created before or on this datetime.
- Name
filters.created_at.after_or_on- Required
- Type
- datetime
- Description
Match all groups that were created after or on this datetime.
- Name
filters.updated_at.before_or_on- Required
- Type
- datetime
- Description
Match all groups that were last updated before or on this datetime.
- Name
filters.updated_at.after_or_on- Required
- Type
- datetime
- Description
Match all groups that were last updated after or on this datetime.
- Name
filters.deleted_at.equals- Required
- Type
- boolean
- Description
If you want to only deleted groups from results, provide
true. If you only non-deleted groups, providefalse
Search Ordering
- id
- name
- slug
- type
- created_at
- updated_at
- deleted_at
Request
use Compliance\Sdk\ApexV3\Contracts\ApexV3SdkInterface;
use Compliance\Sdk\Authentication\Types\Machine;
use Compliance\Sdk\Search\Search;
private ApexV3SdkInterface $sdk;
$search = new Search();
$response = $this->sdk
->v2(new Machine())
->groups()
->search($search);
Response
{
"data": [
{
"id": 1,
"name": "Dev Group",
"slug": "dev-group",
"type": "motor",
"dates": {
"created_at": "2024-01-01 00:00:00",
"updated_at": "2024-01-02 00:00:00",
"deleted_at": null,
}
}
]
}
Retrieve Group
Will retrieve a single group by their ID.
URL Parameters
- Name
group_id- Required
- required
- Type
- integer
- Description
ID of the group to retrieve
Error Codes
| Status | Description |
|---|---|
| 404 | The requested group could not be found. |
Request
use Compliance\Sdk\ApexV3\Contracts\ApexV3SdkInterface;
use Compliance\Sdk\Authentication\Types\Machine;
private ApexV3SdkInterface $sdk;
$response = $this->sdk
->v2(new Machine())
->group(1)
->get();
Response
{
"data": {
"id": 1,
"name": "Dev Group",
"slug": "dev-group",
"type": "motor",
"dates": {
"created_at": "2024-01-01 00:00:00",
"updated_at": "2024-01-02 00:00:00",
"deleted_at": null,
}
}
}
Create Group
Will attempt to create a new group.
Payload
- Name
name- Required
- required
- Type
- string
- Description
The name of the group
- Name
type- Required
- Type
- string
- Description
The group type. Must be one of the group type enums below.
Error Codes
| Status | Description |
|---|---|
| 404 | The requested group could not be found. |
| 422 | The data provided in the payload was invalid. See errors for more details. |
| 409 | The group name could not be converted to a slug because another group is using the same slug. |
Request
use Compliance\Sdk\ApexV3\Contracts\ApexV3SdkInterface;
use Compliance\Sdk\Authentication\Types\Machine;
private ApexV3SdkInterface $sdk;
$response = $this->sdk
->v2(new Machine())
->groups()
->create('Test Group', 'motor');
Response
{
"data": {
"id": 1,
"name": "Test Group",
"slug": "test-group",
"type": "motor",
"dates": {
"created_at": "2024-01-01 00:00:00",
"updated_at": "2024-01-02 00:00:00",
"deleted_at": null,
}
}
}
Update Group
Will attempt to update the core details of a group.
Only values provided in the request payload will be updated.
URL Parameters
- Name
group_id- Required
- required
- Type
- integer
- Description
ID of the group to update
Payload
- Name
name- Required
- Type
- string
- Description
The updated name for the group
- Name
type- Required
- Type
- string
- Description
Update the groups type. Must be one of the group type enums below.
- Name
restore- Required
- Type
- bool
- Description
If this group is deleted, provide
trueto restore it. Any other value is ignored.
Error Codes
| Status | Description |
|---|---|
| 404 | The requested group could not be found. |
| 422 | The data provided in the payload was invalid. See errors for more details. |
Request
use Compliance\Sdk\ApexV3\Contracts\ApexV3SdkInterface;
use Compliance\Sdk\Authentication\Types\Machine;
private ApexV3SdkInterface $sdk;
$response = $this->sdk
->v2(new Machine())
->group(1)
->update([
'name' => 'New Group Name',
'type' => 'motor',
]);
Response
{
"data": {
"id": 1,
"name": "New Group Name",
"slug": "new-group-name",
"type": "motor",
"dates": {
"created_at": "2024-01-01 00:00:00",
"updated_at": "2024-01-02 00:00:00",
"deleted_at": null,
}
}
}
Delete Group
Will attempt to delete the group. This endpoint will only affect non-deleted groups.
The API will return a successful response if the group is already deleted, but won't update the deleted_at timestamp.
URL Parameters
- Name
group_id- Required
- required
- Type
- integer
- Description
ID of the group to delete
Error Codes
| Status | Description |
|---|---|
| 404 | The requested group could not be found. |
| 409 | All dealers within the group must be deleted. If all dealers are not deleted, trying to delete a group will return a 409 status. |
Request
use Compliance\Sdk\ApexV3\Contracts\ApexV3SdkInterface;
use Compliance\Sdk\Authentication\Types\Machine;
private ApexV3SdkInterface $sdk;
$response = $this->sdk
->v2(new Machine())
->group(1)
->delete();
Response
{
"data": {
"id": 1,
"name": "New Group Name",
"slug": "new-group-name",
"type": "motor",
"dates": {
"created_at": "2024-01-01 00:00:00",
"updated_at": "2024-01-02 00:00:00",
"deleted_at": "2024-01-03 00:00:00",
}
}
}
Group Type Enum
| Value | Description |
|---|---|
| age-concern | Age Concern |
| call-centre | Call Centre |
| claim | Claims Management |
| consumer-credit | Consumer Credit |
| directly-authorised | Directly Authorised |
| finance | Finance |
| gi-mediation | General Insurance Mediation |
| insure-2-travel | Insure2Travel |
| introducer | Motor Introducer |
| landlord-hub | Landlord Hub |
| motor | Motor Industry |
| other | Other / ITC Compliance |
| property | Property Management |
| property-agent | Property Agent |
| payment-shield | Payment Shield |
| satellite | Satellite |
| sony | Sony |
| sony-eu | Sony EU |
| standalone-motor | Standalone Motor |
| travel | Travel |
| travel-introducer | Travel Introducer |
| vet | Vet |