Arcadia Statements API

Utility bills / statements pulled from the provider.

OpenAPI Specification

arcadia-power-statements-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Arcadia Plug Accounts Statements API
  version: '2024-02-21'
  description: 'The Arcadia Plug API is the primary developer surface of the Arc utility data platform.

    It provides programmatic access to utility accounts, statements (bills), meters,

    interval (15-minute) usage data, providers, sites, files, and webhooks. Authentication

    uses OAuth 2.0 client credentials; an Arcadia-Version header pins request behavior to

    a dated API revision (default 2024-02-21). Sandbox mode is available end-to-end.

    '
  contact:
    name: Arcadia API Support
    url: https://docs.arcadia.com
  license:
    name: Arcadia API Terms
    url: https://www.arcadia.com/terms-of-service
servers:
- url: https://api.arcadia.com
  description: Production
tags:
- name: Statements
  description: Utility bills / statements pulled from the provider.
paths:
  /plug/statements:
    get:
      tags:
      - Statements
      summary: List Statements
      operationId: listStatements
      parameters:
      - $ref: '#/components/parameters/ArcadiaVersion'
      - $ref: '#/components/parameters/Search'
      - in: query
        name: isCrossVersionSearch
        schema:
          type: boolean
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/Size'
      - $ref: '#/components/parameters/Sort'
      responses:
        '200':
          description: Paginated statements.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedStatements'
      security:
      - bearerAuth: []
  /plug/statements/{statementId}:
    get:
      tags:
      - Statements
      summary: Retrieve Statement
      operationId: retrieveStatement
      parameters:
      - $ref: '#/components/parameters/ArcadiaVersion'
      - in: path
        name: statementId
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Statement.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Statement'
      security:
      - bearerAuth: []
  /plug/statements/{statementId}/download:
    get:
      tags:
      - Statements
      summary: Download Statement Source
      operationId: downloadStatementSource
      parameters:
      - $ref: '#/components/parameters/ArcadiaVersion'
      - in: path
        name: statementId
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Source statement file.
          content:
            application/pdf: {}
      security:
      - bearerAuth: []
components:
  parameters:
    ArcadiaVersion:
      in: header
      name: Arcadia-Version
      required: false
      schema:
        type: string
        default: '2024-02-21'
      description: Date-pinned API version.
    Search:
      in: query
      name: search
      schema:
        type: string
      description: Field-specific search expression.
    Sort:
      in: query
      name: sort
      schema:
        type: array
        items:
          type: string
      style: form
      explode: true
      description: Sort expression, format `property,(asc|desc)`.
    Page:
      in: query
      name: page
      schema:
        type: integer
        default: 0
        minimum: 0
      description: Zero-based page index.
    Size:
      in: query
      name: size
      schema:
        type: integer
        default: 20
        maximum: 200
      description: Page size.
  schemas:
    PaginatedStatements:
      allOf:
      - $ref: '#/components/schemas/Pagination'
      - type: object
        properties:
          content:
            type: array
            items:
              $ref: '#/components/schemas/Statement'
    Statement:
      type: object
      properties:
        id:
          type: string
        accountId:
          type: string
        invoiceNumber:
          type: string
        statementDate:
          type: string
          format: date
        periodStartDate:
          type: string
          format: date
        periodEndDate:
          type: string
          format: date
        dueDate:
          type: string
          format: date
        amountDue:
          type: number
        outstandingBalance:
          type: number
        totalCharges:
          type: number
        provider:
          type: object
          properties:
            id:
              type: string
            name:
              type: string
        meters:
          type: array
          items:
            type: object
        createdAt:
          type: string
          format: date-time
        lastModifiedAt:
          type: string
          format: date-time
    Pagination:
      type: object
      properties:
        page:
          type: integer
        size:
          type: integer
        totalElements:
          type: integer
        totalPages:
          type: integer
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT