Ariba Sourcing Approval Tasks API

External approval task retrieval and action operations

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

ariba-sourcing-approval-tasks-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Ariba Sourcing - External Approval Approval Tasks API
  description: The External Approval API for Sourcing and Supplier Management enables client applications to approve or deny SAP Ariba strategic sourcing solutions approval tasks. It supports external approval tasks in sourcing projects, contract workspaces, engagement risk assessment, and all types of supplier management projects.
  version: v2 - 2026-02
  contact:
    name: SAP Ariba Developer Support
    url: https://developer.ariba.com
  x-generated-from: documentation
  x-last-validated: '2026-04-19'
servers:
- url: https://openapi.ariba.com/api/sourcing-approval/v2/prod
  description: Production environment
- url: https://openapi.ariba.com/api/sourcing-approval/v2/sandbox
  description: Sandbox environment
security:
- OAuth2: []
tags:
- name: Approval Tasks
  description: External approval task retrieval and action operations
paths:
  /changes:
    get:
      operationId: listApprovalChanges
      summary: Ariba Sourcing List Changed Approval Tasks
      description: Returns a list of external approval tasks that have changed state. Activities that change the state of a task include submitting the task or completing the approval flow. Rate limited to 20 req/sec, 400 req/min, 12000 req/hour, 40000 req/day.
      tags:
      - Approval Tasks
      parameters:
      - name: realm
        in: query
        required: true
        description: The SAP Ariba realm name identifying your site.
        schema:
          type: string
        example: mycompany-T
      - name: needTotal
        in: query
        required: false
        description: Whether to include total count in X-Total-Count response header.
        schema:
          type: boolean
        example: true
      - name: offset
        in: query
        required: false
        description: Offset from the beginning of the result set for pagination.
        schema:
          type: integer
        example: 0
      - name: limit
        in: query
        required: false
        description: Maximum page size. Ignored if value is less than 10.
        schema:
          type: integer
        example: 50
      - name: lastChangeId
        in: query
        required: false
        description: The last change received in the previous response. Response includes all changes since this ID. Default is 0.
        schema:
          type: string
        example: '12345'
      - name: $filter
        in: query
        required: false
        description: Filter approval tasks by solution area and type. See API documentation for supported filter values.
        schema:
          type: string
        example: documentType eq 'RFXDocument'
      responses:
        '200':
          description: Successfully retrieved changed approval tasks.
          headers:
            X-Total-Count:
              description: Total count of items when needTotal=true.
              schema:
                type: integer
            X-Start-Index:
              description: Starting index of the current page.
              schema:
                type: integer
            X-Page-Size:
              description: Page size of the current response.
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApprovalChangesResponse'
              examples:
                listApprovalChanges200Example:
                  summary: Default listApprovalChanges 200 response
                  x-microcks-default: true
                  value:
                    changes:
                    - changeSequenceId: '12345'
                      taskId: TASK-500123
                      documentType: RFXDocument
                      documentId: DOC-001234
                      status: submitted
                      fullURL: https://mycompany-T.sourcing.ariba.com/Sourcing/main/ad/taskWorkspace
        '400':
          description: Bad Request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /pendingApprovables:
    get:
      operationId: listPendingApprovables
      summary: Ariba Sourcing List Pending Approval Tasks
      description: Returns a list of external approval tasks that are active and pending approval. Results can be filtered by user ID or document type.
      tags:
      - Approval Tasks
      parameters:
      - name: realm
        in: query
        required: true
        description: The SAP Ariba realm name identifying your site.
        schema:
          type: string
        example: mycompany-T
      - name: user
        in: query
        required: false
        description: User ID. If specified, only approval tasks assigned to this user are returned.
        schema:
          type: string
        example: jsmith@example.com
      - name: documentType
        in: query
        required: false
        description: 'Type of document to be approved. Values: Workspace, Folder, RFXDocument, ContractContentDocument, ContractWorkspace, ContractRequest.'
        schema:
          type: string
          enum:
          - Workspace
          - Folder
          - RFXDocument
          - ContractContentDocument
          - ContractWorkspace
          - ContractRequest
        example: RFXDocument
      - name: offset
        in: query
        required: false
        description: Starting point within collection of results.
        schema:
          type: integer
        example: 0
      - name: limit
        in: query
        required: false
        description: Maximum number of records. Range 0-100, default 100.
        schema:
          type: integer
        example: 20
      - name: resetStartPosition
        in: query
        required: false
        description: When true, returns empty set if offset exceeds total records.
        schema:
          type: boolean
        example: false
      responses:
        '200':
          description: Successfully retrieved pending approval tasks.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PendingApprovablesResponse'
              examples:
                listPendingApprovables200Example:
                  summary: Default listPendingApprovables 200 response
                  x-microcks-default: true
                  value:
                    tasks:
                    - taskId: TASK-500123
                      documentType: RFXDocument
                      documentId: DOC-001234
                      assignedTo: jsmith@example.com
                      status: pending
                      fullURL: https://mycompany-T.sourcing.ariba.com/Sourcing/main/ad/taskWorkspace
        '400':
          description: Bad Request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /task/{entity_id}:
    get:
      operationId: getApprovalTask
      summary: Ariba Sourcing Get Approval Task Details
      description: Retrieves details about the specified external approval task. The entity_id is the task ID returned from GET /changes or GET /pendingApprovables.
      tags:
      - Approval Tasks
      parameters:
      - name: entity_id
        in: path
        required: true
        description: The task ID as returned from GET /changes or GET /pendingApprovables.
        schema:
          type: string
        example: TASK-500123
      - name: realm
        in: query
        required: true
        description: The SAP Ariba realm name.
        schema:
          type: string
        example: mycompany-T
      responses:
        '200':
          description: Successfully retrieved task details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApprovalTask'
              examples:
                getApprovalTask200Example:
                  summary: Default getApprovalTask 200 response
                  x-microcks-default: true
                  value:
                    taskId: TASK-500123
                    documentType: RFXDocument
                    documentId: DOC-001234
                    status: pending
                    approvalRequests:
                    - approvers:
                      - userId: jsmith@example.com
                        name: Jane Smith
        '404':
          description: Task not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /action:
    post:
      operationId: submitApprovalAction
      summary: Ariba Sourcing Submit Approval Action
      description: Posts the action to be taken for the approval task on behalf of the user in the approval flow. Options are to approve, deny, and include comments.
      tags:
      - Approval Tasks
      parameters:
      - name: realm
        in: query
        required: true
        description: The SAP Ariba realm name.
        schema:
          type: string
        example: mycompany-T
      requestBody:
        required: true
        description: Approval action to submit.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApprovalActionRequest'
            examples:
              submitApprovalActionRequestExample:
                summary: Default submitApprovalAction request
                x-microcks-default: true
                value:
                  taskId: TASK-500123
                  action: approve
                  userId: jsmith@example.com
                  comment: Approved per procurement policy.
      responses:
        '200':
          description: Successfully submitted approval action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApprovalActionResponse'
              examples:
                submitApprovalAction200Example:
                  summary: Default submitApprovalAction 200 response
                  x-microcks-default: true
                  value:
                    taskId: TASK-500123
                    action: approve
                    status: submitted
        '400':
          description: Bad Request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    ApprovalChange:
      title: ApprovalChange
      description: An approval task state change record.
      type: object
      properties:
        changeSequenceId:
          type: string
          description: Sequence ID of the change for pagination.
          example: '12345'
        taskId:
          type: string
          description: Task identifier.
          example: TASK-500123
        documentType:
          type: string
          description: Type of document being approved.
          example: RFXDocument
        documentId:
          type: string
          description: Document identifier.
          example: DOC-001234
        status:
          type: string
          description: Current task status.
          example: submitted
        fullURL:
          type: string
          description: Full URL to view the approvable in the SAP Ariba UI.
          example: https://mycompany-T.sourcing.ariba.com/Sourcing/main/ad/taskWorkspace
    PendingApprovablesResponse:
      title: PendingApprovablesResponse
      description: Response containing pending approval tasks.
      type: object
      properties:
        tasks:
          type: array
          description: List of pending approval tasks.
          items:
            $ref: '#/components/schemas/PendingApprovalTask'
    ApprovalActionResponse:
      title: ApprovalActionResponse
      description: Response from submitting an approval action.
      type: object
      properties:
        taskId:
          type: string
          description: Task identifier.
          example: TASK-500123
        action:
          type: string
          description: Action submitted.
          example: approve
        status:
          type: string
          description: Result status.
          example: submitted
    ApprovalRequest:
      title: ApprovalRequest
      description: An approval request entry.
      type: object
      properties:
        approvers:
          type: array
          description: List of approvers.
          items:
            $ref: '#/components/schemas/Approver'
    ErrorResponse:
      title: ErrorResponse
      description: Error response.
      type: object
      properties:
        code:
          type: integer
          description: HTTP status code.
          example: 400
        message:
          type: string
          description: Error message.
          example: Bad Request
    ApprovalTask:
      title: ApprovalTask
      description: Details about an external approval task.
      type: object
      properties:
        taskId:
          type: string
          description: Task identifier.
          example: TASK-500123
        documentType:
          type: string
          description: Type of document being approved.
          example: RFXDocument
        documentId:
          type: string
          description: Document identifier.
          example: DOC-001234
        status:
          type: string
          description: Task status.
          example: pending
        approvalRequests:
          type: array
          description: Approval request entries with approver details.
          items:
            $ref: '#/components/schemas/ApprovalRequest'
    ApprovalActionRequest:
      title: ApprovalActionRequest
      description: Request body for submitting an approval action.
      type: object
      required:
      - taskId
      - action
      - userId
      properties:
        taskId:
          type: string
          description: Task identifier.
          example: TASK-500123
        action:
          type: string
          description: Action to take.
          enum:
          - approve
          - deny
          example: approve
        userId:
          type: string
          description: User ID submitting the action.
          example: jsmith@example.com
        comment:
          type: string
          description: Optional comment for the action.
          example: Approved per procurement policy.
    ApprovalChangesResponse:
      title: ApprovalChangesResponse
      description: Response containing changed approval tasks.
      type: object
      properties:
        changes:
          type: array
          description: List of approval task changes.
          items:
            $ref: '#/components/schemas/ApprovalChange'
    Approver:
      title: Approver
      description: An individual or group approver.
      type: object
      properties:
        userId:
          type: string
          description: User identifier.
          example: jsmith@example.com
        name:
          type: string
          description: Approver display name.
          example: Jane Smith
    PendingApprovalTask:
      title: PendingApprovalTask
      description: A pending external approval task.
      type: object
      properties:
        taskId:
          type: string
          description: Task identifier.
          example: TASK-500123
        documentType:
          type: string
          description: Type of document being approved.
          example: RFXDocument
        documentId:
          type: string
          description: Document identifier.
          example: DOC-001234
        assignedTo:
          type: string
          description: User assigned to this task.
          example: jsmith@example.com
        status:
          type: string
          description: Task status.
          example: pending
        fullURL:
          type: string
          description: Full URL to view the approvable in the SAP Ariba UI.
          example: https://mycompany-T.sourcing.ariba.com/Sourcing/main/ad/taskWorkspace
  securitySchemes:
    OAuth2:
      type: oauth2
      description: OAuth 2.0 authentication. Obtain access token from https://api.ariba.com/v2/oauth/token using client credentials.
      flows:
        clientCredentials:
          tokenUrl: https://api.ariba.com/v2/oauth/token
          scopes: {}