OpenGov Fees API

A Payment Step can have one or more Fees.

OpenAPI Specification

opengov-fees-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: v2
  title: Permitting & Licensing Fees API
  contact:
    name: OpenGov Permitting & Licensing API
    url: https://opengov.com
    email: developers@opengov.com
  description: "The OpenGov Permitting & Licensing API provides programmatic access to Permitting & Licensing data and workflows. With this API, you can integrate with other systems, build custom applications, or automate tasks. \n\nThe API is designed around REST principles, supports JSON:API standards, and exposes resources such as records, inspections, fees, approvals, and user accounts. This documentation covers available endpoints, request and response formats, and error codes, helping developers extend and integrate OpenGov Permitting & Licensing securely and efficiently.\n"
  license:
    name: OpenGov Permitting & Licensing API
    url: https://opengov.com
servers:
- url: https://api.plce.opengov.com/plce
  description: Production
  x-og-envs:
  - production
  - staging
  - development
  - local
security:
- bearerAuth: []
- basicHttpAuthentication: []
- auth0Prod: []
- auth0Dev: []
tags:
- name: Fees
  description: A Payment Step can have one or more Fees.
paths:
  /v2/{community}/payment-steps/{paymentStepID}/fees:
    parameters:
    - $ref: '#/paths/~1v2~1{community}~1approval-steps/parameters/0'
    - name: paymentStepID
      in: path
      description: ID of a payment step
      required: true
      schema:
        type: string
    get:
      summary: List fees
      description: 'List fees on a Payment Step.

        ### Permissions Required

        `Workflow Read`'
      operationId: getPaymentFees
      x-og-claims-required:
      - PLC_RECORD_STEP_READ
      tags:
      - Fees
      responses:
        '200':
          description: Fees
          content:
            application/vnd.api+json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      x-tags:
                      - Fees
                      title: Fee
                      required:
                      - id
                      - type
                      - attributes
                      properties:
                        type:
                          type: string
                          enum:
                          - fee
                          example: fee
                        id:
                          type: string
                          description: The fee ID
                          example: fee-789012
                        attributes:
                          type: object
                          properties:
                            label:
                              type: string
                              description: Fee label
                              example: Building Permit Application Fee
                            accountNumber:
                              type: string
                              description: Account number
                              example: ACC-4567890123
                            flatAmount:
                              type: number
                              format: currency
                              description: Flat amount
                              example: 125.5
                            balanceRemaining:
                              type: number
                              format: currency
                              description: Amount still owed for this fee
                              example: 75.25
                            isEnabled:
                              type: boolean
                              description: Whether the fee is enabled
                              example: true
                            updatedAt:
                              type: string
                              format: date-time
                              description: Last updated date
                              readOnly: true
                        relationships:
                          type: object
                          required:
                          - ledgerEntries
                          properties:
                            ledgerEntries:
                              type: object
                              properties:
                                $ref: '#/paths/~1v2~1{community}~1departments/get/responses/200/content/application~1vnd.api+json/schema/properties/data/items/properties/relationships/properties/recordTypes/properties'
                              description: The related `Ledger Entries`.
                              readOnly: true
                            templateFee:
                              type: object
                              properties:
                                $ref: '#/paths/~1v2~1{community}~1approval-steps/get/responses/200/content/application~1vnd.api+json/schema/properties/data/items/properties/relationships/properties/step/properties'
                              description: The related `Template Fee`.
                required:
                - data
        '400':
          $ref: '#/paths/~1v2~1{community}~1approval-steps/get/responses/400'
        '401':
          $ref: '#/paths/~1v2~1{community}~1approval-steps/get/responses/401'
        '403':
          $ref: '#/paths/~1v2~1{community}~1approval-steps/get/responses/403'
        '404':
          $ref: '#/paths/~1v2~1{community}~1approval-steps/get/responses/404'
        '406':
          $ref: '#/paths/~1v2~1{community}~1approval-steps/get/responses/406'
        '500':
          $ref: '#/paths/~1v2~1{community}~1approval-steps/get/responses/500'
    post:
      summary: Create a fee
      description: 'Create a fee.

        ### Permissions Required

        `Workflow Write`'
      operationId: postPaymentFee
      x-og-claims-required:
      - PLC_RECORD_STEP_CREATE
      tags:
      - Fees
      parameters:
      - $ref: '#/paths/~1v2~1{community}~1approval-steps~1{approvalStepID}/patch/parameters/0'
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              type: object
              properties:
                data:
                  type: object
                  x-tags:
                  - Fees
                  title: Fee
                  required:
                  - type
                  - attributes
                  properties:
                    type:
                      type: string
                      enum:
                      - fee
                      example: fee
                    attributes:
                      type: object
                      properties:
                        templateFeeID:
                          type: string
                          description: The template fee ID
                          example: template-fee-600001
                        recordID:
                          type: string
                          description: The record ID this is inferred from the payment step ID provided in the path
                          example: record-600002
                      required:
                      - templateFeeID
      responses:
        '201':
          description: Created
          headers:
            X-RateLimit-Limit:
              $ref: '#/paths/~1v2~1{community}~1files/post/responses/201/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/paths/~1v2~1{community}~1files/post/responses/201/headers/X-RateLimit-Remaining'
            Location:
              $ref: '#/paths/~1v2~1{community}~1inspection-events/post/responses/201/headers/Location'
          content:
            application/vnd.api+json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/paths/~1v2~1{community}~1payment-steps~1{paymentStepID}~1fees/get/responses/200/content/application~1vnd.api+json/schema/properties/data/items'
                required:
                - data
        '400':
          $ref: '#/paths/~1v2~1{community}~1approval-steps/get/responses/400'
        '401':
          $ref: '#/paths/~1v2~1{community}~1approval-steps/get/responses/401'
        '403':
          $ref: '#/paths/~1v2~1{community}~1approval-steps/get/responses/403'
        '404':
          $ref: '#/paths/~1v2~1{community}~1approval-steps/get/responses/404'
        '406':
          $ref: '#/paths/~1v2~1{community}~1approval-steps/get/responses/406'
        '409':
          $ref: '#/paths/~1v2~1{community}~1approval-steps~1{approvalStepID}/patch/responses/409'
        '415':
          $ref: '#/paths/~1v2~1{community}~1approval-steps~1{approvalStepID}/patch/responses/415'
        '500':
          $ref: '#/paths/~1v2~1{community}~1approval-steps/get/responses/500'
  /v2/{community}/payment-steps/fees/{paymentFeeID}:
    parameters:
    - $ref: '#/paths/~1v2~1{community}~1approval-steps/parameters/0'
    - name: paymentFeeID
      in: path
      description: ID of the payment fee
      required: true
      schema:
        type: string
    get:
      summary: Get a fee
      description: 'Retrieve a fee by ID.

        ### Permissions Required

        `Workflow Read`'
      operationId: getPaymentFee
      x-og-claims-required:
      - PLC_RECORD_STEP_READ
      tags:
      - Fees
      responses:
        '200':
          description: Fee
          content:
            application/vnd.api+json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    x-tags:
                    - Fees
                    title: Fee
                    required:
                    - id
                    - type
                    - attributes
                    properties:
                      type:
                        type: string
                        enum:
                        - fee
                        example: fee
                      id:
                        type: string
                        description: The fee ID
                        example: fee-789012
                      attributes:
                        type: object
                        properties:
                          label:
                            type: string
                            description: Fee label
                            example: Building Permit Application Fee
                          accountNumber:
                            type: string
                            description: Account number
                            example: ACC-4567890123
                          flatAmount:
                            type: number
                            format: currency
                            description: Flat amount
                            example: 125.5
                          balanceRemaining:
                            type: number
                            format: currency
                            description: Amount still owed for this fee
                            example: 75.25
                          isEnabled:
                            type: boolean
                            description: Whether the fee is enabled
                            example: true
                          updatedAt:
                            type: string
                            format: date-time
                            description: Last updated date
                            readOnly: true
                      relationships:
                        type: object
                        required:
                        - ledgerEntries
                        properties:
                          ledgerEntries:
                            $ref: '#/paths/~1v2~1{community}~1payment-steps~1{paymentStepID}~1fees/get/responses/200/content/application~1vnd.api+json/schema/properties/data/items/properties/relationships/properties/ledgerEntries'
                          templateFee:
                            $ref: '#/paths/~1v2~1{community}~1payment-steps~1{paymentStepID}~1fees/get/responses/200/content/application~1vnd.api+json/schema/properties/data/items/properties/relationships/properties/templateFee'
                required:
                - data
        '400':
          $ref: '#/paths/~1v2~1{community}~1approval-steps/get/responses/400'
        '401':
          $ref: '#/paths/~1v2~1{community}~1approval-steps/get/responses/401'
        '403':
          $ref: '#/paths/~1v2~1{community}~1approval-steps/get/responses/403'
        '404':
          $ref: '#/paths/~1v2~1{community}~1approval-steps/get/responses/404'
        '406':
          $ref: '#/paths/~1v2~1{community}~1approval-steps/get/responses/406'
        '500':
          $ref: '#/paths/~1v2~1{community}~1approval-steps/get/responses/500'
    patch:
      summary: Update a fee
      description: 'Update a fee.

        ### Permissions Required

        `Workflow Write`'
      operationId: patchPaymentFee
      x-og-claims-required:
      - PLC_RECORD_STEP_UPDATE
      tags:
      - Fees
      parameters:
      - $ref: '#/paths/~1v2~1{community}~1approval-steps~1{approvalStepID}/patch/parameters/0'
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              type: object
              required:
              - data
              properties:
                data:
                  type: object
                  x-tags:
                  - Fees
                  title: Fee
                  required:
                  - id
                  - type
                  - attributes
                  properties:
                    type:
                      type: string
                      enum:
                      - fee
                      example: fee
                    id:
                      type: string
                      description: The fee ID
                      example: fee-600003
                    attributes:
                      type: object
                      properties:
                        label:
                          type: string
                          description: Fee label
                          example: Updated Building Permit Fee
                        accountNumber:
                          type: string
                          description: Account number
                          example: ACC-9876543210
                        flatAmount:
                          type: number
                          format: currency
                          description: Flat amount
                          example: 275.5
      responses:
        '200':
          description: Record updated
          headers:
            X-RateLimit-Limit:
              $ref: '#/paths/~1v2~1{community}~1files/post/responses/201/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/paths/~1v2~1{community}~1files/post/responses/201/headers/X-RateLimit-Remaining'
          content:
            application/vnd.api+json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/paths/~1v2~1{community}~1payment-steps~1{paymentStepID}~1fees/get/responses/200/content/application~1vnd.api+json/schema/properties/data/items'
                required:
                - data
        '400':
          $ref: '#/paths/~1v2~1{community}~1approval-steps/get/responses/400'
        '401':
          $ref: '#/paths/~1v2~1{community}~1approval-steps/get/responses/401'
        '403':
          $ref: '#/paths/~1v2~1{community}~1approval-steps/get/responses/403'
        '404':
          $ref: '#/paths/~1v2~1{community}~1approval-steps/get/responses/404'
        '406':
          $ref: '#/paths/~1v2~1{community}~1approval-steps/get/responses/406'
        '409':
          $ref: '#/paths/~1v2~1{community}~1approval-steps~1{approvalStepID}/patch/responses/409'
        '415':
          $ref: '#/paths/~1v2~1{community}~1approval-steps~1{approvalStepID}/patch/responses/415'
components:
  securitySchemes:
    basicHttpAuthentication:
      type: http
      scheme: basic
      description: 'Basic HTTP Authentication

        '
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: 'The OpenGov Permitting & Licensing API is authenticated using the OAuth2 Client Credentials flow. Access tokens are provided as a bearer token Authorization header in all API requests.

        To obtain an access token, you must have an OpenGov-provided Client ID and Client Secret.

        Access tokens are obtained by making a POST request to `https://accounts.viewpointcloud.com/oauth/token`

        '
    auth0Prod:
      type: openIdConnect
      openIdConnectUrl: https://accounts.viewpointcloud.com/.well-known/openid-configuration
      description: 'The OpenGov Permitting & Licensing API is authenticated using the OAuth2 Client Credentials flow. Access tokens are provided as a bearer token Authorization header in all API requests.

        To obtain an access token, you must have an OpenGov-provided Client ID and Client Secret.

        '
    auth0Dev:
      type: openIdConnect
      openIdConnectUrl: https://login.vpctest.com/.well-known/openid-configuration
      description: 'The OpenGov Permitting & Licensing API is authenticated using the OAuth2 Client Credentials flow. Access tokens are provided as a bearer token Authorization header in all API requests.

        To obtain an access token, you must have an OpenGov-provided Client ID and Client Secret.

        '
x-og-spec-id: plc-api-v2
x-og-claims:
  PLC_RECORD_READ: Record Read
  PLC_RECORD_WRITE: Record Write
  PLC_RECORD_ARCHIVE: Record Archive
  PLC_RECORD_STEP_READ: Workflow Read
  PLC_RECORD_STEP_CREATE: Workflow Write
  PLC_RECORD_STEP_UPDATE: Workflow Write
  PLC_RECORD_STEP_COMMENT_READ: Comment Read
  PLC_RECORD_STEP_COMMENT_WRITE: Comment Write
  PLC_USER_READ: User Read
  PLC_USER_WRITE: User Write
  PLC_RECORD_TYPE_READ: Record Type Read
  PLC_SYSTEM_CONFIG_READ: System Config Read
  PLC_LOCATION_READ: Location Read
  PLC_LOCATION_WRITE: Location Write
  PLC_PAYMENT_READ: Payment Read
  PLC_PAYMENT_WRITE: Payment Write
  PLC_FILE_READ: File Read
  PLC_FILE_WRITE: File Write
  PLC_ACTIVITY_LOG_READ: Activity Log Read
x-tagGroups:
- name: Records
  tags:
  - Record
  - Record Applicant
  - Record Guests
  - Record Primary Location
  - Record Additional Locations
  - Record Forms
  - Record Change Requests
  - Record Attachments
  - Record Workflow Steps
  - Record Workflow Step Comments
- name: Locations
  tags:
  - Locations
  - Location Flags
- name: Users
  tags:
  - Users
  - User Flags
- name: Approvals
  tags:
  - Approval Steps
- name: Documents
  tags:
  - Document Steps
  - Issued Documents
- name: Inspections
  tags:
  - Inspection Steps
  - Inspection Types
  - Inspection Events
  - Inspection Results
  - Checklist Results
- name: Payments
  tags:
  - Payment Steps
  - Fees
  - Transactions
  - Ledger Entries
- name: Projects
  tags:
  - Projects
- name: Files
  tags:
  - Files
- name: Configuration
  tags:
  - Organization
  - Departments
  - Record Types
  - Record Type Form
  - Record Type Attachments
  - Record Type Document Templates
  - Record Type Fees
  - Record Type Workflow
  - Inspection Type Templates
  - Checklist Templates
- name: Activity Logs
  tags:
  - Activity Logs