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

# Update Share Agreement

> Update an existing Share Agreement.



## OpenAPI

````yaml https://api.catenatelematics.com/v2/orgs/openapi.json patch /v2/orgs/share-agreements/{share_agreement_id}
openapi: 3.1.0
info:
  title: Telematics Organizations Service - REST API
  description: Organizations Service REST API
  version: 0.1.0
servers:
  - url: https://api.catenatelematics.com
    description: Catena Telematics API
security: []
tags:
  - name: Invitations
    description: >-
      Send invitations to onboard fleets. Create magic links, track invitation
      status, and manage the fleet onboarding workflow.
  - name: Share Agreements
    description: >-
      Manage data sharing agreements with fleets. Monitor agreement status,
      update terms, and control access to fleet telematics data.
  - name: Fleets
    description: >-
      View and manage fleet profiles. Access fleet information for fleets you've
      successfully onboarded through invitations.
  - name: Partners
    description: >-
      Manage your partner organization profile. Update company information,
      websites, and service categories visible to fleets.
  - name: TSPs
    description: >-
      Browse available Telematics Service Providers (TSPs). View supported
      integrations that fleets can connect to share their telematics data.
paths:
  /v2/orgs/share-agreements/{share_agreement_id}:
    patch:
      tags:
        - Share Agreements
      summary: Update Share Agreement
      description: Update an existing Share Agreement.
      operationId: update_share_agreement
      parameters:
        - name: share_agreement_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: The ID of the Share Agreement to update
            title: Share Agreement Id
          description: The ID of the Share Agreement to update
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ShareAgreementUpdate'
              description: Details to be updated int Share Agreement
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ShareAgreementRead'
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
          description: Not Found
        '405':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MethodNotAllowed'
          description: Method Not Allowed
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Conflict'
          description: Conflict
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntity'
          description: Unprocessable Entity
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TooManyRequests'
          description: Too Many Requests
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
          description: Internal Server Error
      security:
        - Bearer:
            - share-agreement:update
components:
  schemas:
    ShareAgreementUpdate:
      properties:
        effective_date:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Effective Date
          description: >-
            When data access begins. Check this before attempting to fetch fleet
            data.
        expiration_date:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Expiration Date
          description: >-
            When data access ends. Null means no expiration. Status
            automatically changes to EXPIRED after this date.
      type: object
      title: ShareAgreementUpdate
      description: >-
        API model for updating a sharing agreement


        Update agreement status or dates. Note: Fleets own their share
        agreements,

        so partners typically cannot modify these directly.
      example: {}
    ShareAgreementRead:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: Unique agreement identifier
        fleet_id:
          type: string
          format: uuid
          title: Fleet ID
          description: The Catena fleet ID sharing their data with you
        partner_id:
          type: string
          format: uuid
          title: Partner ID
          description: Your organization ID receiving access to fleet data
        fleet_ref:
          anyOf:
            - type: string
            - type: 'null'
          title: Fleet Reference
          description: >-
            Your internal fleet identifier for mapping Catena fleets to your
            system. Returned in webhooks and APIs for easy integration.
        status:
          $ref: '#/components/schemas/ShareAgreementStatusEnum'
          title: Agreement Status
          description: >-
            Current state: ACTIVE (data access enabled), PAUSED (temporarily
            disabled), CANCELLED (permanently ended), EXPIRED (past
            expiration_date)
        effective_date:
          type: string
          format: date-time
          title: Effective Date
          description: >-
            When data access begins. Check this before attempting to fetch fleet
            data.
        expiration_date:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Expiration Date
          description: >-
            When data access ends. Null means no expiration. Status
            automatically changes to EXPIRED after this date.
        scopes:
          additionalProperties:
            $ref: '#/components/schemas/ShareLevelEnum'
          propertyNames:
            $ref: '#/components/schemas/ResourceEnum'
          type: object
          title: Shared Scopes
          description: >-
            Defines which resources (vehicle, locations, users, etc.) you can
            access and the permission level (read, write) for each.
      type: object
      required:
        - id
        - fleet_id
        - partner_id
        - fleet_ref
        - status
        - effective_date
        - expiration_date
        - scopes
      title: ShareAgreementRead
      description: |-
        API model for reading a sharing agreement

        Contains all the details about what data you can access from a fleet.
        Monitor the status field to track active agreements.
      example:
        effective_date: '2025-12-11T14:22:00Z'
        fleet_id: 98765432-10fe-dcba-9876-543210fedcba
        fleet_ref: FLEET-12345
        id: 22334455-6677-8899-aabb-ccddeeff0011
        invitation_id: 01234567-89ab-cdef-0123-456789abcdef
        partner_id: 11223344-5566-7788-99aa-bbccddeeff00
        scopes:
          hos_events: read
          user: read
          vehicle: read_write
          vehicle_location: read_write
        status: active
    BadRequest:
      properties:
        code:
          type: integer
          title: Code
          default: 400
        message:
          type: string
          title: Message
          default: Bad Request
        detail:
          anyOf:
            - type: string
            - type: 'null'
          title: Detail
      type: object
      title: BadRequest
    Unauthorized:
      properties:
        code:
          type: integer
          title: Code
          default: 401
        message:
          type: string
          title: Message
          default: Unauthorized
        detail:
          anyOf:
            - type: string
            - type: 'null'
          title: Detail
      type: object
      title: Unauthorized
    Forbidden:
      properties:
        code:
          type: integer
          title: Code
          default: 403
        message:
          type: string
          title: Message
          default: Forbidden
        detail:
          anyOf:
            - type: string
            - type: 'null'
          title: Detail
      type: object
      title: Forbidden
    NotFound:
      properties:
        code:
          type: integer
          title: Code
          default: 404
        message:
          type: string
          title: Message
          default: Not Found
        detail:
          anyOf:
            - type: string
            - type: 'null'
          title: Detail
      type: object
      title: NotFound
    MethodNotAllowed:
      properties:
        code:
          type: integer
          title: Code
          default: 405
        message:
          type: string
          title: Message
          default: Method Not Allowed
        detail:
          anyOf:
            - type: string
            - type: 'null'
          title: Detail
      type: object
      title: MethodNotAllowed
    Conflict:
      properties:
        code:
          type: integer
          title: Code
          default: 409
        message:
          type: string
          title: Message
          default: Conflict
        detail:
          anyOf:
            - type: string
            - type: 'null'
          title: Detail
      type: object
      title: Conflict
    UnprocessableEntity:
      properties:
        code:
          type: integer
          title: Code
          default: 422
        message:
          type: string
          title: Message
          default: Invalid Request Body
        detail:
          anyOf:
            - items:
                $ref: '#/components/schemas/ValidationErrorDetail'
              type: array
            - type: 'null'
          title: Detail
      type: object
      title: UnprocessableEntity
    TooManyRequests:
      properties:
        code:
          type: integer
          title: Code
          default: 429
        message:
          type: string
          title: Message
          default: Too Many Requests
        detail:
          anyOf:
            - $ref: '#/components/schemas/RetryAfterDetail'
            - type: 'null'
      type: object
      title: TooManyRequests
    InternalServerError:
      properties:
        message:
          type: string
          title: Message
          default: Internal Server Error
      type: object
      title: InternalServerError
    ShareAgreementStatusEnum:
      type: string
      enum:
        - active
        - paused
        - cancelled
        - deleted
        - expired
      title: ShareAgreementStatusEnum
      description: Enum for share agreement status
    ShareLevelEnum:
      type: string
      enum:
        - read
        - read_write
      title: ShareLevelEnum
      description: Enum for the level of access granted
    ValidationErrorDetail:
      properties:
        path:
          type: string
          title: Path
        input:
          type: string
          title: Input
        message:
          type: string
          title: Message
        error_type:
          type: string
          title: Error Type
      type: object
      required:
        - path
        - input
        - message
        - error_type
      title: ValidationErrorDetail
    RetryAfterDetail:
      properties:
        retry_after_seconds:
          type: integer
          title: Retry After Seconds
        message:
          type: string
          title: Message
      type: object
      required:
        - retry_after_seconds
        - message
      title: RetryAfterDetail
  securitySchemes:
    Bearer:
      type: oauth2
      flows:
        clientCredentials:
          refreshUrl: >-
            https://auth.catenatelematics.com/realms/catena/protocol/openid-connect/token
          scopes: {}
          tokenUrl: >-
            https://auth.catenatelematics.com/realms/catena/protocol/openid-connect/token
        authorizationCode:
          refreshUrl: >-
            https://auth.catenatelematics.com/realms/catena/protocol/openid-connect/token
          scopes: {}
          authorizationUrl: >-
            https://auth.catenatelematics.com/realms/catena/protocol/openid-connect/auth
          tokenUrl: >-
            https://auth.catenatelematics.com/realms/catena/protocol/openid-connect/token

````