Dealers
The dealer endpoints allow you to search, create, fetch, update and delete dealers from within the ITC network.
Dealers are classed as either physical sites in the real world, or virtual showrooms.
The Dealer Resource
The dealer resource contains all information about a requested dealer
Properties
- Name
id
- Required
- Type
- integer
- Description
Unique identifier for the dealer.
- Name
group_id
- Required
- Type
- integer
- Description
ID of the group this dealer belongs to
- Name
legal_entity_id
- Required
- Type
- integer | null
- Description
ID of the legal entity the dealer belongs to, if available.
- Name
name
- Required
- Type
- string
- Description
The name of the dealer
- Name
dates.created_at
- Required
- Type
- datetime
- Description
The date the dealer was created, represented in
YYYY-MM-DD HH:MM:SS
format
- Name
dates.updated_at
- Required
- Type
- datetime
- Description
The date the dealer was last updated, represented in
YYYY-MM-DD HH:MM:SS
format
- Name
dates.deleted_at
- Required
- Type
- null | datetime
- Description
The date the dealer was deleted, represented in
YYYY-MM-DD HH:MM:SS
format. If the dealer is not deleted, this will benull
Dealer Resource
{
"id": 1,
"group_id": 2,
"legal_entity_id": 3,
"name": "Dev Site",
"dates": {
"created_at": "2024-01-01 00:00:00",
"updated_at": "2024-01-02 12:00:00",
"deleted_at": null,
}
}
Search Dealers
The search dealers endpoint uses the standard [/searching](search package) from the SDK.
An array of dealer 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 dealer by ID
- Name
filters.id.in
- Required
- Type
- array<integer>
- Description
Match dealers by multiple IDs
- Name
filters.group_id.equals
- Required
- Type
- integer
- Description
Match dealers by group ID
- Name
filters.group_id.in
- Required
- Type
- array<integer>
- Description
Match dealers by multiple group IDs
- Name
filters.legal_entity_id.equals
- Required
- Type
- integer | null
- Description
Match dealers by legal entity ID
- Name
filters.group_id.in
- Required
- Type
- array<integer | null>
- Description
Match dealers by multiple legal entity IDs
- Name
filters.name.equals
- Required
- Type
- string
- Description
Match a dealer by their name
- Name
filters.name.in
- Required
- Type
- array<string>
- Description
Match dealers by multiple name
- Name
filters.name.contains
- Required
- Type
- string
- Description
Match a dealer by a partial name
- Name
filters.type.equals
- Required
- Type
- string
- Description
Match dealers of a specific type
- Name
filters.type.in
- Required
- Type
- array<string>
- Description
Match dealers of multiple specific types
- Name
filters.created_at.before_or_on
- Required
- Type
- datetime
- Description
Match all dealers that were created before or on this datetime.
- Name
filters.created_at.after_or_on
- Required
- Type
- datetime
- Description
Match all dealers that were created after or on this datetime.
- Name
filters.updated_at.before_or_on
- Required
- Type
- datetime
- Description
Match all dealers that were last updated before or on this datetime.
- Name
filters.updated_at.after_or_on
- Required
- Type
- datetime
- Description
Match all dealers that were last updated after or on this datetime.
- Name
filters.deleted_at.equals
- Required
- Type
- boolean
- Description
If you want to only deleted dealers from results, provide
true
. If you only non-deleted dealers, providefalse
Search Ordering
- id
- group_id
- legal_entity_id
- name
- 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())
->dealers()
->search($search);
Response
{
"data": [
{
"id": 1,
"group_id": 2,
"legal_entity_id": 3,
"name": "Dev Site",
"dates": {
"created_at": "2024-01-01 00:00:00",
"updated_at": "2024-01-02 00:00:00",
"deleted_at": null,
}
}
]
}
Create Dealer
Will create a new dealer record
Payload
- Name
group_id
- Required
- required
- Type
- integer
- Description
ID of the group this dealer belongs to
- Name
legal_entity_id
- Required
- Type
- integer | null
- Description
ID of the legal entity this dealer belongs to
- Name
name
- Required
- required
- Type
- string
- Description
The name of the dealer
Error Codes
Status | Description |
---|---|
400 | The group couldn't be found |
400 | The legal entity couldn't be found if provided |
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())
->dealers()
->create(1, 2, 'Dealer Name');
Response
{
"data": {
"id": 1,
"group_id": 1,
"legal_entity_id": 2,
"name": "Dealer Name",
"dates": {
"created_at": "2024-01-01 00:00:00",
"updated_at": "2024-01-02 00:00:00",
"deleted_at": null,
}
}
}
Retrieve Dealer
Will retrieve a single dealer by their ID.
URL Parameters
- Name
dealer_id
- Required
- required
- Type
- integer
- Description
ID of the dealer to retrieve
Error Codes
Status | Description |
---|---|
404 | The requested dealer 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())
->dealer(1)
->get();
Response
{
"data": {
"id": 1,
"group_id": 2,
"legal_entity_id": 3,
"name": "Dev Site",
"dates": {
"created_at": "2024-01-01 00:00:00",
"updated_at": "2024-01-02 00:00:00",
"deleted_at": null,
}
}
}
Update Dealer
Will attempt to update the core details of a dealer.
Only values provided in the request payload will be updated.
URL Parameters
- Name
dealer_id
- Required
- required
- Type
- integer
- Description
ID of the dealer to update
Payload
- Name
group_id
- Required
- Type
- integer
- Description
ID of the group to set as the dealers parent
- Name
legal_entity_id
- Required
- Type
- integer | null
- Description
ID of the legal entity this dealer is attached to
- Name
name
- Required
- Type
- string
- Description
The updated name for the dealer
Error Codes
Status | Description |
---|---|
404 | The requested dealer could not be found. |
400 | The given group could not be found. |
400 | The given legal entity 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())
->dealer(1)
->update([
'group_id' => 2,
'legal_entity_id' => 3,
'name' => 'New Dealer Name',
]);
Response
{
"data": {
"id": 1,
"group_id": 2,
"legal_entity_id": 3,
"name": "New Dealer Name",
"dates": {
"created_at": "2024-01-01 00:00:00",
"updated_at": "2024-01-02 00:00:00",
"deleted_at": null,
}
}
}
Delete Dealer
Will attempt to delete the dealer. This endpoint will only affect non-deleted dealers.
The API will return a successful response if the dealer is already deleted, but won't update the deleted_at
timestamp.
URL Parameters
- Name
dealer_id
- Required
- required
- Type
- integer
- Description
ID of the dealer to delete
Error Codes
Status | Description |
---|---|
404 | The requested dealer 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())
->dealer(1)
->delete();
Response
{
"data": {
"id": 1,
"group_id": 2,
"legal_entity_id": 3,
"name": "New Dealer Name",
"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",
}
}
}