OpenGov Transactions API

A Transaction represents an individual payment or refund transaction on a Record.

OpenAPI Specification

opengov-transactions-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: v2
  title: Permitting & Licensing Transactions 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: Transactions
  description: A Transaction represents an individual payment or refund transaction on a Record.
paths:
  /v2/{community}/transactions:
    parameters:
    - $ref: '#/paths/~1v2~1{community}~1approval-steps/parameters/0'
    get:
      summary: List transactions
      description: 'Retrieve a list of payment transactions that match the specified filters.

        ### Permissions Required

        `Payment Read`'
      operationId: getPaymentTransactions
      x-og-claims-required:
      - PLC_PAYMENT_READ
      tags:
      - Transactions
      parameters:
      - $ref: '#/paths/~1v2~1{community}~1approval-steps/get/parameters/0'
      - $ref: '#/paths/~1v2~1{community}~1approval-steps/get/parameters/1'
      - name: filter[transactionType]
        in: query
        description: Filter by transaction type
        required: false
        schema:
          type: string
          enum:
          - Payment
          - Refund
          - Adjustment
      - name: filter[originalPaymentID]
        in: query
        description: Filter by original payment ID
        required: false
        schema:
          type: string
      - name: filter[processedByUserID]
        in: query
        description: Filter by processed by user ID
        required: false
        schema:
          type: string
      - name: filter[payerName]
        in: query
        description: Filter by payer name
        required: false
        schema:
          type: string
      - name: filter[transactionDate]
        in: query
        description: 'Filter by transaction date, either an exact date/date-time or a range.


          A bare value (e.g. filter[transactionDate]=2026-06-19) matches that whole day when a date-only

          value is given, or that exact instant when a full ISO-8601 date-time is given.


          Supports filter[transactionDate][gte] and/or filter[transactionDate][lte] (ISO-8601 dates or date-times)

          for a range. Range is inclusive of both bounds. If only one bound is provided, filter on that bound only.


          If gte > lte, return 400 invalid_parameter.

          '
        required: false
        style: deepObject
        explode: true
        schema:
          oneOf:
          - type: string
            format: date-time
            description: Exact date or date-time to match
          - type: object
            properties:
              gte:
                type: string
                format: date-time
                description: Greater than or equal to this date-time (inclusive)
              lte:
                type: string
                format: date-time
                description: Less than or equal to this date-time (inclusive)
      - name: filter[paymentMethod]
        in: query
        description: Filter by payment method
        required: false
        schema:
          type: string
          enum:
          - Credit Card
          - Cash
          - Check
          - E-Check
          - Custom
      responses:
        '200':
          description: Payment Transactions
          content:
            application/vnd.api+json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      x-tags:
                      - Transactions
                      title: Transaction
                      required:
                      - type
                      - id
                      - attributes
                      properties:
                        id:
                          type: string
                          description: Unique internal ID of a transaction
                          example: txn-123456789
                        type:
                          type: string
                          enum:
                          - transaction
                          example: transaction
                        attributes:
                          type: object
                          properties:
                            amount:
                              type: number
                              format: decimal
                              description: Payment amount
                              example: 150.75
                            transactionID:
                              type: string
                              nullable: true
                              description: Unique identifier for the transaction in payment provider
                              example: stripe_1234567890
                            transactionDate:
                              type: string
                              format: date-time
                              description: Date and time when the transaction occurred
                            transactionType:
                              type: string
                              enum:
                              - Payment
                              - Refund
                              - Adjustment
                              description: Transaction type
                              example: Payment
                            transactionStatus:
                              type: string
                              enum:
                              - Succeeded
                              - Pending
                              - Failed
                              - Disputed
                              - Lost
                              description: Transaction status
                              example: Succeeded
                            paymentMethod:
                              type: string
                              enum:
                              - Credit Card
                              - Cash
                              - Check
                              - E-Check
                              - Custom
                              description: Payment method
                              example: Credit Card
                            note:
                              type: string
                              nullable: true
                              description: Additional notes related to the payment
                              example: Payment for permit application fee
                            processingFee:
                              type: number
                              format: decimal
                              nullable: true
                              description: Processing fee associated with the payment
                              example: 5.25
                            void:
                              type: boolean
                              description: Indicates whether the payment has been voided
                              default: false
                              example: false
                            originalPaymentID:
                              type: integer
                              nullable: true
                              description: Reference to the original payment if this is a refund or adjustment
                              example: 987654321
                            processedByUserID:
                              type: string
                              nullable: true
                              description: Identifier of the user who processed the payment
                              example: user-456789
                            last4:
                              type: string
                              description: Last 4 digits of the card
                              example: '1234'
                            userID:
                              type: string
                              nullable: true
                              description: Identifier of the user making the payment
                              example: user-789012
                            destinationPaymentID:
                              type: string
                              nullable: true
                              description: Identifier for the destination payment in case of fund transfers
                              example: dest-pay-345678
                            payerName:
                              type: string
                              nullable: true
                              description: Name of the payer
                              example: John Smith
                            checkNumber:
                              type: string
                              nullable: true
                              description: Check number if the payment was made by check
                              example: CHK-001234
                            communityPaidTransactionFee:
                              type: boolean
                              description: Indicates whether the community paid the transaction fee
                              default: false
                              example: true
                            updatedAt:
                              type: string
                              format: date-time
                              description: Timestamp when the payment was last updated
                              readOnly: true
                            payoutID:
                              type: string
                              nullable: true
                              description: ID of the payout
                              example: payout-567890
                            payoutDate:
                              type: string
                              format: date-time
                              nullable: true
                              description: Date and time when the payout occurred
                        relationships:
                          type: object
                          required:
                          - ledgerEntries
                          properties:
                            paymentSteps:
                              type: object
                              properties:
                                links:
                                  type: object
                                  readOnly: true
                                  properties:
                                    related:
                                      type: string
                                      format: uri-reference
                                      description: URL of the related resource
                            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
                  links:
                    $ref: '#/paths/~1v2~1{community}~1approval-steps/get/responses/200/content/application~1vnd.api+json/schema/properties/links'
                  meta:
                    $ref: '#/paths/~1v2~1{community}~1approval-steps/get/responses/200/content/application~1vnd.api+json/schema/properties/meta'
                required:
                - data
                - links
                - meta
        '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'
  /v2/{community}/transactions/{transactionID}:
    parameters:
    - $ref: '#/paths/~1v2~1{community}~1approval-steps/parameters/0'
    - name: transactionID
      in: path
      description: ID of a transaction
      required: true
      schema:
        type: string
    get:
      summary: Get transaction
      description: 'Retrieve a payment transaction by ID.

        ### Permissions Required

        `Payment Read`'
      operationId: getTransaction
      x-og-claims-required:
      - PLC_PAYMENT_READ
      tags:
      - Transactions
      responses:
        '200':
          description: Transaction
          content:
            application/vnd.api+json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    x-tags:
                    - Transactions
                    title: Transaction
                    required:
                    - type
                    - id
                    - attributes
                    properties:
                      id:
                        type: string
                        description: Unique internal ID of a transaction
                        example: txn-123456789
                      type:
                        type: string
                        enum:
                        - transaction
                        example: transaction
                      attributes:
                        type: object
                        properties:
                          amount:
                            type: number
                            format: decimal
                            description: Payment amount
                            example: 150.75
                          transactionID:
                            type: string
                            nullable: true
                            description: Unique identifier for the transaction in payment provider
                            example: stripe_1234567890
                          transactionDate:
                            type: string
                            format: date-time
                            description: Date and time when the transaction occurred
                          transactionType:
                            type: string
                            enum:
                            - Payment
                            - Refund
                            - Adjustment
                            description: Transaction type
                            example: Payment
                          transactionStatus:
                            type: string
                            enum:
                            - Succeeded
                            - Pending
                            - Failed
                            - Disputed
                            - Lost
                            description: Transaction status
                            example: Succeeded
                          paymentMethod:
                            type: string
                            enum:
                            - Credit Card
                            - Cash
                            - Check
                            - E-Check
                            - Custom
                            description: Payment method
                            example: Credit Card
                          note:
                            type: string
                            nullable: true
                            description: Additional notes related to the payment
                            example: Payment for permit application fee
                          processingFee:
                            type: number
                            format: decimal
                            nullable: true
                            description: Processing fee associated with the payment
                            example: 5.25
                          void:
                            type: boolean
                            description: Indicates whether the payment has been voided
                            default: false
                            example: false
                          originalPaymentID:
                            type: integer
                            nullable: true
                            description: Reference to the original payment if this is a refund or adjustment
                            example: 987654321
                          processedByUserID:
                            type: string
                            nullable: true
                            description: Identifier of the user who processed the payment
                            example: user-456789
                          last4:
                            type: string
                            description: Last 4 digits of the card
                            example: '1234'
                          userID:
                            type: string
                            nullable: true
                            description: Identifier of the user making the payment
                            example: user-789012
                          destinationPaymentID:
                            type: string
                            nullable: true
                            description: Identifier for the destination payment in case of fund transfers
                            example: dest-pay-345678
                          payerName:
                            type: string
                            nullable: true
                            description: Name of the payer
                            example: John Smith
                          checkNumber:
                            type: string
                            nullable: true
                            description: Check number if the payment was made by check
                            example: CHK-001234
                          communityPaidTransactionFee:
                            type: boolean
                            description: Indicates whether the community paid the transaction fee
                            default: false
                            example: true
                          updatedAt:
                            type: string
                            format: date-time
                            description: Timestamp when the payment was last updated
                            readOnly: true
                          payoutID:
                            type: string
                            nullable: true
                            description: ID of the payout
                            example: payout-567890
                          payoutDate:
                            type: string
                            format: date-time
                            nullable: true
                            description: Date and time when the payout occurred
                      relationships:
                        type: object
                        required:
                        - ledgerEntries
                        properties:
                          paymentSteps:
                            type: object
                            properties:
                              links:
                                type: object
                                readOnly: true
                                properties:
                                  related:
                                    type: string
                                    format: uri-reference
                                    description: URL of the related resource
                          ledgerEntries:
                            $ref: '#/paths/~1v2~1{community}~1transactions/get/responses/200/content/application~1vnd.api+json/schema/properties/data/items/properties/relationships/properties/ledgerEntries'
                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'
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