> ## Documentation Index
> Fetch the complete documentation index at: https://developer.easyparkgroup.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Update cars features

> Updates the enabled features (Leasing, CameraPark Fleet, etc.) of existing cars on the global allowlist.

Returns HTTP 204 with no response body if all cars were updated successfully, or HTTP 207 if
one or more items failed. Check the `failures` field for any cars that could not be updated.
Cars not present in `failures` were successfully updated.




## OpenAPI

````yaml patch /api/cars
openapi: 3.1.0
info:
  title: Partner API
  description: >
    The Partner API provides a suite of endpoints designed to help partners and
    customers to manage users, vehicles and billing records seamlessly.

    Note: These endpoints are currently available in Europe, with expansion to
    new regions planned for 2026.


    ## Getting started & onboarding


    To begin integrating with our endpoints, you will need access to our
    environments. Please follow these steps:
      1. Request access: Contact us at api-developer-portal@arrive.com or reach out to your designated point of contact.
      1. Testing & Staging: Once registered, you will be provided with credentials for our Staging environment. This allows you to test your integration end-to-end in a safe, isolated environment.
      1. Production: After successful testing in Staging, your point of contact will guide you through the promotion to the Production environment.

    Requests and responses are in JSON format.


    ## Request timeout


    All the endpoints have a default timeout of 60 seconds.


    ## Errors


    All errors match the standard response for errors as defined by the Problem
    Details for HTTP APIs specification <a
    href="https://datatracker.ietf.org/doc/html/rfc9457">RFC 9457</a>:


    ```json
        {
          "type": "https://developer.easyparkgroup.com/openapi/fleet/overview/",
          "title": "Forbidden",
          "status": 403,
          "detail": "Access denied",
          "instance": "/api/billing-accounts",
          "timestamp": 1771232045624,
          "traceId": "55a47f36-cea3-4b01-92b6-8295c02ac302"
        }
    ```
  version: '2026.01'
servers:
  - url: https://fleet.staging.ezprk.dev
    description: Staging
  - url: https://fleet.europe.ezprk.net
    description: Production
security: []
tags:
  - name: Billing Accounts
    description: Query Billing Accounts and their Billing Info Records.
  - name: Login
    description: Authenticate with the EasyPark API
  - name: Cars allowlist / Global
    description: >-
      A single allowlist applies across all customers connected to your
      integration. Any vehicle added to the allowlist is permitted for all
      customers under that integration. Use this if you manage a unified fleet
      and want one centralized list of approved vehicles.
  - name: Cars allowlist
    description: >
      Cars allowlist allows partners and customers to manage which vehicles are
      permitted to park under an account. By maintaining an allowlist of
      approved vehicles, you ensure that only authorized cars can be associated
      with a fleet.


      ## Two allowlist modes


      The API functionality supports two modes, and the right one depends on how
      your integration is structured:


      **Global allowlist** - A single allowlist applies across all customers
      connected to your integration. Any vehicle added to the allowlist is
      permitted for all customers under that integration. Use this if you manage
      a unified fleet and want one centralized list of approved vehicles.


      **Single Billing Account allowlist** - Each customer connected to your
      integration has their own individual allowlist. Vehicles must be added per
      customer, and a vehicle permitted for one customer is not automatically
      permitted for others. Use this if you manage multiple customers with
      distinct fleets that should remain separated.


      If you are unsure which mode applies to your integration, check with the
      team that set up your API access - the mode is defined at the integration
      level.
  - name: Cars allowlist / Single Billing Account
    description: >-
      Each customer connected to your integration has their own individual
      allowlist. Vehicles must be added per customer, and a vehicle permitted
      for one customer is not automatically permitted for others. Use this if
      you manage multiple customers with distinct fleets that should remain
      separated.
paths:
  /api/cars:
    patch:
      tags:
        - Cars allowlist / Global
      summary: Update cars features
      description: >
        Updates the enabled features (Leasing, CameraPark Fleet, etc.) of
        existing cars on the global allowlist.


        Returns HTTP 204 with no response body if all cars were updated
        successfully, or HTTP 207 if

        one or more items failed. Check the `failures` field for any cars that
        could not be updated.

        Cars not present in `failures` were successfully updated.
      operationId: updateCars
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/UpdateCarFeaturesRequest'
        required: true
      responses:
        '204':
          description: All items processed successfully
        '207':
          description: One or more items failed - see failures list
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/CarsResponse'
        '400':
          description: Invalid request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ErrorResponseSchema'
        '401':
          description: Missing or invalid JWT
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ErrorResponseSchema'
        '403':
          description: Insufficient permissions
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ErrorResponseSchema'
      security:
        - jwt: []
components:
  schemas:
    UpdateCarFeaturesRequest:
      type: object
      properties:
        licenseNumber:
          type: string
        features:
          type: array
          items:
            type: string
            enum:
              - LEASING
              - CPF
          uniqueItems: true
    CarsResponse:
      type: object
      properties:
        failures:
          type: array
          items:
            $ref: '#/components/schemas/CarFailure'
    ErrorResponseSchema:
      type: object
      description: RFC 9457 Problem Details error response
      properties:
        type:
          type: string
          description: URI reference identifying the problem type
          example: https://developer.easyparkgroup.com/openapi/fleet/overview/
        title:
          type: string
          description: Short, human-readable summary of the problem
          example: Forbidden
        status:
          type: integer
          format: int32
          description: HTTP status code
          example: 403
        detail:
          type: string
          description: Human-readable explanation specific to this occurrence
          example: Access denied
        instance:
          type: string
          description: URI reference identifying the specific occurrence
          example: /api/billing-accounts
        timestamp:
          type: integer
          format: int64
          description: Unix epoch milliseconds when the error occurred
          example: 1771232045624
        traceId:
          type: string
          description: Trace ID for correlating logs
          example: 55a47f36-cea3-4b01-92b6-8295c02ac302
    CarFailure:
      type: object
      properties:
        licenseNumber:
          type: string
        error:
          type: string
  securitySchemes:
    jwt:
      type: http
      description: You can get the JWT from the Login endpoint
      scheme: bearer
      bearerFormat: Bearer JWT

````