SAP Ariba Requisitions API

Create and manage purchase requisitions that initiate the procurement process and flow into purchase orders upon approval.

OpenAPI Specification

sap-ariba-requisitions-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: SAP Ariba Procurement Invoices Requisitions API
  description: Enables integration with SAP Ariba procurement processes including purchase orders, invoices, requisitions, receipts, and supplier management across the SAP Business Network. This API supports the complete procure-to-pay lifecycle from requisition creation through invoice reconciliation and payment processing.
  version: 1.0.0
  contact:
    name: SAP Ariba API Support
    url: https://developer.ariba.com
    email: support@ariba.com
  license:
    name: SAP Developer License
    url: https://www.sap.com/about/legal/developer-license.html
  termsOfService: https://www.ariba.com/legal/terms-of-use
  x-sap-api-type: REST
  x-sap-shortText: Procurement API for purchase orders, invoices, and suppliers
  x-sap-stateInfo:
    state: Active
  x-documentation:
  - url: https://help.sap.com/docs/ariba-apis
    description: SAP Help Portal - Ariba APIs
  - url: https://api.sap.com/package/SAPAribaOpenAPIs/rest
    description: SAP Business Accelerator Hub
  - url: https://help.sap.com/docs/ariba-apis/operational-reporting-api-for-procurement/operational-reporting-api-for-procurement
    description: Operational Reporting API for Procurement
servers:
- url: https://openapi.ariba.com/api/procurement/v1
  description: SAP Ariba Production API Server
- url: https://sandbox.ariba.com/api/procurement/v1
  description: SAP Ariba Sandbox API Server
security:
- oauth2: []
tags:
- name: Requisitions
  description: Create and manage purchase requisitions that initiate the procurement process and flow into purchase orders upon approval.
paths:
  /requisitions:
    get:
      operationId: listRequisitions
      summary: List Requisitions
      description: Retrieves a paginated list of purchase requisitions. Requisitions are the starting point of the procurement process and flow into purchase orders upon approval.
      tags:
      - Requisitions
      parameters:
      - $ref: '#/components/parameters/RealmParam'
      - $ref: '#/components/parameters/SkipParam'
      - $ref: '#/components/parameters/LimitParam'
      - name: filter
        in: query
        description: OData-style filter expression
        required: false
        schema:
          type: string
      - name: status
        in: query
        description: Filter by requisition status
        required: false
        schema:
          $ref: '#/components/schemas/RequisitionStatus'
      - name: requestor
        in: query
        description: Filter by requestor user ID
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Successfully retrieved list of requisitions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequisitionListResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: createRequisition
      summary: Create a Requisition
      description: Creates a new purchase requisition. The requisition enters the approval workflow and upon approval generates one or more purchase orders.
      tags:
      - Requisitions
      parameters:
      - $ref: '#/components/parameters/RealmParam'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequisitionCreate'
      responses:
        '201':
          description: Requisition created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Requisition'
          headers:
            Location:
              description: URI of the newly created requisition
              schema:
                type: string
                format: uri
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          description: Unprocessable entity - validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /requisitions/{requisitionId}:
    get:
      operationId: getRequisition
      summary: Get a Requisition
      description: Retrieves the complete details of a specific purchase requisition including line items, approval status, and linked purchase orders.
      tags:
      - Requisitions
      parameters:
      - $ref: '#/components/parameters/RealmParam'
      - name: requisitionId
        in: path
        description: Unique identifier for the requisition
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successfully retrieved requisition details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Requisition'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    AccountingInfo:
      type: object
      description: Accounting assignment information for cost allocation on purchase order line items
      properties:
        costCenter:
          type: string
          description: Cost center identifier for expenditure allocation
          example: example_value
        generalLedger:
          type: string
          description: General ledger account number
          example: example_value
        asset:
          type: string
          description: Fixed asset number
          example: example_value
        internalOrder:
          type: string
          description: Internal order number
          example: example_value
        wbsElement:
          type: string
          description: Work Breakdown Structure element
          example: example_value
        amount:
          $ref: '#/components/schemas/Money'
        percentage:
          type: number
          format: double
          description: Percentage of line item amount allocated to this accounting assignment
          minimum: 0
          maximum: 100
          example: 42.5
        sapDistributionFlag:
          type: string
          description: SAP distribution indicator flag
          example: example_value
        accountCategory:
          type: string
          description: Account assignment category code for the line item expenditure
          example: example_value
    Money:
      type: object
      description: Monetary amount with currency code following ISO 4217
      required:
      - amount
      - currencyCode
      properties:
        amount:
          type: number
          format: double
          description: The monetary value
          examples:
          - 1250.0
        currencyCode:
          type: string
          description: ISO 4217 currency code
          pattern: ^[A-Z]{3}$
          examples:
          - USD
          - EUR
          - GBP
    RequisitionListResponse:
      type: object
      description: Paginated list of requisitions
      properties:
        totalCount:
          type: integer
          example: 10
        skip:
          type: integer
          example: 10
        limit:
          type: integer
          example: 10
        requisitions:
          type: array
          items:
            $ref: '#/components/schemas/Requisition'
          example: []
    Address:
      type: object
      description: Postal address structure used for shipping, billing, and company addresses
      properties:
        name:
          type: string
          description: Addressee name or attention line
          example: Example Title
        lines:
          type: string
          description: Street address lines
          example: example_value
        city:
          type: string
          description: City name
          example: example_value
        state:
          type: string
          description: State or province
          example: example_value
        postalCode:
          type: string
          description: Postal or ZIP code
          example: example_value
        country:
          type: string
          description: Country code (ISO 3166-1 alpha-2)
          pattern: ^[A-Z]{2}$
          example: example_value
        phone:
          type: string
          description: Phone number
          example: example_value
        email:
          type: string
          format: email
          description: Email address
          example: user@example.com
    ErrorResponse:
      type: object
      description: Standard error response structure
      required:
      - error
      properties:
        error:
          type: object
          required:
          - code
          - message
          properties:
            code:
              type: string
              description: Machine-readable error code
              examples:
              - INVALID_REQUEST
              - RESOURCE_NOT_FOUND
              - UNAUTHORIZED
            message:
              type: string
              description: Human-readable error message
            details:
              type: array
              description: Additional error details
              items:
                type: object
                properties:
                  field:
                    type: string
                    description: Field name that caused the error (for validation errors)
                  message:
                    type: string
                    description: Detail message for this specific issue
                  errorNumber:
                    type: string
                    description: SAP error number
                  errorModule:
                    type: string
                    description: SAP module where the error originated
          example: example_value
    RequisitionStatus:
      type: string
      description: Status of a purchase requisition
      enum:
      - Composing
      - Submitted
      - PendingApproval
      - Approved
      - Denied
      - Ordered
      - Cancelled
    UnitOfMeasure:
      type: object
      description: Unit of measure specification following UN/ECE Recommendation 20 standard codes
      required:
      - code
      properties:
        code:
          type: string
          description: Unit of measure code (UN/ECE Rec 20 or SAP Ariba internal code)
          examples:
          - EA
          - KG
          - PC
          - HR
        description:
          type: string
          description: Human-readable description of the unit
          examples:
          - Each
          - Kilogram
          - Piece
          - Hour
    Requisition:
      type: object
      description: A purchase requisition requesting procurement of goods or services
      required:
      - requisitionId
      - title
      - requestor
      - lineItems
      properties:
        requisitionId:
          type: string
          description: Unique requisition identifier
          example: '500123'
        title:
          type: string
          description: Requisition title or name
          example: Example Title
        status:
          $ref: '#/components/schemas/RequisitionStatus'
        requestor:
          type: string
          description: User ID of the person who created the requisition
          example: example_value
        requestorName:
          type: string
          description: Full name of the requestor
          example: example_value
        department:
          type: string
          description: Department of the requestor
          example: example_value
        companyCode:
          type: string
          description: Company code
          example: example_value
        needByDate:
          type: string
          format: date
          description: Desired delivery date
          example: '2026-01-15'
        lineItems:
          type: array
          items:
            $ref: '#/components/schemas/PurchaseOrderLineItem'
          minItems: 1
          example: []
        totalAmount:
          $ref: '#/components/schemas/Money'
        purchaseOrderIds:
          type: array
          description: Purchase order IDs generated from this requisition after approval
          items:
            type: string
          example: []
        comments:
          type: string
          description: Requisition comments
          example: example_value
        createdDate:
          type: string
          format: date-time
          example: '2026-01-15T10:30:00Z'
        lastModifiedDate:
          type: string
          format: date-time
          example: '2026-01-15T10:30:00Z'
        approvedDate:
          type: string
          format: date-time
          example: '2026-01-15T10:30:00Z'
    TaxDetail:
      type: object
      description: Tax calculation details for an invoice or line item
      properties:
        taxCode:
          type: string
          description: Tax code identifier
          example: example_value
        taxCategory:
          type: string
          description: Tax category (e.g., VAT, GST, Sales Tax)
          example: example_value
        taxRate:
          type: number
          format: double
          description: Tax rate as a percentage
          minimum: 0
          example: 42.5
        taxAmount:
          $ref: '#/components/schemas/Money'
        taxableAmount:
          $ref: '#/components/schemas/Money'
        description:
          type: string
          description: Description of the tax
          example: A sample description.
    CommodityCode:
      type: object
      description: UNSPSC commodity classification code
      required:
      - code
      properties:
        code:
          type: string
          description: UNSPSC commodity code
          examples:
          - '43211500'
        description:
          type: string
          description: Commodity description
          examples:
          - Computers
        domain:
          type: string
          description: Classification domain identifier
          default: UNSPSC
          example: example_value
    PurchaseOrderLineItem:
      type: object
      description: A line item within a purchase order representing a specific good or service being procured
      required:
      - numberOnPO
      - description
      - quantity
      - unitPrice
      - unitOfMeasure
      properties:
        numberOnPO:
          type: string
          description: Line item number within the purchase order. Unique within the order.
          example: example_value
        description:
          type: string
          description: Description of the item or service being purchased
          example: A sample description.
        quantity:
          type: number
          format: double
          description: Quantity to purchase
          minimum: 0
          example: 42.5
        unitPrice:
          $ref: '#/components/schemas/Money'
        unitOfMeasure:
          $ref: '#/components/schemas/UnitOfMeasure'
        netAmount:
          $ref: '#/components/schemas/Money'
        commodityCode:
          $ref: '#/components/schemas/CommodityCode'
        buyerPartNumber:
          type: string
          description: Buyer-assigned part or material number
          example: example_value
        supplierPartNumber:
          type: string
          description: Supplier-assigned part or catalog number
          example: example_value
        manufacturerPartId:
          type: string
          description: Manufacturer part identifier
          example: '500123'
        manufacturerName:
          type: string
          description: Name of the manufacturer
          example: example_value
        itemCategory:
          type: string
          description: Item category code distinguishing material, service, or other item types
          example: example_value
        accountCategory:
          type: string
          description: Account assignment category for the line item expenditure
          example: example_value
        needByDate:
          type: string
          format: date
          description: Requested delivery date for the line item (ISO 8601 YYYY-MM-DD)
          example: '2026-01-15'
        shipTo:
          $ref: '#/components/schemas/Address'
        accountings:
          type: array
          description: Split accounting assignments for distributing costs across multiple cost objects
          items:
            $ref: '#/components/schemas/AccountingInfo'
          example: []
        receivingType:
          type: integer
          description: Receiving type value indicating how receipts should be processed for this line item
          example: 10
        taxCode:
          type: string
          description: Tax code per evaluated receipt settlement agreements
          example: example_value
        taxDetail:
          $ref: '#/components/schemas/TaxDetail'
        itemOnRequisition:
          type: string
          description: Line number of the corresponding item in the originating requisition
          example: example_value
        serviceStartDate:
          type: string
          format: date
          description: Service period start date (for service line items)
          example: '2026-01-15'
        serviceEndDate:
          type: string
          format: date
          description: Service period end date (for service line items)
          example: '2026-01-15'
        comments:
          type: string
          description: Additional comments or notes on the line item
          example: example_value
    RequisitionCreate:
      type: object
      description: Request body for creating a new requisition
      required:
      - title
      - lineItems
      properties:
        title:
          type: string
          example: Example Title
        needByDate:
          type: string
          format: date
          example: '2026-01-15'
        companyCode:
          type: string
          example: example_value
        lineItems:
          type: array
          items:
            $ref: '#/components/schemas/PurchaseOrderLineItem'
          minItems: 1
          example: []
        comments:
          type: string
          example: example_value
  responses:
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    InternalServerError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Forbidden:
      description: Forbidden - insufficient permissions for the requested operation
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: Unauthorized - invalid or missing authentication credentials
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    TooManyRequests:
      description: Rate limit exceeded. Retry after the duration specified in the Retry-After header.
      headers:
        Retry-After:
          description: Number of seconds to wait before retrying
          schema:
            type: integer
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    BadRequest:
      description: Bad request - invalid parameters or malformed request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  parameters:
    SkipParam:
      name: skip
      in: query
      description: Number of records to skip for pagination (default 0)
      required: false
      schema:
        type: integer
        minimum: 0
        default: 0
    RealmParam:
      name: realm
      in: query
      description: The SAP Ariba realm identifier for the buyer organization. This is the unique site name assigned during provisioning.
      required: true
      schema:
        type: string
    LimitParam:
      name: limit
      in: query
      description: Maximum number of records to return per page (default 10, max 100)
      required: false
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 10
  securitySchemes:
    oauth2:
      type: oauth2
      description: OAuth 2.0 Client Credentials flow for SAP Ariba API authentication. Obtain client credentials from the SAP Ariba Developer Portal.
      flows:
        clientCredentials:
          tokenUrl: https://api.ariba.com/v2/oauth/token
          scopes: {}