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

# Retrieve Generic Statement Revisions

> A `GET` request will list all of a Generic statement's revisions*.* If a response is null, the statement was deleted.

*Response Body Structure*

| Path | Type | Description |
| --- | --- | --- |
| `[].response` | `Generic Statement Model` | The statement's raw body at a given revision |
| `[].timestamp` | `Timestamp` | The timestamp for a statement's revision |



## OpenAPI

````yaml /tango_watchwire/integrations/guides/watchwire-api.yaml get /generic/{statementId}/revisions
openapi: 3.1.0
info:
  title: WatchWire API
  version: 1.0.0
  description: >-
    The WatchWire Platform has APIs that allow you to access your data
    programmatically. There are several APIs designed for the modules in the
    WatchWire platform including - Invoice Data, Real-Time, Accounts Payable,
    and Measurement & Verification. All are highly scalable, and secure APIs
    that communicate over HTTPS RESTful protocols with JSON based documents.


    > **Note**: Not all WatchWire modules are available as an API.


    # Authentication


    You need credentials to access the APIs - it is the same credentials as your
    WatchWire login. The `/authenticate` will return a Token that needs to be
    included in the header of every subsequent request. The token renews with
    each request and expires after 60 minutes of inactivity (at which point you
    will need to re-authenticate and get a new token).


    > Please contact the WatchWire team for any questions or request for API
    credential access.


    # Error Codes


    There will be various error codes specific to the API you are using, but
    generally follows these principles:


    *   `Unauthorized` - *you are unauthenticated or unauthorized to request
    actions on an asset*

    *   `Asset doesn't exist` - *the item you are querying for doesn't exist*

    *   `Server error`\- *general exception raised in our application code*
        

    # Rate limit


    Rate limited to 10 transactions per meter / second
servers:
  - url: https://auth.replace-me.example.com
    description: Authentication service (Postman variable {{ww-api-baseurl}})
  - url: https://realtime.replace-me.example.com
    description: RealTime API (Postman variable {{gateway-realtime-api}})
  - url: https://ap.replace-me.example.com
    description: Accounts Payable API (Postman variable {{gateway-ap-api}})
  - url: https://invoice.replace-me.example.com
    description: Invoice API (Postman variable {{portal-api-baseurl}})
  - url: https://mv.replace-me.example.com
    description: Measurement & Verification API (Postman variable {{invoice-api}})
security:
  - BearerAuth: []
tags:
  - name: Authentication
  - name: RealTime API - Custom Meter
  - name: RealTime API - Meter Readings
  - name: RealTime API - Meter Readings Aggregations
  - name: RealTime API - Meter Readings Batch Operations
  - name: RealTime API - Obvius Meter Readings
  - name: Accounts Payable API - Audit Statements
  - name: Accounts Payable API - Nexus Statements
  - name: Accounts Payable API - Standard Statements
  - name: Accounts Payable API - Statement PDFs
  - name: Invoice API - Reference IDs
  - name: Invoice API - Invoice
  - name: Measurement & Verification API - M&V
paths:
  /generic/{statementId}/revisions:
    get:
      tags:
        - Accounts Payable API - Audit Statements
      summary: Retrieve Generic Statement Revisions
      description: >-
        A `GET` request will list all of a Generic statement's revisions*.* If a
        response is null, the statement was deleted.


        *Response Body Structure*


        | Path | Type | Description |

        | --- | --- | --- |

        | `[].response` | `Generic Statement Model` | The statement's raw body
        at a given revision |

        | `[].timestamp` | `Timestamp` | The timestamp for a statement's
        revision |
      operationId: retrieveGenericStatementRevisions
      parameters:
        - name: statementId
          in: path
          required: true
          schema:
            type: integer
          description: EnergyWatch statement identifier.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    timestamp:
                      type: string
                    response:
                      type: object
                      properties:
                        uuid:
                          type: string
                        statementId:
                          type: integer
                        accountId:
                          type: integer
                        clientId:
                          type: integer
                        accountCode:
                          type: string
                        commodity:
                          type: string
                        glCode:
                          type: string
                        chargeAmount:
                          type: integer
                        status:
                          type: string
                        statusMessage:
                          type: string
                        pdfUrl:
                          type: string
                        property:
                          type: string
                        vendor:
                          type: string
                        serviceAddress:
                          type: string
                        city:
                          type: string
                        state:
                          type: string
                        zipCode:
                          type: string
                        currency:
                          type: string
                        startDate:
                          type: string
                        endDate:
                          type: string
                        month:
                          type: integer
                        year:
                          type: integer
                        dueDate:
                          type: string
                        newCharges:
                          type: integer
                        totalAmountDue:
                          type: integer
                        glSettings:
                          type: object
                          properties: {}
                        lines:
                          type: array
                          items:
                            type: object
                            properties:
                              lineItemUuid:
                                type: string
                              statementUuid:
                                type: string
                              statementId:
                                type: integer
                              chargeName:
                                type: string
                              chargeAmount:
                                type: integer
                              chargeClassification:
                                type: string
              example:
                - timestamp: '2022-01-06T14:33:06.721+00:00'
                  response:
                    uuid: 1d4e2181-eb9d-4229-88fa-6c332387336c
                    statementId: 0
                    accountId: 0
                    clientId: 0
                    accountCode: string
                    commodity: CHILLEDWATER
                    glCode: string
                    chargeAmount: 0
                    status: ERROR
                    statusMessage: string
                    pdfUrl: string
                    property: string
                    vendor: string
                    serviceAddress: string
                    city: string
                    state: string
                    zipCode: string
                    currency: string
                    startDate: 01/01/2021
                    endDate: 01/01/2021
                    month: 0
                    year: 0
                    dueDate: 01/01/2021
                    newCharges: 0
                    totalAmountDue: 0
                    glSettings: {}
                    lines:
                      - lineItemUuid: f364a5b9-0981-4434-badf-e750880effab
                        statementUuid: 1d4e2181-eb9d-4229-88fa-6c332387336c
                        statementId: 0
                        chargeName: string
                        chargeAmount: 0
                        chargeClassification: string
        '401':
          description: Unauthorized - missing, invalid or expired token
      security:
        - BearerAuth: []
      servers:
        - url: https://ap.replace-me.example.com
          description: Accounts Payable API (Postman variable {{gateway-ap-api}})
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: >-
        Token returned by `POST /authenticate`. Expires after 60 minutes of
        inactivity.

````