Credit Management API

Manage customer credit limits, credit exposure, and credit checks in SAP S/4HANA. Enables automated credit risk assessment during sales order processing.

OpenAPI Specification

sap-sd-credit-management-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: SAP Sales and Distribution (SD) SAP Credit Management API
  description: >-
    Manage customer credit limits, credit exposure, and credit checks in SAP
    S/4HANA. This OData service (API_CREDIT_MANAGEMENT) enables automated
    credit risk assessment during sales order processing, including reading
    credit accounts, credit exposure data, and managing credit limits for
    business partners.
  version: 1.0.0
  contact:
    name: SAP Support
    url: https://support.sap.com
  license:
    name: SAP Developer License
    url: https://www.sap.com/about/agreements/product-use-and-support-terms.html
servers:
  - url: https://sandbox.api.sap.com/s4hanacloud/sap/opu/odata/sap/API_CREDIT_MANAGEMENT
    description: SAP S/4HANA Cloud Sandbox
  - url: https://{host}:{port}/sap/opu/odata/sap/API_CREDIT_MANAGEMENT
    description: SAP S/4HANA On-Premise
    variables:
      host:
        default: localhost
      port:
        default: '443'
security:
  - basicAuth: []
  - oauth2: []
tags:
  - name: Credit Account
    description: Operations on credit management accounts
  - name: Credit Exposure
    description: Operations on credit exposure data
  - name: Credit Limit
    description: Operations on customer credit limits
paths:
  /A_CrdtMgmtBusinessPartner:
    get:
      operationId: listCreditAccounts
      summary: Retrieve a list of credit management accounts
      description: >-
        Returns a collection of credit management business partner accounts
        with credit profile information.
      tags:
        - Credit Account
      parameters:
        - $ref: '#/components/parameters/top'
        - $ref: '#/components/parameters/skip'
        - $ref: '#/components/parameters/filter'
        - $ref: '#/components/parameters/select'
        - $ref: '#/components/parameters/expand'
        - $ref: '#/components/parameters/inlinecount'
      responses:
        '200':
          description: Successfully retrieved credit accounts
          content:
            application/json:
              schema:
                type: object
                properties:
                  d:
                    type: object
                    properties:
                      results:
                        type: array
                        items:
                          $ref: '#/components/schemas/CrdtMgmtBusinessPartner'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /A_CrdtMgmtBusinessPartner('{BusinessPartner}'):
    get:
      operationId: getCreditAccount
      summary: Retrieve a single credit management account
      description: >-
        Returns credit management data for a single business partner, including
        credit rating, risk class, and credit block status.
      tags:
        - Credit Account
      parameters:
        - name: BusinessPartner
          in: path
          required: true
          description: Business partner number
          schema:
            type: string
            maxLength: 10
        - $ref: '#/components/parameters/select'
        - $ref: '#/components/parameters/expand'
      responses:
        '200':
          description: Successfully retrieved the credit account
          content:
            application/json:
              schema:
                type: object
                properties:
                  d:
                    $ref: '#/components/schemas/CrdtMgmtBusinessPartner'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
    patch:
      operationId: updateCreditAccount
      summary: Update a credit management account
      description: >-
        Updates credit management data for a business partner.
      tags:
        - Credit Account
      parameters:
        - name: BusinessPartner
          in: path
          required: true
          description: Business partner number
          schema:
            type: string
            maxLength: 10
        - $ref: '#/components/parameters/ifMatch'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CrdtMgmtBusinessPartnerUpdate'
      responses:
        '204':
          description: Credit account successfully updated
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /A_CrdtMgmtCreditLimit:
    get:
      operationId: listCreditLimits
      summary: Retrieve credit limits
      description: >-
        Returns a collection of credit limits for business partners across
        credit control areas and credit segments.
      tags:
        - Credit Limit
      parameters:
        - $ref: '#/components/parameters/top'
        - $ref: '#/components/parameters/skip'
        - $ref: '#/components/parameters/filter'
        - $ref: '#/components/parameters/select'
        - $ref: '#/components/parameters/inlinecount'
      responses:
        '200':
          description: Successfully retrieved credit limits
          content:
            application/json:
              schema:
                type: object
                properties:
                  d:
                    type: object
                    properties:
                      results:
                        type: array
                        items:
                          $ref: '#/components/schemas/CrdtMgmtCreditLimit'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /A_CrdtMgmtCreditLimit(BusinessPartner='{BusinessPartner}',CreditSegment='{CreditSegment}'):
    get:
      operationId: getCreditLimit
      summary: Retrieve a specific credit limit
      description: >-
        Returns credit limit data for a specific business partner and credit
        segment combination.
      tags:
        - Credit Limit
      parameters:
        - name: BusinessPartner
          in: path
          required: true
          description: Business partner number
          schema:
            type: string
            maxLength: 10
        - name: CreditSegment
          in: path
          required: true
          description: Credit segment
          schema:
            type: string
            maxLength: 4
        - $ref: '#/components/parameters/select'
      responses:
        '200':
          description: Successfully retrieved the credit limit
          content:
            application/json:
              schema:
                type: object
                properties:
                  d:
                    $ref: '#/components/schemas/CrdtMgmtCreditLimit'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
    patch:
      operationId: updateCreditLimit
      summary: Update a credit limit
      description: >-
        Updates the credit limit for a specific business partner and credit
        segment.
      tags:
        - Credit Limit
      parameters:
        - name: BusinessPartner
          in: path
          required: true
          description: Business partner number
          schema:
            type: string
            maxLength: 10
        - name: CreditSegment
          in: path
          required: true
          description: Credit segment
          schema:
            type: string
            maxLength: 4
        - $ref: '#/components/parameters/ifMatch'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CrdtMgmtCreditLimitUpdate'
      responses:
        '204':
          description: Credit limit successfully updated
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /A_CrdtMgmtCreditExposure(BusinessPartner='{BusinessPartner}',CreditSegment='{CreditSegment}'):
    get:
      operationId: getCreditExposure
      summary: Retrieve credit exposure for a business partner
      description: >-
        Returns credit exposure data showing the current credit utilization
        for a specific business partner and credit segment.
      tags:
        - Credit Exposure
      parameters:
        - name: BusinessPartner
          in: path
          required: true
          description: Business partner number
          schema:
            type: string
            maxLength: 10
        - name: CreditSegment
          in: path
          required: true
          description: Credit segment
          schema:
            type: string
            maxLength: 4
        - $ref: '#/components/parameters/select'
      responses:
        '200':
          description: Successfully retrieved credit exposure
          content:
            application/json:
              schema:
                type: object
                properties:
                  d:
                    $ref: '#/components/schemas/CrdtMgmtCreditExposure'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
    oauth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://{tenant}.authentication.{landscape}.hana.ondemand.com/oauth/token
          scopes:
            API_CREDIT_MANAGEMENT: Access to Credit Management API
  parameters:
    top:
      name: $top
      in: query
      schema:
        type: integer
        minimum: 0
    skip:
      name: $skip
      in: query
      schema:
        type: integer
        minimum: 0
    filter:
      name: $filter
      in: query
      schema:
        type: string
    select:
      name: $select
      in: query
      schema:
        type: string
    expand:
      name: $expand
      in: query
      schema:
        type: string
    inlinecount:
      name: $inlinecount
      in: query
      schema:
        type: string
        enum:
          - allpages
          - none
    ifMatch:
      name: If-Match
      in: header
      required: true
      schema:
        type: string
  schemas:
    CrdtMgmtBusinessPartner:
      type: object
      description: Credit management business partner entity
      properties:
        BusinessPartner:
          type: string
          maxLength: 10
          description: Business partner number
        CreditRiskClass:
          type: string
          maxLength: 3
          description: Risk class
        CreditRating:
          type: string
          maxLength: 3
          description: Credit rating
        CreditIsBlockedForBP:
          type: boolean
          description: Credit block indicator
        LastInternalReviewDate:
          type: string
          format: date
          description: Date of last internal review
        NextInternalReviewDate:
          type: string
          format: date
          description: Date of next internal review
    CrdtMgmtBusinessPartnerUpdate:
      type: object
      properties:
        CreditRiskClass:
          type: string
          maxLength: 3
        CreditRating:
          type: string
          maxLength: 3
        CreditIsBlockedForBP:
          type: boolean
    CrdtMgmtCreditLimit:
      type: object
      description: Credit limit entity
      properties:
        BusinessPartner:
          type: string
          maxLength: 10
          description: Business partner number
        CreditSegment:
          type: string
          maxLength: 4
          description: Credit segment
        CreditLimitAmount:
          type: string
          description: Credit limit amount
        CreditLimitAmountCurrency:
          type: string
          maxLength: 5
          description: Credit limit currency
        CreditLimitValidityEndDate:
          type: string
          format: date
          description: Validity end date
        CreditLimitIsExceeded:
          type: boolean
          description: Indicates if credit limit is exceeded
    CrdtMgmtCreditLimitUpdate:
      type: object
      properties:
        CreditLimitAmount:
          type: string
        CreditLimitAmountCurrency:
          type: string
          maxLength: 5
        CreditLimitValidityEndDate:
          type: string
          format: date
    CrdtMgmtCreditExposure:
      type: object
      description: Credit exposure entity
      properties:
        BusinessPartner:
          type: string
          maxLength: 10
          description: Business partner number
        CreditSegment:
          type: string
          maxLength: 4
          description: Credit segment
        CreditExposureAmount:
          type: string
          description: Total credit exposure amount
        CreditExposureCurrency:
          type: string
          maxLength: 5
          description: Currency of credit exposure
        OpenOrderValue:
          type: string
          description: Value of open sales orders
        OpenDeliveryValue:
          type: string
          description: Value of open deliveries
        OpenBillingDocValue:
          type: string
          description: Value of open billing documents
        OpenItemValue:
          type: string
          description: Value of open items in accounting
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
            message:
              type: object
              properties:
                lang:
                  type: string
                value:
                  type: string
  responses:
    BadRequest:
      description: Bad request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Authentication required
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    InternalServerError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'