Pacific Gas and Electric · AsyncAPI Specification

Pge Share My Data Notifications

Version

View Spec View on GitHub EnergyUnited StatesUtilitiesElectricityGasCaliforniaSmart MeteringGreen ButtonESPIEnergy DataGridDemand ResponseInvestor-Owned UtilityAsyncAPIWebhooksEvents

AsyncAPI Specification

Raw ↑
generated: '2026-07-27'
method: searched
source: >-
  https://www.pge.com/en/save-energy-and-money/energy-saving-programs/smartmeter/third-party-companies.html
  (HTTP 200, fetched 2026-07-27) and PG&E Supported-APIs.pdf.
spec_type: none
spec_type_note: >-
  PG&E publishes NO AsyncAPI document for this callback surface, and no
  AsyncAPI, EventBridge schema or webhook JSON schema was found on any PG&E
  host. This artifact is the captured webhook/event catalog, derived from PG&E's
  own published description of the notification model — it is NOT a fabricated
  AsyncAPI.
description: >-
  Share My Data has a real push surface. Every third party registers a
  Notification URI, and PG&E POSTs to it when an authorization changes, when an
  asynchronous (Batch) request has been prepared, and — for third parties that
  opt in to daily subscription — when each day's data is packaged. The
  notification does not carry the data: it carries retrieval URIs that the third
  party then GETs over mutual TLS with the appropriate token. This is ESPI
  function block FB=39 (Push model — Post Notification of data being ready
  followed by GET).
surface:
  kind: webhook
  direction: PG&E to third party
  endpoint: >-
    The third party's own Notification URI, supplied during registration at
    https://sharemydata.pge.com/ and editable under Manage Registration.
  transport: HTTPS POST over mutual TLS
  payload_format: >-
    ESPI XML in the http://naesb.org/espi namespace. PG&E's documented batch
    notification body carries an ns0:BatchList element containing an
    ns0:resources element with the retrieval URL(s).
  retrieval_pattern: >-
    Notification carries URIs only. The third party calls back with GET on the
    supplied resource URL, using the client_access_token for Bulk-level
    resources or the customer access_token for Subscription-level resources.
  function_block: FB=39
  correlation: >-
    Asynchronous requests accept a correlationID query parameter; since Release
    4.0 (2023-03-20) PG&E also supports an x-transaction header label returned
    with a Correlation ID when the requested file is ready.
events:
  - name: authorization-changed
    trigger: >-
      Any change to an existing authorization, for example a customer
      cancellation.
    payload: Notification of the change, with the Authorization resource URI to retrieve.
    retrieve_with: GET /GreenButtonConnect/espi/1_1/resource/Authorization/{AuthorizationID}
    token: client_access_token
    source_doc: PG&E third-party developer page, Notification URI section.
  - name: async-batch-ready
    trigger: >-
      An earlier ad hoc asynchronous (Batch) request has been prepared and the
      data is ready.
    payload: ns0:BatchList with ns0:resources containing the retrieval URL(s).
    retrieve_with: >-
      GET on the supplied Batch resource URL — one of Batch/Bulk/{BulkID},
      Batch/Subscription/{SubscriptionID},
      Batch/Subscription/{SubscriptionID}/UsagePoint/{UsagePointID},
      Batch/BulkRetailCustomerInfo/{BulkID}, Batch/RetailCustomer/{RetailCustomerID},
      Batch/BulkRetailDRPrgInfo/{BulkID}, Batch/RetailDRPrgInfo/{RetailCustomerID}.
    token: client_access_token (Bulk level) or customer access_token (customer level)
    documented_scenario: >-
      Scenario 2 in PG&E's "DATA ACCESS: AD HOC REQUEST (ASYNCHRONOUS)" diagram.
  - name: daily-subscription-data-ready
    trigger: >-
      Opt-in only. Third parties who tick "Notify me as data is ready" in their
      registration profile receive a daily notification once PG&E has packaged
      the latest day's data plus any corrections to previous data from the last
      24 hours.
    payload: Notification with the prepackaged data retrieval URI(s).
    retrieve_with: GET on the supplied resource URL.
    documented_scenario: >-
      Scenario 1 in PG&E's "DATA ACCESS: DAILY SUBSCRIPTION" diagram.
    guidance: >-
      PG&E asks third parties who do not intend to retrieve data daily NOT to
      enable this option, to reduce unnecessary processing. Ad hoc requests
      remain available.
registration:
  notification_uri: Required at registration.
  redirect_uri: Required for the OAuth authorization-code flow.
  third_party_portal_uri: Required — PG&E redirects the customer here during authorization.
  qa_scope_selection_host: >-
    sharemydataqa.pge.com is named in PG&E release notes as the QA
    dataCustodianScopeSelectionScreenURI host but does not resolve publicly.
security:
  transport: Mutual TLS 1.2 with the third party's CA-issued X.509 certificate.
  signature: No webhook signature scheme (HMAC or otherwise) is documented.
  replay_protection: Not documented.
gaps:
  - No AsyncAPI, no published JSON/XML schema specific to the notification body
    beyond the ESPI namespace, no signature verification guidance, no retry or
    delivery-guarantee policy, and no notification test harness.