openapi: 3.1.0 info: title: SAP Sales and Distribution (SD) SAP Credit Memo Request API description: >- Create, read, update, and delete credit memo requests in SAP S/4HANA. This OData service (API_CREDIT_MEMO_REQUEST_SRV) also enables approval or denial of credit memo requests that require authorization before processing. Credit memo requests are used to issue credit to customers for returns, pricing adjustments, or other reasons. 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_MEMO_REQUEST_SRV description: SAP S/4HANA Cloud Sandbox - url: https://{host}:{port}/sap/opu/odata/sap/API_CREDIT_MEMO_REQUEST_SRV description: SAP S/4HANA On-Premise variables: host: default: localhost port: default: '443' security: - basicAuth: [] - oauth2: [] tags: - name: Credit Memo Request description: Operations on credit memo request header (A_CreditMemoRequest) - name: Credit Memo Request Item description: Operations on credit memo request items (A_CreditMemoReqItem) paths: /A_CreditMemoRequest: get: operationId: listCreditMemoRequests summary: Retrieve a list of credit memo requests description: >- Returns a collection of credit memo request headers. Supports OData query options for filtering by document type, date, customer, and status. tags: - Credit Memo Request parameters: - $ref: '#/components/parameters/top' - $ref: '#/components/parameters/skip' - $ref: '#/components/parameters/filter' - $ref: '#/components/parameters/orderby' - $ref: '#/components/parameters/select' - $ref: '#/components/parameters/expand' - $ref: '#/components/parameters/inlinecount' responses: '200': description: Successfully retrieved credit memo requests content: application/json: schema: type: object properties: d: type: object properties: results: type: array items: $ref: '#/components/schemas/CreditMemoRequest' '401': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalServerError' post: operationId: createCreditMemoRequest summary: Create a new credit memo request description: >- Creates a new credit memo request with deep insert support for items, partners, and pricing elements. tags: - Credit Memo Request requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreditMemoRequestCreate' responses: '201': description: Credit memo request successfully created content: application/json: schema: type: object properties: d: $ref: '#/components/schemas/CreditMemoRequest' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalServerError' /A_CreditMemoRequest('{CreditMemoRequest}'): get: operationId: getCreditMemoRequest summary: Retrieve a single credit memo request description: >- Returns a single credit memo request by its document number. tags: - Credit Memo Request parameters: - name: CreditMemoRequest in: path required: true description: Credit memo request number (10 characters) schema: type: string maxLength: 10 - $ref: '#/components/parameters/select' - $ref: '#/components/parameters/expand' responses: '200': description: Successfully retrieved the credit memo request content: application/json: schema: type: object properties: d: $ref: '#/components/schemas/CreditMemoRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' patch: operationId: updateCreditMemoRequest summary: Update a credit memo request description: >- Updates an existing credit memo request header. tags: - Credit Memo Request parameters: - name: CreditMemoRequest in: path required: true description: Credit memo request number schema: type: string maxLength: 10 - $ref: '#/components/parameters/ifMatch' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreditMemoRequestUpdate' responses: '204': description: Credit memo request successfully updated '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' delete: operationId: deleteCreditMemoRequest summary: Delete a credit memo request description: >- Deletes an existing credit memo request. tags: - Credit Memo Request parameters: - name: CreditMemoRequest in: path required: true description: Credit memo request number schema: type: string maxLength: 10 - $ref: '#/components/parameters/ifMatch' responses: '204': description: Credit memo request successfully deleted '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' /A_CreditMemoRequest('{CreditMemoRequest}')/to_Item: get: operationId: listCreditMemoRequestItems summary: Retrieve items for a credit memo request description: >- Returns a collection of line items for the specified credit memo request. tags: - Credit Memo Request Item parameters: - name: CreditMemoRequest in: path required: true description: Credit memo request number schema: type: string maxLength: 10 - $ref: '#/components/parameters/top' - $ref: '#/components/parameters/skip' - $ref: '#/components/parameters/select' responses: '200': description: Successfully retrieved items content: application/json: schema: type: object properties: d: type: object properties: results: type: array items: $ref: '#/components/schemas/CreditMemoRequestItem' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' /AcceptApprovalRequest: post: operationId: acceptCreditMemoApprovalRequest summary: Accept a credit memo approval request description: >- Accepts an approval request for a credit memo request that requires authorization. tags: - Credit Memo Request parameters: - name: CreditMemoRequest in: query required: true description: Credit memo request number schema: type: string maxLength: 10 responses: '200': description: Approval request accepted content: application/json: schema: type: object properties: d: $ref: '#/components/schemas/CreditMemoRequest' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalServerError' /RejectApprovalRequest: post: operationId: rejectCreditMemoApprovalRequest summary: Reject a credit memo approval request description: >- Rejects an approval request for a credit memo request. tags: - Credit Memo Request parameters: - name: CreditMemoRequest in: query required: true description: Credit memo request number schema: type: string maxLength: 10 responses: '200': description: Approval request rejected content: application/json: schema: type: object properties: d: $ref: '#/components/schemas/CreditMemoRequest' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '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_MEMO_REQUEST_SRV: Access to Credit Memo Request 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 orderby: name: $orderby 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: CreditMemoRequest: type: object description: Credit memo request header entity (A_CreditMemoRequest) properties: CreditMemoRequest: type: string maxLength: 10 description: Credit memo request number CreditMemoRequestType: type: string maxLength: 4 description: Sales document type SalesOrganization: type: string maxLength: 4 description: Sales organization DistributionChannel: type: string maxLength: 2 description: Distribution channel OrganizationDivision: type: string maxLength: 2 description: Division SoldToParty: type: string maxLength: 10 description: Sold-to party CreationDate: type: string format: date description: Creation date CreditMemoRequestDate: type: string format: date description: Document date BillingDocumentDate: type: string format: date description: Billing date TotalNetAmount: type: string description: Net value in document currency TransactionCurrency: type: string maxLength: 5 description: Document currency SDDocumentReason: type: string maxLength: 3 description: Order reason PurchaseOrderByCustomer: type: string maxLength: 35 description: Customer purchase order number CustomerPaymentTerms: type: string maxLength: 4 description: Payment terms HeaderBillingBlockReason: type: string maxLength: 2 description: Billing block OverallSDProcessStatus: type: string maxLength: 1 description: Overall processing status TotalCreditCheckStatus: type: string maxLength: 1 description: Credit check status OverallBillingStatus: type: string maxLength: 1 description: Billing status CreditMemoRequestCreate: type: object required: - CreditMemoRequestType - SalesOrganization - DistributionChannel - OrganizationDivision properties: CreditMemoRequestType: type: string maxLength: 4 SalesOrganization: type: string maxLength: 4 DistributionChannel: type: string maxLength: 2 OrganizationDivision: type: string maxLength: 2 SoldToParty: type: string maxLength: 10 CreditMemoRequestDate: type: string format: date SDDocumentReason: type: string maxLength: 3 to_Item: type: object properties: results: type: array items: $ref: '#/components/schemas/CreditMemoRequestItemCreate' CreditMemoRequestUpdate: type: object properties: PurchaseOrderByCustomer: type: string maxLength: 35 HeaderBillingBlockReason: type: string maxLength: 2 BillingDocumentDate: type: string format: date CreditMemoRequestItem: type: object description: Credit memo request item entity (A_CreditMemoReqItem) properties: CreditMemoRequest: type: string maxLength: 10 description: Credit memo request number CreditMemoRequestItem: type: string maxLength: 6 description: Item number CreditMemoRequestItemCategory: type: string maxLength: 4 description: Item category Material: type: string maxLength: 40 description: Material number RequestedQuantity: type: string description: Order quantity RequestedQuantityUnit: type: string maxLength: 3 description: Sales unit NetAmount: type: string description: Net value of the item TransactionCurrency: type: string maxLength: 5 description: Document currency SalesDocument: type: string maxLength: 10 description: Reference sales document SalesDocumentItem: type: string maxLength: 6 description: Reference sales document item Plant: type: string maxLength: 4 description: Plant CreditMemoRequestItemCreate: type: object properties: Material: type: string maxLength: 40 RequestedQuantity: type: string RequestedQuantityUnit: type: string maxLength: 3 SalesDocument: type: string maxLength: 10 SalesDocumentItem: type: string maxLength: 6 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'