Tampa Electric Account API

Tampa Electric provides customer account management services including bill payment, usage history, paperless billing enrollment, service transfers, and energy audit tools. These customer-facing services are backed by account APIs enabling programmatic access to billing data, account status, payment history, and energy efficiency recommendations for residential and commercial customers.

OpenAPI Specification

teco-energy-account-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Tampa Electric Account API
  description: >-
    The Tampa Electric Account API provides programmatic access to customer
    account management capabilities including billing, energy usage history,
    payment processing, service requests, and energy efficiency programs.
    Used by residential and commercial customers and authorized third-party
    applications through the Tampa Electric developer portal.
  version: 1.0.0
  contact:
    url: https://developer.tecoenergy.com/
  license:
    name: Proprietary
    url: https://www.tecoenergy.com/
servers:
  - url: https://api.tecoenergy.com/v1
    description: Tampa Electric API - Production
paths:
  /accounts/{accountNumber}:
    get:
      operationId: getAccount
      summary: Get Account Details
      description: Retrieve account information for a Tampa Electric customer account.
      tags:
        - Accounts
      parameters:
        - name: accountNumber
          in: path
          description: Customer account number.
          required: true
          schema:
            type: string
      security:
        - bearerAuth: []
      responses:
        '200':
          description: Account details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Account'
        '401':
          description: Unauthorized.
        '404':
          description: Account not found.
  /accounts/{accountNumber}/usage:
    get:
      operationId: getUsageHistory
      summary: Get Energy Usage History
      description: Retrieve historical energy usage data for a customer account.
      tags:
        - Energy Usage
      parameters:
        - name: accountNumber
          in: path
          description: Customer account number.
          required: true
          schema:
            type: string
        - name: startDate
          in: query
          description: Start date for usage history (ISO 8601 format).
          required: false
          schema:
            type: string
            format: date
        - name: endDate
          in: query
          description: End date for usage history (ISO 8601 format).
          required: false
          schema:
            type: string
            format: date
        - name: interval
          in: query
          description: Data interval granularity.
          required: false
          schema:
            type: string
            enum:
              - hourly
              - daily
              - monthly
            default: daily
      security:
        - bearerAuth: []
      responses:
        '200':
          description: Energy usage history.
          content:
            application/json:
              schema:
                type: object
                properties:
                  accountNumber:
                    type: string
                  unit:
                    type: string
                    description: Unit of measurement (kWh).
                  interval:
                    type: string
                  usageData:
                    type: array
                    items:
                      $ref: '#/components/schemas/UsageRecord'
        '401':
          description: Unauthorized.
        '404':
          description: Account not found.
  /accounts/{accountNumber}/bills:
    get:
      operationId: listBills
      summary: List Bills
      description: Retrieve billing history for a customer account.
      tags:
        - Billing
      parameters:
        - name: accountNumber
          in: path
          description: Customer account number.
          required: true
          schema:
            type: string
        - name: limit
          in: query
          description: Maximum number of bills to return.
          required: false
          schema:
            type: integer
            default: 12
            maximum: 24
      security:
        - bearerAuth: []
      responses:
        '200':
          description: List of bills.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Bill'
        '401':
          description: Unauthorized.
        '404':
          description: Account not found.
  /accounts/{accountNumber}/bills/{billId}:
    get:
      operationId: getBill
      summary: Get Bill Details
      description: Retrieve detailed information for a specific bill.
      tags:
        - Billing
      parameters:
        - name: accountNumber
          in: path
          description: Customer account number.
          required: true
          schema:
            type: string
        - name: billId
          in: path
          description: Unique bill identifier.
          required: true
          schema:
            type: string
      security:
        - bearerAuth: []
      responses:
        '200':
          description: Bill details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Bill'
        '404':
          description: Bill not found.
  /accounts/{accountNumber}/payments:
    post:
      operationId: makePayment
      summary: Make Payment
      description: Submit a payment for a Tampa Electric customer account.
      tags:
        - Billing
      parameters:
        - name: accountNumber
          in: path
          description: Customer account number.
          required: true
          schema:
            type: string
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentRequest'
      responses:
        '201':
          description: Payment submitted successfully.
          content:
            application/json:
              schema:
                type: object
                properties:
                  confirmationNumber:
                    type: string
                  paymentDate:
                    type: string
                    format: date
                  amount:
                    type: number
                  status:
                    type: string
        '400':
          description: Invalid payment data.
        '401':
          description: Unauthorized.
  /accounts/{accountNumber}/service-requests:
    get:
      operationId: listServiceRequests
      summary: List Service Requests
      description: Retrieve open and historical service requests for a customer account.
      tags:
        - Service Requests
      parameters:
        - name: accountNumber
          in: path
          description: Customer account number.
          required: true
          schema:
            type: string
        - name: status
          in: query
          description: Filter by service request status.
          required: false
          schema:
            type: string
            enum:
              - open
              - in-progress
              - completed
              - cancelled
      security:
        - bearerAuth: []
      responses:
        '200':
          description: List of service requests.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ServiceRequest'
    post:
      operationId: createServiceRequest
      summary: Create Service Request
      description: Submit a new service request for a customer account.
      tags:
        - Service Requests
      parameters:
        - name: accountNumber
          in: path
          description: Customer account number.
          required: true
          schema:
            type: string
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ServiceRequestCreate'
      responses:
        '201':
          description: Service request created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceRequest'
        '400':
          description: Invalid request data.
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
  schemas:
    Account:
      type: object
      description: A Tampa Electric customer account.
      properties:
        accountNumber:
          type: string
          description: Unique customer account number.
        customerName:
          type: string
          description: Account holder name.
        serviceAddress:
          type: object
          properties:
            streetAddress:
              type: string
            city:
              type: string
            state:
              type: string
            zipCode:
              type: string
        accountType:
          type: string
          description: Type of account.
          enum:
            - residential
            - commercial
            - industrial
        serviceType:
          type: string
          description: Type of utility service.
          enum:
            - electric
            - gas
            - electric-and-gas
        status:
          type: string
          description: Account status.
          enum:
            - active
            - inactive
            - pending
        currentBalance:
          type: number
          format: double
          description: Current account balance in USD.
        dueDate:
          type: string
          format: date
          description: Payment due date for current balance.
        paperlessBilling:
          type: boolean
          description: Whether paperless billing is enabled.
    UsageRecord:
      type: object
      description: An energy usage record for a specific time interval.
      properties:
        startTime:
          type: string
          format: date-time
          description: Start of the measurement interval.
        endTime:
          type: string
          format: date-time
          description: End of the measurement interval.
        usage:
          type: number
          format: double
          description: Energy consumed in kWh during the interval.
        cost:
          type: number
          format: double
          description: Estimated cost for the interval in USD.
        temperature:
          type: number
          format: double
          description: Average outdoor temperature during the interval (Fahrenheit).
    Bill:
      type: object
      description: A Tampa Electric utility bill.
      properties:
        billId:
          type: string
          description: Unique bill identifier.
        billDate:
          type: string
          format: date
          description: Date the bill was issued.
        dueDate:
          type: string
          format: date
          description: Payment due date.
        billingPeriodStart:
          type: string
          format: date
          description: Start of the billing period.
        billingPeriodEnd:
          type: string
          format: date
          description: End of the billing period.
        totalAmount:
          type: number
          format: double
          description: Total amount due in USD.
        kwhUsed:
          type: number
          format: double
          description: Total kilowatt-hours consumed during the billing period.
        status:
          type: string
          enum:
            - unpaid
            - paid
            - overdue
            - partial
        charges:
          type: array
          description: Itemized charges on the bill.
          items:
            type: object
            properties:
              description:
                type: string
              amount:
                type: number
                format: double
    PaymentRequest:
      type: object
      required:
        - amount
        - paymentMethod
      properties:
        amount:
          type: number
          format: double
          description: Payment amount in USD.
        paymentMethod:
          type: string
          enum:
            - bank-account
            - credit-card
            - debit-card
        paymentDate:
          type: string
          format: date
          description: Date to process the payment. Defaults to today.
    ServiceRequest:
      type: object
      description: A service request for Tampa Electric customer operations.
      properties:
        requestId:
          type: string
          description: Unique service request ID.
        type:
          type: string
          description: Type of service request.
          enum:
            - start-service
            - stop-service
            - transfer-service
            - meter-read
            - tree-trimming
            - streetlight-repair
            - general-inquiry
        status:
          type: string
          enum:
            - open
            - in-progress
            - completed
            - cancelled
        createdDate:
          type: string
          format: date-time
        scheduledDate:
          type: string
          format: date
        completedDate:
          type: string
          format: date
        notes:
          type: string
          description: Additional notes or details about the request.
    ServiceRequestCreate:
      type: object
      required:
        - type
      properties:
        type:
          type: string
          enum:
            - start-service
            - stop-service
            - transfer-service
            - meter-read
            - tree-trimming
            - streetlight-repair
            - general-inquiry
        preferredDate:
          type: string
          format: date
        notes:
          type: string