Skip to content

Remote Trunk Control API Developer Guide

Service Overview

Remote Trunk Control is a telematics service that allows users to remotely open or close the vehicle's trunk through a mobile application.

Service Features

  • Remote trunk open/close control
  • Convenience for item delivery and pickup
  • Support for smart delivery and valet services
  • Enhanced security policy application
  • Command and Event-based status differentiation
  • Strong security policy required for vehicle security related features
  • Compliance with personal information protection laws
  • Mandatory Command Audit Log recording
  • Location-based restriction (Geo-fencing) application

Key Scenarios

Scenario 1: Remote Trunk Control Request and Execution

API Flow by Entity:

📱 App (User):

  1. Trunk Open: Request remote trunk open control
  2. Command Reception: Receive 202 Accepted response
  3. Push Notification: Receive trunk control result push notification
  4. UI Update: Display control results on screen

🚗 Vehicle (TCU):

  1. Command Reception: Receive trunk control command from ECARUS
  2. Safety Verification: Check gear status (P-Range), speed (0km/h), obstacle detection
  3. Motor Drive: Open trunk by driving tailgate motor
  4. Result Publication: Publish success/failure results to ECARUS

🏢 Call Center:

  1. Proxy Control: Open trunk on behalf of customer
  2. Status Check: Check trunk status
  3. Result Reception: Receive trunk control results

Scenario 2: Trunk Control Failure and Safety Shutdown Processing

API Flow by Entity:

📱 App (User):

  1. Command Request: Trunk open command request
  2. Failure Notification: Receive failure reasons via push notification
  3. Status Check: Check current trunk status
  4. Command Cancellation: Cancel executing command

🚗 Vehicle (TCU):

  1. Safety Verification: Check during driving or rear obstacle detection
  2. Failure Processing: Process failure when safety conditions violated
  3. Result Publication: Publish failure results and error codes
  4. Safety Shutdown: Automatic shutdown in abnormal state

🏢 Call Center:

  1. History Query: Query failure history
  2. Diagnostics Check: Check system diagnostics
  3. Customer Support: Analyze failure causes and guide customers

Scenario 3: Trunk Lock and Status Monitoring

API Flow by Entity:

📱 App (User):

  1. Trunk Lock: Request remote trunk lock control
  2. Status Query: Query trunk status
  3. Specification Check: Query trunk specifications
  4. Settings Management: Manage trunk settings and Update trunk settings

🚗 Vehicle (TCU):

  1. Lock Command Reception: Receive trunk lock command
  2. Lock Motor Drive: Drive trunk lock motor
  3. Status Transmission: Transmit lock status to server
  4. Event Publication: Publish status change events

🏢 Call Center:

  1. Status Monitoring: Real-time trunk status check
  2. Specification Management: Manage trunk specifications
  3. Settings Management: Manage customer settings and Update trunk settings
  4. History Management: Manage control history

Scenario 4: Trunk Diagnostics and Settings Management

API Flow by Entity:

📱 App (User):

  1. Diagnostics Query: Query trunk system diagnostics
  2. Specification Query: Query trunk specifications
  3. Settings Query: Query trunk settings
  4. Settings Update: Update trunk settings

🚗 Vehicle (TCU):

  1. Diagnostics Execution: Diagnose trunk related component status
  2. Specification Report: Report trunk specification information to server
  3. Settings Application: Automatic application of trunk settings
  4. Status Report: Report current trunk status

🏢 Call Center:

  1. Diagnostics Management: Automatic system diagnostics management
  2. Specification Management: Automatic trunk specification management
  3. Settings Support: Support customer trunk setting changes and Update trunk settings
  4. Problem Solving: Problem solving based on diagnostics results

Key Features

📱 Features to Implement in App

1. Remote Trunk Control Function

2. Settings Management Function

3. Real-time Monitoring Function

4. Notification and UI Functions

  • Push Notifications: Receive trunk control result push notifications
  • Error Guidance: User-friendly error messages on failure
  • Status Visualization: Visual representation of trunk status

🏢 Features to Implement in Call Center

1. Proxy Trunk Control Function

2. History and Diagnostics Management Function

3. Settings Management Function

4. Customer Support Function

  • Problem Solving: Analyze trunk control failure causes
  • Settings Support: Support customer trunk settings
  • Security Monitoring: Monitor abnormal access patterns

🚗 Functions Processed by Vehicle (TCU)

1. Trunk Control Function

  • Command Reception: Receive trunk control commands
  • Safety Verification: Check gear status, speed, obstacle detection
  • Motor Drive: Execute control by driving tailgate/lock motor
  • Result Publication: Publish control results

2. Status Management Function

  • Status Collection: Real-time collection of trunk status data
  • Event Publication: Publish status change events
  • Status Report: Report current trunk status

3. Safety Function

  • Obstacle Detection: Detect obstacles with rear ultrasonic sensors
  • Anti-pinch: Automatic stop when pinch detected
  • Safety Shutdown: Automatic shutdown in dangerous state

Sequence Diagram

Remote Trunk Control System Flow

Remote Trunk Control

API Endpoints

Refer to the Common API Specifications for headers, response codes, and error formats.

Trunk Open

bash
curl -X POST "https://api.ecarus.run/api/v1/remotecontrol/vehicles/KMHSH81C7LU123456/trunk/open" \
     -H "Authorization: Bearer sk_4f9c7b8e2d1a6c0f3e7a9b5d8c1e4f2a7c6d9e0b3f5a8c1d4e7f9b2c6a1e3d" \
     -H "Content-Type: application/json" \
     -d '{"action": "OPEN"}'

Trunk Lock

bash
curl -X POST "https://api.ecarus.run/api/v1/remotecontrol/vehicles/KMHSH81C7LU123456/trunk/lock" \
     -H "Authorization: Bearer sk_4f9c7b8e2d1a6c0f3e7a9b5d8c1e4f2a7c6d9e0b3f5a8c1d4e7f9b2c6a1e3d" \
     -H "Content-Type: application/json" \
     -d '{"action": "LOCK"}'

Trunk Status Query

bash
curl -X GET "https://api.ecarus.run/api/v1/remotecontrol/vehicles/KMHSH81C7LU123456/trunk/status" \
     -H "Authorization: Bearer sk_4f9c7b8e2d1a6c0f3e7a9b5d8c1e4f2a7c6d9e0b3f5a8c1d4e7f9b2c6a1e3d"

Trunk Control Cancellation

bash
curl -X POST "https://api.ecarus.run/api/v1/remotecontrol/vehicles/KMHSH81C7LU123456/trunk/cancel" \
     -H "Authorization: Bearer sk_4f9c7b8e2d1a6c0f3e7a9b5d8c1e4f2a7c6d9e0b3f5a8c1d4e7f9b2c6a1e3d" \
     -H "Content-Type: application/json" \
     -d '{"correlationId": "uuid-12345678", "reason": "User cancellation", "force": false}'

Trunk Control History Query

bash
curl -X GET "https://api.ecarus.run/api/v1/remotecontrol/vehicles/KMHSH81C7LU123456/trunk/history?period=24h&limit=50" \
     -H "Authorization: Bearer sk_4f9c7b8e2d1a6c0f3e7a9b5d8c1e4f2a7c6d9e0b3f5a8c1d4e7f9b2c6a1e3d"

Trunk Specification Query

bash
curl -X GET "https://api.ecarus.run/api/v1/remotecontrol/vehicles/KMHSH81C7LU123456/trunk/spec" \
     -H "Authorization: Bearer sk_4f9c7b8e2d1a6c0f3e7a9b5d8c1e4f2a7c6d9e0b3f5a8c1d4e7f9b2c6a1e3d"

Trunk Settings Query

bash
curl -X GET "https://api.ecarus.run/api/v1/remotecontrol/vehicles/KMHSH81C7LU123456/trunk/config" \
     -H "Authorization: Bearer sk_4f9c7b8e2d1a6c0f3e7a9b5d8c1e4f2a7c6d9e0b3f5a8c1d4e7f9b2c6a1e3d"

Trunk Settings Update

bash
curl -X PUT "https://api.ecarus.run/api/v1/remotecontrol/vehicles/KMHSH81C7LU123456/trunk/config" \
     -H "Authorization: Bearer sk_4f9c7b8e2d1a6c0f3e7a9b5d8c1e4f2a7c6d9e0b3f5a8c1d4e7f9b2c6a1e3d" \
     -H "Content-Type: application/json" \
     -d '{"trunk": {"remoteControlEnabled": true, "antiPinchSensitivity": "HIGH", "openSpeed": "SLOW"}, "safety": {"obstacleDetectionEnabled": true, "minSafeDistance": 75.0, "speedLimitEnabled": true}}'

Trunk Control Diagnostics Query

bash
curl -X GET "https://api.ecarus.run/api/v1/remotecontrol/vehicles/KMHSH81C7LU123456/trunk/diagnostics" \
     -H "Authorization: Bearer sk_4f9c7b8e2d1a6c0f3e7a9b5d8c1e4f2a7c6d9e0b3f5a8c1d4e7f9b2c6a1e3d"

Trunk Control Real-time Update Stream (SSE)

Note: Recommended to access via browser or use a dedicated SSE client

bash
curl -X GET "https://api.ecarus.run/api/v1/remotecontrol/vehicles/KMHSH81C7LU123456/trunk/updates/stream" \
     -H "Authorization: Bearer sk_4f9c7b8e2d1a6c0f3e7a9b5d8c1e4f2a7c6d9e0b3f5a8c1d4e7f9b2c6a1e3d" \
     -H "Accept: text/event-stream"

Data Models

Trunk Control Request

json
{
  "action": "OPEN"
}

action: OPEN, CLOSE, STOP

Trunk Control Response

json
{
  "commandId": "cmd-uuid-12345",
  "vin": "KMHSH81C7LU123456",
  "status": "PENDING",
  "message": "Trunk control command received",
  "estimatedDuration": 10,
  "timestamp": "2026-01-12T14:30:00Z"
}

status: PENDING, PROCESSING, SUCCESS, FAILED, CANCELLED

Trunk Status Response

json
{
  "vin": "KMHSH81C7LU123456",
  "isOpen": false,
  "isLocked": true,
  "isMoving": false,
  "hasPowerTailgate": true,
  "openingHeight": 0,
  "lastAction": "CLOSE",
  "timestamp": "2026-01-12T14:30:00Z"
}

openingHeight: 0-100% (0=fully closed, 100=fully open)

Trunk Cancellation Request

json
{
  "correlationId": "uuid-12345678",
  "reason": "User cancellation",
  "force": false
}

reason: User cancellation, Safety stop, System error, Emergency stop
force: Force cancellation flag (true means immediate stop)

Trunk Control History Request (Query Parameters)

vin: KMHSH81C7LU123456
period: 24h
limit: 50
offset: 0

period: 1h, 24h, 7d, 30d

Trunk Control History Response

json
{
  "vin": "KMHSH81C7LU123456",
  "history": [
    {
      "commandId": "cmd-uuid-12345",
      "action": "OPEN",
      "timestamp": "2026-01-12T14:30:00Z",
      "status": "SUCCESS",
      "executionTime": 10,
      "userId": "user-123",
      "source": "APP"
    }
  ],
  "total": 1,
  "hasMore": false
}

source: APP, CALL_CENTER, SYSTEM
status: PENDING, PROCESSING, SUCCESS, FAILED, CANCELLED

Trunk Specification Response

json
{
  "vin": "KMHSH81C7LU123456",
  "trunkType": "POWER_TAILGATE",
  "maxOpeningHeight": 2000,
  "hasAntiPinch": true,
  "hasHandsFree": true,
  "loadCapacity": 500,
  "openingModes": ["MANUAL", "POWER", "HANDS_FREE"],
  "safetyFeatures": ["ANTI_PINCH", "OBSTACLE_DETECTION", "SPEED_LIMIT"]
}

trunkType: MANUAL, POWER_TAILGATE, ELECTRIC
maxOpeningHeight: Maximum opening height (mm)
loadCapacity: Maximum load capacity (kg)

Trunk Settings Response

json
{
  "vin": "KMHSH81C7LU123456",
  "trunk": {
    "remoteControlEnabled": true,
    "antiPinchSensitivity": "HIGH",
    "openSpeed": "SLOW",
    "autoCloseEnabled": true,
    "handsFreeEnabled": true
  },
  "safety": {
    "obstacleDetectionEnabled": true,
    "minSafeDistance": 75.0,
    "speedLimitEnabled": true,
    "maxOperatingSpeed": 5.0
  },
  "updatedTime": "2026-01-12T10:00:00Z"
}

antiPinchSensitivity: LOW, MEDIUM, HIGH
openSpeed: SLOW, NORMAL, FAST
maxOperatingSpeed: Maximum operating speed (km/h)

Trunk Control Diagnostics Response

json
{
  "vin": "KMHSH81C7LU123456",
  "systemStatus": "NORMAL",
  "components": [
    {
      "name": "Trunk Motor",
      "status": "ACTIVE",
      "health": 98,
      "lastMaintenance": "2025-06-15T00:00:00Z",
      "operatingHours": 850
    },
    {
      "name": "Anti-Pinch Sensor",
      "status": "ACTIVE",
      "health": 95,
      "lastCalibration": "2025-12-01T00:00:00Z",
      "sensitivityLevel": "HIGH"
    },
    {
      "name": "Obstacle Sensor",
      "status": "ACTIVE",
      "health": 100,
      "lastTest": "2026-01-10T14:30:00Z"
    }
  ],
  "alerts": [],
  "lastCheck": "2026-01-12T14:30:00Z"
}

systemStatus: NORMAL, WARNING, ERROR, OFFLINE
component.status: ACTIVE, INACTIVE, ERROR, MAINTENANCE_REQUIRED

Trunk Control Status Update (SSE)

json
{
  "type": "TRUNK_STATUS_UPDATE",
  "vin": "KMHSH81C7LU123456",
  "timestamp": "2026-01-12T14:30:10Z",
  "data": {
    "isOpen": true,
    "isLocked": false,
    "isMoving": false,
    "openingHeight": 100,
    "changeType": "OPENED"
  }
}

type: TRUNK_STATUS_UPDATE, TRUNK_COMMAND_RESULT, TRUNK_SAFETY_ALERT
changeType: OPENED, CLOSED, STOPPED, OBSTRUCTION_DETECTED, SAFETY_STOP

Security and Privacy

Authentication and Authorization

  • User authentication token required (JWT/OAuth2)
  • Vehicle access permission verification
  • Trunk control permission verification
  • Two-factor authentication (MFA) support

Data Security

  • All API communication encrypted with HTTPS/TLS
  • Command Signing to prevent command forgery
  • mTLS-based communication security

Privacy Protection

  • Explicit consent for vehicle control history collection
  • Specify purpose of location information collection
  • Compliance with command execution history retention period policy

Access Control

  • VIN-based vehicle access permission verification
  • Multi-factor authentication requirement
  • Command Rate Limit application
  • Location-based restriction (Geo-fencing)

Exception Handling

  • Connection Failure: Support offline mode, cache last status
  • Slow Response: Loading indicator, timeout handling
  • Server Down: Display error message, suggest retry
  • Vehicle Offline: Notify command transmission failure, queue processing
  • During Driving: Notify function limitations, display guidance message
  • Low Battery: Notify electric tailgate operation limitations
  • Authentication Failure: Request re-authentication, guide security enhancement
  • No Permission: Clearly display lack of permission reasons
  • Location Limitation: Notify control limitations outside Geo-fencing
  • Physical Obstacle: Notify trunk actuator error
  • Timeout: Notify Command TTL expiration
  • Partial Success: Detailed guidance when only some functions operate

Test Setup

Base URL: https://api.ecarus.run/api/v1/remotecontrol
Authentication Token: sk_4f9c7b8e2d1a6c0f3e7a9b5d8c1e4f2a7c6d9e0b3f5a8c1d4e7f9b2c6a1e3d
Sample VIN: KMHSH81C7LU123456

Use Swagger UI for interactive API testing. Jennifer

Deployment Considerations

App Store Registration

  • Request vehicle control permissions
  • Request biometric authentication permissions
  • Clear description of location information collection
  • Compliance with personal information protection laws
  • Check vehicle security related regulations
  • Compliance with Command Audit Log related laws

Vehicle Compatibility

  • Support various vehicle models
  • Function differences based on electric tailgate presence
  • Consider OEM-specific trunk control method differences

Released under the MIT License.