---
title: "Submit a selection Vwala will switch on the customer's behalf"
method: POST
path: "/v1/checkout"
tags: ["Checkout"]
---

# Submit a selection Vwala will switch on the customer's behalf

`POST /v1/checkout`

## Request body

- object
  - `selection` object[], required — The chosen Product Versions — at most one per energy type.
    - `energyType` 'ELECTRICITY' | 'GAS', required
    - `productVersionId` string, uuid, required
  - `context` object, required
    - `meterType` 'Digital' | 'Analog', nullable
    - `currentMerchants` object
      - `electricity` string, nullable
      - `gas` string, nullable
  - `intake` object, required — What the comparison was run against. Re-priced server-side at submit and snapshotted onto each Submission.
    - `supplyPoint` object, required
      - `postalCode` string, required
      - `city` string, required
      - `residential` boolean
      - `meterType` 'Digital' | 'Analog', nullable
      - `tariffType` 'enkelvoudig' | 'tweevoudig' | 'nachtmeter', nullable
    - `consumption` object
      - `electricity` object, nullable
        - `consumptionTotalKwh` number, required
        - `consumptionDayKwh` number, nullable
        - `consumptionNightKwh` number, nullable
        - `injectionTotalKwh` number, nullable
        - `injectionDayKwh` number, nullable
        - `injectionNightKwh` number, nullable
        - `peakConsumptionKw` number, nullable
      - `gas` object, nullable
        - `consumptionTotalKwh` number, required
    - `referenceCost` object — The customer's current yearly cost per fuel. Savings can only be computed for a fuel this is supplied for.
      - `electricity` object, nullable
        - `yearlyInclVat` number, nullable
        - `currentMerchant` string, nullable
        - `currentProduct` string, nullable
      - `gas` object, nullable
        - `yearlyInclVat` number, nullable
        - `currentMerchant` string, nullable
        - `currentProduct` string, nullable
  - `customer` object, required — The customer the merchant will contract with. Stored so Vwala ops can submit the switch on their behalf.
    - `firstName` string, required
    - `lastName` string, required
    - `email` string, email, required
    - `mobilePhone` string, required
    - `address` string, required
    - `iban` string, required
  - `eans` object
    - `electricity` string, nullable
    - `gas` string, nullable
  - `paymentMethod` 'DIRECT_DEBIT' | 'BANK_TRANSFER', required
  - `billingPreference` 'ADVANCE_INVOICE' | 'MONTHLY_SETTLEMENT', required
  - `contractStartDate` string, date-time, required
  - `consentGiven` true, required
  - `consentGivenAt` string, date-time, required

## Response `201`

Default Response

- SubmittedCheckout
  - `checkoutId` string, uuid, required — Groups the Submissions this request wrote — one per energy type. Quote it when asking Vwala about the switch.
  - `submissionIds` string[], required — One Submission per energy type, in the order they were recorded.

## Other responses

- `400` — Default Response
- `401` — Default Response
- `403` — Default Response
- `422` — Default Response
- `5XX` — Default Response

## Changes

- **2026-08-20** `86688c4fea92` — 22 breaking, 10 warning, 4 info
  - request property `billingPreference` was restricted to a list of enum values
  - the request property `billingPreference` became required
  - the request property `contractStartDate` became required
  - the request property `customer/address` became required
  - …32 more
- **2026-08-18** `0faefa545909` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/vwala/apis/energy-platform-api/changes/v1/checkout/post.md)

---

[API](https://skmtc.dev/vwala/apis/energy-platform-api.md) · [All operations](https://skmtc.dev/vwala/apis/energy-platform-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/vwala/energy-platform-api/revisions/86688c4fea92/schema)
