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

# The Reservation object

<div className="xl:hidden">
  <CodeGroup>
    ```json The Reservation object theme={null}
    {
        "id": "res_nfJiRR1ok35nSfnIpS4tC7SAsUk0K3As",
        "object": "reservation",
        "cancellation_policy": {
            "free_until_before": 1800,
            "type": "free_cancellation"
        },
        "charging_station": "chst_AwAMEuLnH0Umz3DhtEjEaHACtMcscDDY",
        "confirmed_at": "2026-04-01T01:04:32.666Z",
        "connector_type": ["CCS"],
        "created": "2026-04-01T00:36:20.907Z",
        "currency": "eur",
        "driver": "drv_OAVzBPkaauGK3svjp2YxHyGkZxPjIuSB",
        "earliest_start": null,
        "failed_reason": null,
        "ideal_end": "2026-04-01T03:06:35.302Z",
        "ideal_start": "2026-04-01T01:36:39.198Z",
        "latest_end": null,
        "location": {
            "latitude": 48.8698,
            "longitude": 2.3319,
            "radius": 1500
        },
        "metadata": {},
        "payment_method": "pm_ifwG4OMNnEmqjpi7cP8EJvxiRZAzGOEX",
        "reservation_fee": 1200,
        "reserved_end": "2026-04-01T03:06:19.700Z",
        "reserved_start": "2026-04-01T01:36:39.901Z",
        "status": "confirmed",
        "updated": "2026-04-01T01:10:19.775Z",
        "vehicle": "veh_O3C7oq0HKOkNlpzokFN5eTTVWImdeLKy"
    }
    ```
  </CodeGroup>
</div>

<div className="hidden xl:block">
  <ResponseExample>
    ```json The Reservation object theme={null}
    {
        "id": "res_nfJiRR1ok35nSfnIpS4tC7SAsUk0K3As",
        "object": "reservation",
        "cancellation_policy": {
            "free_until_before": 1800,
            "type": "free_cancellation"
        },
        "charging_station": "chst_AwAMEuLnH0Umz3DhtEjEaHACtMcscDDY",
        "confirmed_at": "2026-04-01T01:04:32.666Z",
        "connector_type": ["CCS"],
        "created": "2026-04-01T00:36:20.907Z",
        "currency": "eur",
        "driver": "drv_OAVzBPkaauGK3svjp2YxHyGkZxPjIuSB",
        "earliest_start": null,
        "failed_reason": null,
        "ideal_end": "2026-04-01T03:06:35.302Z",
        "ideal_start": "2026-04-01T01:36:39.198Z",
        "latest_end": null,
        "location": {
            "latitude": 48.8698,
            "longitude": 2.3319,
            "radius": 1500
        },
        "metadata": {},
        "payment_method": "pm_ifwG4OMNnEmqjpi7cP8EJvxiRZAzGOEX",
        "reservation_fee": 1200,
        "reserved_end": "2026-04-01T03:06:19.700Z",
        "reserved_start": "2026-04-01T01:36:39.901Z",
        "status": "confirmed",
        "updated": "2026-04-01T01:10:19.775Z",
        "vehicle": "veh_O3C7oq0HKOkNlpzokFN5eTTVWImdeLKy"
    }
    ```
  </ResponseExample>
</div>

This object represents a reservation in Charge. It captures a request to reserve charging capacity for a driver and vehicle within a requested time window. Reservations begin in `pending` and move through confirmation, completion, cancellation, failure, or expiration as Charge processes them.

## Attributes

<ResponseField name="id" type="string" required>
  Unique identifier for the object.
</ResponseField>

<ResponseField name="charging_station" type="string | null" post={[<Tooltip tip="This can be expanded into an object with the expand request parameter."><a href="/expand" className="charge-expandable-label">Expandable</a></Tooltip>]}>
  ID of the assigned charging station, once the reservation is confirmed.
</ResponseField>

<ResponseField name="driver" type="string" post={[<Tooltip tip="This can be expanded into an object with the expand request parameter."><a href="/expand" className="charge-expandable-label">Expandable</a></Tooltip>]}>
  ID of the driver associated with the reservation.
</ResponseField>

<ResponseField name="ideal_end" type="string" required>
  Ideal reservation end time (requested by driver). RFC 3339 UTC timestamp with millisecond precision, e.g. `2026-03-03T14:05:23.789Z`.
</ResponseField>

<ResponseField name="ideal_start" type="string" required>
  Ideal reservation start time (requested by driver). RFC 3339 UTC timestamp with millisecond precision, e.g. `2026-03-03T14:05:23.789Z`.
</ResponseField>

<ResponseField name="status" type="string" required>
  Current status of the reservation.

  Available options: `pending`, `confirmed`, `completed`, `cancelled`, `failed`, `expired`
</ResponseField>

<ResponseField name="vehicle" type="string" post={[<Tooltip tip="This can be expanded into an object with the expand request parameter."><a href="/expand" className="charge-expandable-label">Expandable</a></Tooltip>]}>
  ID of the vehicle associated with the reservation.
</ResponseField>

## More attributes

<ResponseField name="object" type="string" required>
  String representing the object's type.

  Available options: `reservation`
</ResponseField>

<ResponseField name="cancellation_policy" type="object">
  Cancellation rules for the reservation.

  <Expandable title="properties">
    <ResponseField name="free_until_before" type="integer">
      Time in seconds before reservation start when cancellation is free.
    </ResponseField>

    <ResponseField name="type" type="string" required>
      Type of cancellation policy applied to this reservation.

      Available options: `free_cancellation`, `non_refundable`
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="confirmed_at" type="string | null">
  Time when reservation status changed to `confirmed`. RFC 3339 UTC timestamp with millisecond precision, e.g. `2026-03-03T14:05:23.789Z`.
</ResponseField>

<ResponseField name="connector_type" type="array of string">
  Acceptable connector types for charging.
</ResponseField>

<ResponseField name="created" type="string" required>
  Time at which the reservation was created. RFC 3339 UTC timestamp with millisecond precision, e.g. `2026-03-03T14:05:23.789Z`.
</ResponseField>

<ResponseField name="currency" type="string">
  ISO 4217 currency code for the reservation fee.
</ResponseField>

<ResponseField name="earliest_start" type="string | null">
  Earliest acceptable reservation start time. RFC 3339 UTC timestamp with millisecond precision, e.g. `2026-03-03T14:05:23.789Z`.
</ResponseField>

<ResponseField name="failed_reason" type="string | null">
  Reason why reservation failed, if applicable.

  Available options: `no_available_connectors`, `payment_failed`, `other`
</ResponseField>

<ResponseField name="latest_end" type="string | null">
  Latest acceptable reservation end time. RFC 3339 UTC timestamp with millisecond precision, e.g. `2026-03-03T14:05:23.789Z`.
</ResponseField>

<ResponseField name="location" type="object">
  Geographic area where Charge should search for a station.

  <Expandable title="properties">
    <ResponseField name="latitude" type="number" required>
      Latitude of the search area center point.
    </ResponseField>

    <ResponseField name="longitude" type="number" required>
      Longitude of the search area center point.
    </ResponseField>

    <ResponseField name="radius" type="integer" required>
      Radius around the location in meters.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="metadata" type="object">
  Set of key-value pairs that you can attach to an object.
</ResponseField>

<ResponseField name="payment_method" type="string" post={[<Tooltip tip="This can be expanded into an object with the expand request parameter."><a href="/expand" className="charge-expandable-label">Expandable</a></Tooltip>]}>
  ID of the payment method used for the reservation fee.
</ResponseField>

<ResponseField name="reservation_fee" type="integer">
  Reservation fee amount in the smallest currency unit.
</ResponseField>

<ResponseField name="reserved_end" type="string | null">
  Finalized end time after confirmation. RFC 3339 UTC timestamp with millisecond precision, e.g. `2026-03-03T14:05:23.789Z`.
</ResponseField>

<ResponseField name="reserved_start" type="string | null">
  Finalized start time after confirmation. RFC 3339 UTC timestamp with millisecond precision, e.g. `2026-03-03T14:05:23.789Z`.
</ResponseField>

<ResponseField name="updated" type="string" required>
  Time at which the reservation was last updated. RFC 3339 UTC timestamp with millisecond precision, e.g. `2026-03-03T14:05:23.789Z`.
</ResponseField>
