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

# Price checks

> Check the current automatic price before you create an order.

Price checks are optional. Call `POST /v2/price-checks` when a user needs to see an automatic price before confirming the transport.

The request uses the route, vehicles, and service options. A price check does not need a VIN, but order creation still follows the vehicle identity rules.

## Read the result

| Status                  | Meaning                                              | Customer action                                |
| ----------------------- | ---------------------------------------------------- | ---------------------------------------------- |
| `available`             | The response contains an automatic price.            | Show the price and continue to order creation. |
| `custom_quote_required` | Automatic pricing is not available for this request. | Offer a manual next step or contact Bahn.      |

An available response contains the complete price breakdown.

```json theme={null}
{
  "status": "available",
  "ordered_for": null,
  "price": {
    "currency": "EUR",
    "total_cents": 45900,
    "transport_cents": 43900,
    "additional_fees_cents": 2000,
    "trade_in_cents": 0
  },
  "estimated_pickup_at": "2026-08-03T08:00:00+03:00",
  "estimated_delivery_at": "2026-08-03T13:15:00+03:00"
}
```

Money values use integer cents. The currency is `EUR`.

## Create the order

The price check is a calculation, not a quote object. It has no ID or expiry workflow, and the order request does not refer back to it.

Order creation calculates the price again. Always use the accepted price from the created order as the order price.

You can create an order without a price check.

## Handle a custom quote result

A `custom_quote_required` response has a `null` price. It can still contain estimated pickup and delivery times, so do not treat it as an invalid route.

Contact `support@bahnexpress.com` if you want to request a custom quote. Bahn does not guarantee that it can provide one.

An ordering channel must send the same `ordered_for` value in the price check and order request.
