SAP Business ByDesign Supply Chain API

Manage inbound and outbound deliveries, goods receipts, goods issues, and production orders.

OpenAPI Specification

sap-bydesign-supply-chain-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: SAP Business ByDesign OData Analytics Supply Chain API
  description: OData v2 REST API for SAP Business ByDesign — a cloud ERP solution for midmarket companies. Provides access to business objects and analytics across financials, CRM, procurement, supply chain, project management, and HR. Supports CRUD operations and custom OData services via the /sap/byd/odata/cust/v1/ namespace, plus pre-built analytics services via /sap/byd/odata/{service_name}.svc/.
  version: 1.0.0
  contact:
    name: SAP Support
    url: https://support.sap.com
  externalDocs:
    description: SAP Business ByDesign OData API Examples
    url: https://community.sap.com/t5/enterprise-resource-planning-blog-posts-by-sap/sap-business-bydesign-odata-api-examples/ba-p/13400614
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
servers:
- url: https://{tenant}.bydesign.cloud.sap
  description: SAP Business ByDesign tenant
  variables:
    tenant:
      default: my-tenant
      description: Your SAP Business ByDesign tenant hostname
security:
- basicAuth: []
- oAuth2: []
tags:
- name: Supply Chain
  description: Manage inbound and outbound deliveries, goods receipts, goods issues, and production orders.
paths:
  /sap/byd/odata/cust/v1/khoutbounddelivery/OutboundDeliveryCollection:
    get:
      summary: Query outbound deliveries
      description: Query outbound delivery records.
      operationId: queryOutboundDeliveries
      tags:
      - Supply Chain
      parameters:
      - $ref: '#/components/parameters/FilterParam'
      - $ref: '#/components/parameters/SelectParam'
      - $ref: '#/components/parameters/ExpandParam'
      - $ref: '#/components/parameters/TopParam'
      - $ref: '#/components/parameters/SkipParam'
      - $ref: '#/components/parameters/FormatParam'
      responses:
        '200':
          description: Collection of outbound delivery records.
          content:
            application/json:
              schema:
                type: object
                properties:
                  d:
                    type: object
                    properties:
                      results:
                        type: array
                        items:
                          $ref: '#/components/schemas/OutboundDelivery'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /sap/byd/odata/cust/v1/khoutbounddelivery/Release:
    post:
      summary: Release outbound delivery
      description: Releases an outbound delivery for picking and goods issue processing.
      operationId: releaseOutboundDelivery
      tags:
      - Supply Chain
      parameters:
      - $ref: '#/components/parameters/XCSRFTokenHeader'
      - name: ObjectID
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Outbound delivery released.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /sap/byd/odata/cust/v1/khoutbounddeliveryrequest/ItemPostGoodsIssue:
    post:
      summary: Post goods issue
      description: Posts a goods issue for an outbound delivery request item, reducing inventory and triggering logistics and financial postings.
      operationId: postGoodsIssue
      tags:
      - Supply Chain
      parameters:
      - $ref: '#/components/parameters/XCSRFTokenHeader'
      - name: ObjectID
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Goods issue posted.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /sap/byd/odata/cust/v1/khinbounddelivery/InboundDeliveryCollection:
    get:
      summary: Query inbound deliveries
      description: Query inbound delivery and customer return notification records.
      operationId: queryInboundDeliveries
      tags:
      - Supply Chain
      parameters:
      - $ref: '#/components/parameters/FilterParam'
      - $ref: '#/components/parameters/SelectParam'
      - $ref: '#/components/parameters/TopParam'
      - $ref: '#/components/parameters/SkipParam'
      - $ref: '#/components/parameters/FormatParam'
      responses:
        '200':
          description: Collection of inbound delivery records.
          content:
            application/json:
              schema:
                type: object
                properties:
                  d:
                    type: object
                    properties:
                      results:
                        type: array
                        items:
                          $ref: '#/components/schemas/InboundDelivery'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      summary: Create inbound delivery / customer return notification
      description: Creates a new inbound delivery or customer return notification record.
      operationId: createInboundDelivery
      tags:
      - Supply Chain
      parameters:
      - $ref: '#/components/parameters/XCSRFTokenHeader'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InboundDeliveryCreate'
      responses:
        '201':
          description: Inbound delivery created.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /sap/byd/odata/cust/v1/khinbounddelivery/PostGoodsReceipt:
    post:
      summary: Post goods receipt
      description: Posts a goods receipt for an inbound delivery, increasing inventory and triggering financial postings.
      operationId: postGoodsReceipt
      tags:
      - Supply Chain
      parameters:
      - $ref: '#/components/parameters/XCSRFTokenHeader'
      - name: ObjectID
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Goods receipt posted.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    OutboundDelivery:
      type: object
      description: SAP Business ByDesign outbound delivery.
      properties:
        ObjectID:
          type: string
        ID:
          type: string
        ShipToPartyID:
          type: string
        StatusCode:
          type: string
        PlannedShippingDate:
          type: string
          format: date
    InboundDeliveryCreate:
      type: object
      properties:
        SupplierID:
          type: string
        PlannedDeliveryDate:
          type: string
          format: date
    ODataError:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
            message:
              type: object
              properties:
                lang:
                  type: string
                value:
                  type: string
    InboundDelivery:
      type: object
      description: SAP Business ByDesign inbound delivery or customer return notification.
      properties:
        ObjectID:
          type: string
        ID:
          type: string
        SupplierID:
          type: string
        StatusCode:
          type: string
        PlannedDeliveryDate:
          type: string
          format: date
  parameters:
    XCSRFTokenHeader:
      name: x-csrf-token
      in: header
      required: true
      description: 'CSRF token obtained from a prior GET request with x-csrf-token: Fetch.'
      schema:
        type: string
    FormatParam:
      name: $format
      in: query
      required: false
      description: Response format. Use 'json' for JSON output.
      schema:
        type: string
        enum:
        - json
        - xml
        default: json
    SelectParam:
      name: $select
      in: query
      required: false
      description: Comma-separated list of properties to include in the response.
      schema:
        type: string
    TopParam:
      name: $top
      in: query
      required: false
      description: Maximum number of records to return.
      schema:
        type: integer
        minimum: 1
        maximum: 1000
        default: 20
    ExpandParam:
      name: $expand
      in: query
      required: false
      description: Comma-separated navigation properties to expand inline.
      schema:
        type: string
    FilterParam:
      name: $filter
      in: query
      required: false
      description: OData filter expression (e.g., Status eq 'Released' and PostingDate ge datetime'2024-01-01T00:00:00').
      schema:
        type: string
    SkipParam:
      name: $skip
      in: query
      required: false
      description: Number of records to skip for pagination.
      schema:
        type: integer
        minimum: 0
        default: 0
  responses:
    Unauthorized:
      description: Unauthorized — invalid or missing credentials.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ODataError'
    BadRequest:
      description: Bad request — invalid OData query parameters or request body.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ODataError'
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: HTTP Basic Authentication using SAP Business ByDesign user credentials.
    oAuth2:
      type: oauth2
      description: OAuth 2.0 authentication for SAP Business ByDesign.
      flows:
        clientCredentials:
          tokenUrl: https://{tenant}.bydesign.cloud.sap/sap/bc/sec/oauth2/token
          scopes: {}