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

# Change Log

> A log of changes to the Tariff Interoperability API spec

| Version  | Date       | Summary                                           |
| -------- | ---------- | ------------------------------------------------- |
| 0.1.1.AE | 2026-03-27 | First cleanup and proposed changes by Auth Energy |
| 0.1.0    | 2026-03-26 | Generated from public material                    |

***

## v0.1.1.AE

| #  | Category     | Change                                                                     | Detail                                                                                                                                                                                                               |
| -- | ------------ | -------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 1  | Endpoints    | `/registerResponse` renamed to `/consent`                                  | REST-idiomatic resource path replacing a verb-phrase URL                                                                                                                                                             |
| 2  | Endpoints    | `/v1/tariff/{mpid}/{tariff_id}/consumer` renamed to `/v1/tariff/customer`  | No path params needed; OAuth token provides sufficient consumer identity                                                                                                                                             |
| 3  | Endpoints    | `GET /v1/users/{user_id}` added                                            | Retrieve a single RTI User by ID; same public / supplier-auth access split as `GET /v1/users`                                                                                                                        |
| 4  | Endpoints    | API versioning added                                                       | All paths prefixed with `/v1`                                                                                                                                                                                        |
| 5  | Endpoints    | Pagination added to `GET /v1/suppliers` and `GET /v1/tariff/{mpid}`        | `limit` / `offset` query params and `PaginationMeta` response object (`total`, `limit`, `offset`, `next_offset`) added                                                                                               |
| 6  | Endpoints    | Per-operation server overrides added                                       | `GET /v1/suppliers`, `GET /v1/users`, `GET /v1/users/{user_id}` pinned to `https://register.tariff.interop`; all tariff, consent, webhook, and report endpoints pinned to `https://example-supplier.co.uk`           |
| 7  | Endpoints    | Webhook timescale set for `tariff.change` / `tariff.update`                | Was `TBC`; set to 60 minutes                                                                                                                                                                                         |
| 8  | Endpoints    | Nine filter query params added to `GET /v1/tariff/{mpid}`                  | `tariff_type`, `fuel_type`, `energy_flow`, `payment_method`, `ldz_region`, `meter_type`, `customer_type`, `valid_from`, `valid_to`                                                                                   |
| 9  | Schemas      | `tariff_id` changed to prefixed compact UUID                               | Pattern `^trf_[0-9a-f]{32}$`; supplier-generated; prefixed with `trf_`                                                                                                                                               |
| 10 | Schemas      | `user_id` changed to prefixed compact UUID                                 | Pattern `^usr_[0-9a-f]{32}$`; RECCo-generated; prefixed with `usr_`                                                                                                                                                  |
| 11 | Schemas      | `WebhookId` changed to `format: uuid`                                      | Example updated to a valid UUID                                                                                                                                                                                      |
| 12 | Schemas      | `registration_id` changed to `format: uuid`                                | Applied to consent response body and `DELETE /v1/consent/{registration_id}` path parameter                                                                                                                           |
| 13 | Schemas      | `Region` replaced by `LdzRegion`                                           | Collapsed dual integer/string encoding into a single string enum (SC, NO, NE, NWT, WMD, EM, EA, NT, SO, SE, WN, WW, SW); field renamed `ldz_region` throughout                                                       |
| 14 | Schemas      | `TariffRate` replaced with FlatPeak rate structure                         | New hierarchy: `TariffScheduleEntry` → `DaysAndHours` → `HourlyRate` → `RateTier`; field on `TariffDetail` named `rates`                                                                                             |
| 15 | Schemas      | `unit_price` and `standing_charge` changed to decimal strings              | `type: string` with pattern `^\d+\.\d{2,5}$`; 2 to 5 decimal places; avoids floating-point rounding errors                                                                                                           |
| 16 | Schemas      | `PerformanceReport` redesigned                                             | `availability` and `success` changed from opaque strings to typed floats (`availability_pct`, `success_pct`); `response_times` replaced with `response_time_ms` object with typed `p50`, `p95`, `p99` integer fields |
| 17 | Schemas      | `TariffVersion` added                                                      | Integer field for tracking descriptive-only corrections to a tariff; prices or time changes require a new tariff                                                                                                     |
| 18 | Schemas      | `UserStatus` enum added                                                    | Values: `active`, `suspended`, `disabled`, `removed`; used on both `SupplierRegisterEntry` and `RtiUserRegisterEntry`                                                                                                |
| 19 | Schemas      | `SupportContact` type added                                                | Freeform string for email, URL, or telephone; required on both supplier and RTI User records                                                                                                                         |
| 20 | Schemas      | `display_name` added to `SupplierRegisterEntry` and `RtiUserRegisterEntry` | Required short trading name for display to consumers; separate from legal `name` on RTI User                                                                                                                         |
| 21 | Schemas      | `MeterType` enum added                                                     | Values: `single_rate`, `multi_rate`, `smart`, `prepayment`; added to `TariffDetail` and `TariffSummary`                                                                                                              |
| 22 | Schemas      | `CustomerType` enum added                                                  | Values: `residential`, `business`; added to `TariffDetail` and `TariffSummary`                                                                                                                                       |
| 23 | Schemas      | `vat_included` added to `TariffDetail`                                     | Boolean; indicates whether prices include VAT                                                                                                                                                                        |
| 24 | Schemas      | `vat_rate` added to `TariffDetail`                                         | Integer 0–100; required when `vat_included` is `false`; standard domestic electricity rate is 5%                                                                                                                     |
| 25 | Schemas      | `TariffSummary` extended                                                   | Added `tariff_type`, `fuel_type`, `meter_type`, `customer_type` to the lightweight listing record                                                                                                                    |
| 26 | Schemas      | `FuelType` enum values changed                                             | From single-character `E` / `G` to full words `electricity` / `gas`                                                                                                                                                  |
| 27 | Schemas      | `EnergyFlow` enum values changed                                           | From single-character `I` / `E` to full words `import` / `export`                                                                                                                                                    |
| 28 | Servers      | Supplier server URL set                                                    | `https://energy.supplier` placeholder replaced with `https://example-supplier.co.uk`                                                                                                                                 |
| 29 | Descriptions | Warning added to `/v1/consent` endpoints                                   | Flags that the consent mechanism may be out of scope if customer-specific tariffs are removed from Phase 1                                                                                                           |
| 30 | Cleanup      | Tags renamed to plain English                                              | Registry, Tariffs, Consumer Tariffs, Consent, Webhooks, Reporting                                                                                                                                                    |
| 31 | Cleanup      | Schema names rationalised                                                  | `TariffEventNotification` → `TariffEvent`; `MeteringPointEnergyFlow` → `EnergyFlow`; `HighResDatetime` → `Timestamp`                                                                                                 |
| 32 | Cleanup      | EMDS internal reference codes stripped                                     | `DI90061`, `DIYYYY9` etc. removed from all field descriptions                                                                                                                                                        |
| 33 | Cleanup      | `MMXXXX` / `SVZZZZ` catalogue codes removed                                | Removed from all operation summaries and descriptions                                                                                                                                                                |
| 34 | Cleanup      | `£` symbols replaced with `GBP`                                            | Avoids encoding issues in downstream tooling                                                                                                                                                                         |
| 35 | Fix          | `requestBody` on `POST /consent` corrected                                 | Added required `content` property; `required: false` alone is not valid OpenAPI 3.x                                                                                                                                  |
| 36 | Fix          | OAuth `authorizationUrl` / `tokenUrl` corrected                            | Replaced URI templates with concrete placeholder URLs; OpenAPI does not permit templates in `securitySchemes`                                                                                                        |

***

## v0.1.0

Initial draft spec constructed from public RECCo source material:

* **Annex D** — Draft REC Tariff Interoperability Arrangements Schedule
* **Annex E** — Draft TI API Technical Specification and Energy Market Data Specification Changes
* **RECCo TI Project page** — retailenergycode.co.uk
