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

# Partially Update Performance Obligation



## OpenAPI

````yaml https://api.meetcampfire.com/api/schema?format=json patch /rev/api/v1/performance-obligations/{id}
openapi: 3.0.3
info:
  title: Campfire Developer APIs
  version: 1.0.0
  description: >
    ## Introduction

    Campfire's developer APIs offer granular access to Campfire's core
    accounting,

    revenue recognition, and financial data features.


    These APIs are designed to be used by developers to build custom
    integrations,

    automate workflows, and perform any other programmatic operations.


    ## Rate limits

    API users can make up to **5 requests per second**. This limit is shared
    across

    all endpoints for the same API user. Requests that exceed the limit receive
    a

    `429 Too Many Requests` response. Wait for the number of seconds specified
    in

    the `Retry-After` response header before retrying.
servers:
  - url: https://api.meetcampfire.com
    description: Production server
security: []
tags:
  - name: Cash Management
    description: Operations related to accounts, transactions, and other bank-related data.
  - name: Core Accounting
    description: >-
      Operations related to core accounting data, such as the chart of accounts,
      entity management, and the general ledger.
  - name: Revenue Recognition
    description: >-
      Operations related to revenue recognition, contract management, and
      contract data aggregation.
  - name: Accounts Receivable
    description: Operations related to invoicing and the AR subledger
  - name: Accounts Payable
    description: Operations related to billing and the AP subledger.
  - name: Financial Statements
    description: Operations related to financial statement generation and data aggregation.
  - name: Settings
    description: Operations related to system and accounting settings configuration.
paths:
  /rev/api/v1/performance-obligations/{id}:
    patch:
      tags:
        - Revenue
      summary: Partially Update Performance Obligation
      operationId: rev_api_v1_performance_obligations_partial_update
      parameters:
        - in: path
          name: id
          schema:
            type: integer
          required: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedRevenuePerformanceObligation'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedRevenuePerformanceObligation'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedRevenuePerformanceObligation'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RevenuePerformanceObligation'
          description: ''
      security:
        - knoxApiToken: []
components:
  schemas:
    PatchedRevenuePerformanceObligation:
      type: object
      description: |-
        Base serializer that injects the request user's customer on create and
        restricts related-object querysets to the same customer.
      properties:
        id:
          type: integer
          readOnly: true
        contract:
          type: integer
        contract_name:
          type: string
          readOnly: true
        contract_line:
          type: integer
          nullable: true
        product:
          type: integer
          nullable: true
        product_name:
          type: string
          readOnly: true
          default: ''
        obligation_template:
          type: integer
          nullable: true
        period_source:
          $ref: '#/components/schemas/PeriodSourceEnum'
        status:
          $ref: '#/components/schemas/StatusBe4Enum'
        recognition_method:
          $ref: '#/components/schemas/RecognitionMethodEnum'
        recognition_proration:
          $ref: '#/components/schemas/RecognitionProrationEnum'
        currency:
          type: string
          maxLength: 3
        invoiced_amount:
          type: number
          format: double
          maximum: 10000000000000
          minimum: -10000000000000
          exclusiveMaximum: true
          exclusiveMinimum: true
        allocated_amount:
          type: number
          format: double
          maximum: 10000000000000
          minimum: -10000000000000
          exclusiveMaximum: true
          exclusiveMinimum: true
        start_date:
          type: string
          format: date
          nullable: true
        end_date:
          type: string
          format: date
          nullable: true
        revenue_account:
          type: integer
          nullable: true
        deferred_revenue_account:
          type: integer
          nullable: true
        created_at:
          type: string
          format: date-time
          readOnly: true
        last_modified_at:
          type: string
          format: date-time
          readOnly: true
    RevenuePerformanceObligation:
      type: object
      description: |-
        Base serializer that injects the request user's customer on create and
        restricts related-object querysets to the same customer.
      properties:
        id:
          type: integer
          readOnly: true
        contract:
          type: integer
        contract_name:
          type: string
          readOnly: true
        contract_line:
          type: integer
          nullable: true
        product:
          type: integer
          nullable: true
        product_name:
          type: string
          readOnly: true
          default: ''
        obligation_template:
          type: integer
          nullable: true
        period_source:
          $ref: '#/components/schemas/PeriodSourceEnum'
        status:
          $ref: '#/components/schemas/StatusBe4Enum'
        recognition_method:
          $ref: '#/components/schemas/RecognitionMethodEnum'
        recognition_proration:
          $ref: '#/components/schemas/RecognitionProrationEnum'
        currency:
          type: string
          maxLength: 3
        invoiced_amount:
          type: number
          format: double
          maximum: 10000000000000
          minimum: -10000000000000
          exclusiveMaximum: true
          exclusiveMinimum: true
        allocated_amount:
          type: number
          format: double
          maximum: 10000000000000
          minimum: -10000000000000
          exclusiveMaximum: true
          exclusiveMinimum: true
        start_date:
          type: string
          format: date
          nullable: true
        end_date:
          type: string
          format: date
          nullable: true
        revenue_account:
          type: integer
          nullable: true
        deferred_revenue_account:
          type: integer
          nullable: true
        created_at:
          type: string
          format: date-time
          readOnly: true
        last_modified_at:
          type: string
          format: date-time
          readOnly: true
      required:
        - contract
        - contract_name
        - created_at
        - id
        - last_modified_at
        - product_name
    PeriodSourceEnum:
      enum:
        - LINE
        - LINKED_OBLIGATION
        - CONTRACT_TERM
      type: string
      description: |-
        * `LINE` - Contract line dates
        * `LINKED_OBLIGATION` - Follows another obligation
        * `CONTRACT_TERM` - Full contract term
    StatusBe4Enum:
      enum:
        - ACTIVE
        - COMPLETED
        - TERMINATED
      type: string
      description: |-
        * `ACTIVE` - Active
        * `COMPLETED` - Completed
        * `TERMINATED` - Terminated
    RecognitionMethodEnum:
      enum:
        - STRAIGHT_LINE
        - POINT_IN_TIME
        - USAGE_COMMIT
        - USAGE_PAYGO
        - USAGE_MIRROR
      type: string
      description: |-
        * `STRAIGHT_LINE` - Ratable (straight-line)
        * `POINT_IN_TIME` - Point-in-time
        * `USAGE_COMMIT` - As-consumed — commit drawdown
        * `USAGE_PAYGO` - As-consumed — pay-as-you-go
        * `USAGE_MIRROR` - As-consumed — mirrors linked commit
    RecognitionProrationEnum:
      enum:
        - MONTHLY
        - THIRTY_DAY
        - DAILY
      type: string
      description: |-
        * `MONTHLY` - Monthly
        * `THIRTY_DAY` - 30-day month
        * `DAILY` - Daily
  securitySchemes:
    knoxApiToken:
      type: apiKey
      in: header
      name: Authorization
      description: Token-based authentication with required prefix "Token"

````