---
title: "Submit IF-041 with Event Code SupplierAgreedCOS message for validation"
method: POST
path: "/validate/IF-041/SupplierAgreedCOS"
tags: ["DIP Message Validation Endpoints"]
---

# Submit IF-041 with Event Code SupplierAgreedCOS message for validation

`POST /validate/IF-041/SupplierAgreedCOS`

## Request

- Base URL: `https://dip-api-documentation.elexon.co.uk`
- URL: `https://dip-api-documentation.elexon.co.uk/validate/IF-041/SupplierAgreedCOS`
- Auth: API key in header `X-API-Key`

Allows a Market Participant to validate a single messages for debugging purposes only

## Request body

- object[]
  - `payload` IF041Payload: IF041 Smart/Advanced Readings
    - `CommonBlock` object, required: MHHS Common Block for IF-041
      - `S0` object, required: Sender Header block
        - `interfaceID` 'IF-041', required
        - `schemaVersion` '011', required: Version of the message schema used in the exchange
        - `eventCode` '[ReadingRemote]' | '[ReadingRemv]' | '[ReadingInstl]' | '[ReadingEnergisationChg]' | '[ReadingCOR]' | '[ReadingOnSite]' | '[ReadingCOS]' | '[DSEstimate]' | '[SupplierAgreedCOS]' | '[ReadingOverride]', required
      - `S1` S1, required: Sender Common block
        - `environmentTag` 'PRD' | 'SITB' | 'SIT' | 'UIT' | 'DEV', required: Environment Tag
        - `subText` string, nullable, required: SubText
        - `senderUniqueReference` string, required: Sender Unique Reference
        - `senderTimestamp` string, required: ISO 8601 Date/time
        - `senderDIPID` string, required: DIP Participant Id
        - `senderRoleID` string, required: DIP Participant Role
        - `senderCorrelationID` string, nullable, required: Correlation Id
        - `DIPConnectionProviderID` string, nullable, required: DIP Participant Id
      - `A0` A0: Addressing block
        - `primaryRecipients` DT006NDIPParticipantID[], required: Primary Recipient - array of Ids; set by Sender
        - `secondaryRecipients` DT006NDIPParticipantID[], required: Secondary Recipient - array of Ids; set by DIP
        - `always` DT006NDIPParticipantID[], required: Always Recipient - array of Ids; set by DIP
      - `D0` D0: DIP Block
        - `transactionID` string, required: Transaction ID
        - `transactionTimestamp` string, required: ISO 8601 Date/time
        - `publicationID` string, required: DIP Publication ID
        - `initialCorrelationID` string, nullable, required: Correlation Id
        - `replayIndicator` boolean, required: Set by the DIP to denote that a txn is being replayed
        - `serviceTicketURL` string, nullable, required: URL
      - `M0` M0, required: MPAN Core
        - `MPANCore` string, required: MPAN Core
        - `distributorDIPID` string, required: DIP Participant Id
        - `GSPGroupID` '_A' | '_B' | '_C' | '_D' | '_E' | '_F' | '_G' | '_H' | '_J' | '_K' | '_L' | '_M' | '_N' | '_P', required: Identifies the distinct grid supply point group (physical region of the country) where the metering point is located.
    - `CustomBlock` object, required: IF041 Custom data block
      - `B064List` B064[]
        - `meterID` string, required: Meter ID
        - `cumulativeRegisterReading` string, required: kWh Consumption (9,3) format - leading
        - `cumulativeRegisterReadingDateTime` string, required: ISO 8601 Date/time
        - `readingMethod` 'A' | 'C' | 'E' | 'S', required: Indicates how the meter reading was obtained
        - `siteVisitCheckCode` '01' | '02' | '03' | '04' | '05' | '06' | '07' | '08' | '09' | '10' | '11' | '13' | '14' | '15' | '16' | '17' | '18' | '19' | '20' | '21' | '22' | '23' | '24' | '25' | '26' | '27' | '28' | '29' | '30' | '31' | '32' | '33' | '34' | '35' | '36' | '37' | '38' | '39' | '40' | '41' | '42' | '43' | '44' | '50' | '51' | '52' | '53' | '54' | '55' | '56' | '57' | '58' | '88' | '89', nullable, required: A code identifying either nature of checks made/to be made on metering equipment during a site visit or identifying reason for failure to obtain readings.
      - `B065List` B065[]
        - `meterID` string, required: Meter ID
        - `configurableRegisterReadingDate` string, required: ISO 8601 Date/time
        - `configurableRegisterID` string, required: Register ID relating to a specific configurable (billing) register on a Smart Meter
        - `configurableRegisterReading` string, required: kWh Consumption (9,3) format - leading

## Response `201`

Message OK

- string

## Other responses

- `400`: Bad Request
- `500`: Internal Server Error

---

[API](https://skmtc.dev/elexon/apis/mhhs-dip.md) - [All operations](https://skmtc.dev/elexon/apis/mhhs-dip/llms.txt) - [OpenAPI document](https://skmtc.dev/elexon/apis/mhhs-dip/revisions/d9dfdef064ae?raw)
