---
title: "Parse contract"
method: POST
path: "/v1/billValidation/parseContract"
tags: ["Bill Validation", "Contract Parsing"]
---

# Parse contract

`POST /v1/billValidation/parseContract`

Upload and process a UK energy supplier contract (PDF or images) to extract contract details, supply points (MPANs/MPRNs), and associated tariff information.

## Response `200`

Contract successfully parsed

- ContractData
  - `customerType` 'domestic' | 'non_domestic', nullable — Customer classification - residential (domestic) or business (non_domestic)
  - `supplierAccountNumber` string, nullable — Supplier account number
  - `supplierName` string, nullable — Name of the supplier
  - `supplierAddress` string, nullable — Supplier's full address
  - `supplierCode` string, nullable — Supplier code
  - `customerName` string, nullable — Name of the customer
  - `billingAddress` string, nullable — Address where bills are sent (customer's address)
  - `contractNumber` string, nullable — Contract number
  - `contractStartDate` string, date, nullable — Contract start date (YYYY-MM-DD)
  - `contractEndDate` string, date, nullable — Contract end date (YYYY-MM-DD)
  - `cclRate` number, nullable — Climate Change Levy (CCL) rate
  - `isFixedContract` boolean, nullable — Whether this is a fixed-rate contract
  - `isMarketRates` boolean, nullable — Whether this contract uses market rates
  - `isMicroBusiness` boolean, nullable — Whether the customer is classified as a micro business
  - `paymentMethod` string, nullable — Payment method
  - `contractTermMonths` number, nullable — Contract term in months
  - `supplyPoints` object[], nullable — Array of supply points in the contract
    - `mpanMprn` string, nullable — MPAN (13 digits for electricity) or MPRN (6-10 digits for gas)
    - `supplyType` 'electricity' | 'gas', nullable — Type of supply
    - `meterSerialNumber` string, nullable — Meter serial number
    - `siteName` string, nullable — Name of the site
    - `siteAddress` string, nullable — Address of the site
    - `tariffName` string, nullable — Full name of the tariff
    - `isNonContractedRate` boolean, nullable — True if rates are out of contract or deemed rates
    - `standingCharge` number, nullable — Standing charge in pence per day (p/day)
    - `standingChargeType` string, nullable — Standing charge type
    - `unitRate` number, nullable — Single unit rate in pence per kWh (p/kWh)
    - `dayUnitRate` number, nullable — Day unit rate in pence per kWh (p/kWh)
    - `nightUnitRate` number, nullable — Night unit rate in pence per kWh (p/kWh)
    - `estimatedAnnualConsumption` number, nullable — Estimated annual consumption in kWh
    - `previous12MonthsConsumption` number, nullable — Previous 12 months consumption in kWh
    - `maximumImportCapacity` number, nullable — Maximum import capacity in kVA
    - `capacityRate` number, nullable — Capacity charge rate in pence per kVA per day (p/kVA/day)
    - `directDebitDiscount` number, nullable — Direct debit discount percentage
    - `brokerName` string, nullable — Name of the energy broker
    - `brokerUplift` number, nullable — Broker uplift in pence per kWh (p/kWh)
    - `vatRate` number, nullable — VAT rate percentage

## Other responses

- `400` — Bad request - Invalid input
- `401` — Unauthorized - Authentication required
- `500` — Server error
- `4XX` — Client error response

---

[API](https://skmtc.net/voltview/apis/voltview-api.md) · [All operations](https://skmtc.net/voltview/apis/voltview-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/voltview/voltview-api/revisions/d90c739b55df/schema)
