0% found this document useful (0 votes)
72 views

salesorder

This document provides an overview of the Sales Order (A2X, OData V2) API for creating, reading, updating, and deleting sales orders in external systems. It includes details on service structure, entities, operations, and constraints, as well as the required communication scenario for usage. Additionally, it highlights the importance of checking response messages and outlines the properties necessary for creating sales orders.

Uploaded by

mospabeknu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
72 views

salesorder

This document provides an overview of the Sales Order (A2X, OData V2) API for creating, reading, updating, and deleting sales orders in external systems. It includes details on service structure, entities, operations, and constraints, as well as the required communication scenario for usage. Additionally, it highlights the importance of checking response messages and outlines the properties necessary for creating sales orders.

Uploaded by

mospabeknu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 175

1/18/25, 8:45 PM

APIs for Sales


Generated on: 2025-01-18 20:45:49 GMT+0000

SAP S/4HANA Cloud Public Edition | 2502 Latest

Public

Original content: https://help.sap.com/docs/SAP_S4HANA_CLOUD/03c04db2a7434731b7fe21dca77440da?locale=en-


US&state=PRODUCTION&version=2502.500

Warning

This document has been generated from SAP Help Portal and is an incomplete version of the official SAP product documentation.
The information included in custom documentation may not reflect the arrangement of topics in SAP Help Portal, and may be
missing important aspects and/or correlations to other topics. For this reason, it is not for production use.

For more information, please visit https://help.sap.com/docs/disclaimer.

This is custom documentation. For more information, please visit SAP Help Portal. 1
1/18/25, 8:45 PM

Sales Order (A2X, OData V2)


Learn how to create, read, update, and delete sales orders in an external system with the Sales Order (A2X, OData V2) API.

Technical name: API_SALES_ORDER_SRV

You can use this synchronous inbound OData service to integrate external applications with sales order processing.

In every API call, you can use various operations on the entities. For more information about the supported operations, see
Operations for Sales Order (A2X, OData V2).

This service is published on the SAP Business Accelerator Hub. For more information about APIs, see APIs on SAP Business
Accelerator Hub.

Service Structure
The service metadata file can be retrieved through

/sap/opu/odata/SAP/API_SALES_ORDER_SRV/$metadata

Service Message Header

The service message header contains information on the service, the involved sender and receiver as well as date and time.

Service Entities

The service entities contain the business data of the service.

Service Entity Descriptions Link to details

A_SalesOrder Sales order header Sales Order Header

A_SalesOrderHeaderPartner Header partner of a sales order Header Partner

A_SalesOrderPartnerAddress Address of the header partner of a sales Header Partner Address


order

A_SalesOrderHeaderPrElement Manually entered header pricing element of Header Pricing Element


a sales order

A_SalesOrderBillingPlan Header billing plan of a sales order Header Billing Plan

A_SalesOrderBillingPlanItem Item of a header billing plan of a sales order Header Billing Plan Item

A_SalesOrderText Header text of a sales order Header Text

A_SlsOrdPaymentPlanItemDetails Payment plan of a sales order Header Payment Plan

A_SalesOrderRelatedObject Related object of a sales order header Header Related Object

A_SalesOrderPrecdgProcFlow Process flow of preceding documents of a Header Preceding Process Flow


sales order

A_SalesOrderSubsqntProcFlow Process flow of subsequent documents of a Header Subsequent Process Flow


sales order

This is custom documentation. For more information, please visit SAP Help Portal. 2
1/18/25, 8:45 PM

Service Entity Descriptions Link to details

A_SalesOrderItem Sales order item Sales Order Item

A_SalesOrderItemPartner Item partner of a sales order Item Partner

A_SalesOrderItemPartnerAddress Address of the item partner of a sales order Item Partner Address

A_SalesOrderItemPrElement Manually entered item pricing element of a Item Pricing Element


sales order

A_SalesOrderItemBillingPlan Item billing plan of a sales order Item Billing Plan

A_SlsOrderItemBillingPlanItem Item of an item billing plan of a sales order Item Billing Plan Item

A_SalesOrderItemText Item text of a sales order Item Text

A_SalesOrderItemRelatedObject Related object of a sales order item Item Related Object

A_SalesOrderItmPrecdgProcFlow Process flow of preceding items of a sales Item Preceding Process Flow
order item

A_SalesOrderItmSubsqntProcFlow Process flow of subsequent items of a sales Item Subsequent Process Flow
order item

A_SalesOrderScheduleLine Schedule line of a sales order item Item Schedule Line

Service Response

Parameter Description

SalesOrder property in A_SalesOrder When you use the create OData request to create a new sales order,
this field is filled with the newly created sales order data.

SalesOrder property and SalesOrderItem property in When you use the create OData request to create a new sales order
A_SalesOrderItem item, these fields are filled with the newly created sales order item
data.

Messages

When you send a request, note that messages (success messages, info messages, warnings, and errors) can exist even though the
request was successful. An indicator that you should check for any messages is the sap-message property in the response
header. For technical reasons, only 20 messages can be transmitted. If there are more messages, the last of those 20 messages
lets you know that additional messages exist. The first message is usually a generic message for the entire request, whereas the
following messages are sorted by severity. This means that if the second message and the third message you see are, for example,
info messages, there are no warnings or errors.

Note that not every processing failure (such as the failed processing of one or more specific fields) leads to an abortion of the
entire request. Trying to change a field that cannot be changed, for example, leads to an error, but the request itself is still
successful.

 Example
You send a PATCH request to change the SalesDocumentRjcnReason field for item 10. For the same item, you also want to
enhance a text entity for item 10. Since the item was already delivered, you can no longer change the rejection reason. However,
you can still update texts. The request is not aborted and the text is changed successfully. However, in the sap-message
property in the response header you can see that the SalesDocumentRjcnReason was not changed.

This is custom documentation. For more information, please visit SAP Help Portal. 3
1/18/25, 8:45 PM

Required Communication Scenario

To use this service, you have to configure the following communication scenario: SAP_COM_0109.

Constraints

With this service, it is only possible to process sell from stock scenarios (third-party processing, for example, is not supported).

With this service, it is not possible to:

Process sales orders with sales order processing type P (sales orders for project-based services (PBS))

Process sales documents of SD document category I (sales order without charge). You can use the Sales Order Without
Charge (A2X, OData V2) API for these sales orders.

Search in subentities based on filters

Create or process multiple sales orders in a single changeset of a $batch OData request

For more information about $batch requests, see $batch Processing.

Related Events
Sales Order Events

Parallel Use of this API and Business Add-Ins (BAdIs)


If you want this API to cancel processing without saving the sales document if an error is written into the application log, you can
use the Sales Document Check Before Save BAdI. If you want this API to continue processing and save the sales document, you
can use the Sales Header Check BAdI or the Sales Item Check BAdI. This behavior corresponds to the behavior of the related
apps.

Feature Comparison Documentation

Feature Comparison for Creating, Changing, and Displaying Sales Orders with APIs

Additional Information

Sales Order (A2X, OData V2)

 Note
For more details about Communication Management, see Communication Management.

Related Information
Business Add-Ins (BAdIs) for Sales Documents
Information About Your Own Cloud System

Sales Order Header


Learn how to use the header entity of the Sales Order (A2X, OData V2) API.

This is custom documentation. For more information, please visit SAP Help Portal. 4
1/18/25, 8:45 PM

Use

Technical name: A_SalesOrder

This node corresponds to the sales order header. The header contains data that is relevant for all sales order items (for example,
the sold-to party).

 Note
Depending on the operation, you can use the properties of this entity in different ways.

Create (POST)

If you want to use this API to create new data, you differentiate between the following property types:

Mandatory: You must include these properties in your request.

Optional: You can include these properties in your request.

Read-only: The system creates these properties automatically (for example, the creation date or various
document statuses) and you cannot change them.

Note that you can create a header in two ways:

You can use deep insert requests, meaning that you don't create a header on its own, but together with at least
one related entity (for example, the header partner).

You can create a header as a single entity.

Read (GET)

If you want to use this API to read data that already exists in the system, you can either retrieve all the data for the
document or include any of the properties of this entity in your request to retrieve only those.

Update (PATCH)

If you want to use this API to change data, you must include all the key properties of this entity in your request, so that
the system can identify the document and the entity that you want to change. In addition, you can include the properties
you want to change. Whether you can change a specific property or not depends on the general system behavior, your
system settings, and the current document status.

Lots of properties, for example, can no longer be changed as soon as subsequent documents exist.

Delete (DELETE)

If you want to use this API to delete data, you must include all the key properties of this entity in your request, so that
the system can identify the document and the entity that you want to delete. Whether you can delete a specific entity or
not depends on the general system behavior, your system settings, and the current document status.

The table below lists the information for the Create (POST) operation.

Properties

The following property is a key property:

SalesOrder

This is custom documentation. For more information, please visit SAP Help Portal. 5
1/18/25, 8:45 PM

Property Description Necessity

DistributionChannel The way in which products or services Optional


reach the customer. Typical examples of
distribution channels are wholesale, retail,
or direct sales.

OrganizationDivision A way of grouping materials, products, or Optional


services. The system uses divisions to
determine the sales areas and the business
areas for a material, product, or service.

SalesOrderType A classification that distinguishes between Mandatory


different types of sales documents

SalesOrganization An organizational unit responsible for the Optional


sale of certain products or services. The
responsibility of a sales organization may
include legal liability for products and
customer claims.

SoldToParty The customer who orders the goods or Mandatory


services. The sold-to party is contractually
For creating sales orders with reference:
responsible for sales orders.
Read-only

AccountingExchangeRate The exchange rate that the system applies Optional


when you create an invoice

AdditionalCustomerGroup1 Specifies a customer-defined group of Optional


customers. You can define up to five
different groups of customers, according to
the needs of your organization.

AdditionalCustomerGroup2 Specifies a customer-defined group of Optional


customers. You can define up to five
different groups of customers, according to
the needs of your organization.

AdditionalCustomerGroup3 Specifies a customer-defined group of Optional


customers. You can define up to five
different groups of customers, according to
the needs of your organization.

AdditionalCustomerGroup4 Specifies a customer-defined group of Optional


customers. You can define up to five
different groups of customers, according to
the needs of your organization.

AdditionalCustomerGroup5 Specifies a customer-defined group of Optional


customers. You can define up to five
different groups of customers, according to
the needs of your organization.

AssignmentReference A number that is used to sort and display Optional


line items.

Any subsequent documents which relate to


the invoice, such as a cancellation
document, credit or debit memo, will have
the same assignment reference. In this way,

This is custom documentation. For more information, please visit SAP Help Portal. 6
1/18/25, 8:45 PM

Property Description Necessity

the system identifies these documents as


belonging to a single business transaction.

CompleteDeliveryIsDefined Indicates whether a sales order must be Optional


delivered completely in a single delivery or
whether the order can be partially delivered
and completed over a number of deliveries

CustomerGroup Identifies a particular group of customers Optional


(for example, wholesale or retail) for the
purpose of pricing or generating statistics

CustomerPaymentTerms Key for defining payment terms composed Optional


of cash discount percentages and payment
periods

 Note
If you use deep insert requests, the
entities are processed sequentially. That
means, if you provide both the header
and the header partner entity in one
request and you provide a value for this
property, it might be overwritten if it is
determined from the partner master
data in the same request when the
header partner entity is processed. To
change the value, send a separate
Update request.

CustomerPriceGroup A grouping of customers who share the Optional


same pricing requirements

CustomerPurchaseOrderDate The reference date that is shown on the Optional


customer's purchase order. This date can
be, for example, the date on which the
customer created the purchase order.

CustomerPurchaseOrderType The way in which the sales order arrives Optional


from the customer, for example, by
telephone or e-mail

MatlAccountAssignmentGroup The account assignment group for the Optional


material is a group of materials with the
same accounting requirements. It is used
by the system when creating an accounting
document from a billing document to
determine the revenue or sales deduction
account.

DeliveryBlockReason Indicates if an entire sales order is blocked Optional


for delivery

DeliveryDateTypeRule Optional
 Note
You can only use this property if
Transportation Management is active in
your system and your business process
configuration expert has made the

This is custom documentation. For more information, please visit SAP Help Portal. 7
1/18/25, 8:45 PM

Property Description Necessity

necessary settings in the Define


Transportation-Relevance of Sales
Documents configuration activity in
your configuration environment.

Indicates when the ordered goods should


be delivered.

Supported values:

<blank>: The goods should be


delivered on the requested delivery
date or later. Note that there is no
guarantee that the goods will not be
delivered earlier.

A: The goods must be delivered


exactly on the confirmed delivery
date.

B: The goods must be delivered by


the confirmed delivery date (that is,
on the date or earlier).

With this property, you can set a default for


any items that you create afterward. If you
leave the property empty, the initial value
<blank> is used. The property won't have an
impact on any existing items.

 Note
If you use deep insert requests, the
entities are processed sequentially. That
means, if you provide both the header
and the header partner entity in one
request and you provide a value for this
property, it might be overwritten if it is
determined from the partner master
data in the same request when the
header partner entity is processed. To
change the value, send a separate
Update request.

ExternalDocumentID Indicates the external document ID of the Read-only


sales order that you used when you created
a sales order with the Sales Order (A2A)
API. For each business system, the
ExternalDocumentID must be unique.

HeaderBillingBlockReason Indicates if the entire sales order is blocked Optional


for billing

IncotermsClassification Commonly used trading terms that comply Optional


with the standards established by the
International Chamber of Commerce (ICC)

IncotermsLocation1 Provides additional information for the Optional


primary Incoterm

This is custom documentation. For more information, please visit SAP Help Portal. 8
1/18/25, 8:45 PM

Property Description Necessity

IncotermsLocation2 Provides additional information for the Optional


Incoterms

IncotermsTransferLocation Additional information for the primary Optional


Incoterm

IncotermsVersion Edition containing a list of international Optional


terms for transportation that is defined by
the International Chamber of Commerce
(ICC)

PaymentMethod Specifies how an item is to be paid Optional

PriceListType Identifies a price list or other condition type Optional


(for example, a surcharge or discount)

PricingDate The date that determines date-related Optional


pricing elements, such as conditions and
foreign exchange rate

PurchaseOrderByCustomer Customer reference number that the Optional


customer uses to uniquely identify a
purchasing document (for example, a sales
inquiry or a purchase order)

PurchaseOrderByShipToParty Number used by the end customer for Optional


unique identification of the purchasing
document (for example, an inquiry or a
purchase)

ReferenceSDDocument Specifies the document to which the sales Optional


order refers (a preceding document, such
as a sales quotation)

For more information, see Create Sales


Orders with Reference

RequestedDeliveryDate The date that the system automatically Optional


suggests as the delivery date for schedule
lines when you create further items in the
sales order

SalesDistrict A geographical sales district or region Optional

SalesGroup A group of sales people who are responsible Optional


for processing sales of certain products or
services

SalesOffice A physical location (for example, a branch Optional


office) that has responsibility for the sale of
certain products or services within a given
geographical area

SalesOrderDate The date on which you want the sales order Optional
to become effective for sales management
purposes

SDDocumentReason Indicates the reason for creating the sales Optional


order

This is custom documentation. For more information, please visit SAP Help Portal. 9
1/18/25, 8:45 PM

Property Description Necessity

ShippingCondition General shipping strategy for the delivery of Optional


goods from the supplier to the customer

ShippingType Shipping type (for example, by road or rail) Optional


that has been selected for the
transportation of the goods for the
shipment legs

SlsDocIsRlvtForProofOfDeliv Controls proof of delivery (POD) processing Optional

TaxDepartureCountry For tax determination, the country or region Optional


of departure is used as the plant country or
region.

TransactionCurrency The currency that applies to the sales order Optional

VATRegistrationCountry For tax determination, the country or region Optional


of the ship-to party is used as the tax
country or region of destination.

CreatedByUser Name of the person who created the object Read-only

CreationDate Date on which the record was created Read-only

LastChangeDate Date on which the record was last changed Read-only

LastChangeDateTime Date and time on which the record was last Read-only
changed

OverallSDDocumentRejectionSts Specifies the rejection status of the entire Read-only


sales order

OverallSDProcessStatus Specifies the processing status of the entire Read-only


sales order

OverallTotalDeliveryStatus Specifies the overall delivery status for all Read-only


items

ReferenceSDDocumentCategory Specifies the sales document category of Read-only


the reference document

For more information, see Create Sales


Orders with Reference

SalesDocApprovalStatus States whether a sales document is Read-only


relevant for approvals and, if so, which
approval stage it is in.

The following values are supported:

<blank>: Not relevant

A: In approval

B: Released

C: Rejected

D: To be reworked

 Note

This is custom documentation. For more information, please visit SAP Help Portal. 10
1/18/25, 8:45 PM

Property Description Necessity

You cannot make any changes to or


create subsequent documents for sales
orders that are in approval. To be able to
process the sales order, you have to first
reject it.

For more information about approvals, see


Release or Reject Sales Orders in Approval.

SalesOrder (key) Specifies the sales order ID. Optional

If you want to create a sales order using a


number from an external number range, see
the example here: Create Sales Order

SalesOrderApprovalReason States in which cases an approval is Read-only


needed. Whenever an approval request
reason is set and marked for an external
workflow, the sales order is considered
relevant for approvals and can be processed
using this service.

This property supports all the approval


reason IDs that you create for sales orders
in your configuration environment.

For more information about approvals, see


Release or Reject Sales Orders in Approval.

SenderBusinessSystemName Indicates the ID of the external business Read-only


system. This is the ID of the system that
you used for creating a sales order with the
Sales Order (A2A) API.

TotalCreditCheckStatus Specifies the overall status of credit checks Read-only

TotalNetAmount The total value of all items in the sales Read-only


order, after any discounts and surcharges
are taken into account. The value is
expressed in the document currency.

AccountingDocExternalReference The reference document number contains Optional


the document number with the business
partner. It serves as a search criterion when
displaying or changing documents.

CustomerAccountAssignmentGroup The account assignment group to which the Optional


system automatically posts the sales
document. The system uses the account
assignment group as one of the criteria
during the automatic determination of
revenue accounts.

CustomerTaxClassification1 The alternative tax classification indicates Optional


whether the system takes account of
customer-specific taxes for pricing (such as
value-added tax). The system copies the tax
classification from the tax information
stored in the customer master record of the

This is custom documentation. For more information, please visit SAP Help Portal. 11
1/18/25, 8:45 PM

Property Description Necessity

goods recipient. During pricing, the system


uses the tax classification and the country
or region key (which identifies the customer
location) to determine the relevant taxes.
You can enter a different (alternative) tax
classification in the order.

CustomerTaxClassification2 The alternative tax classification indicates Optional


whether the system takes account of
customer-specific taxes for pricing (such as
value-added tax). The system copies the tax
classification from the tax information
stored in the customer master record of the
goods recipient. During pricing, the system
uses the tax classification and the country
or region key (which identifies the customer
location) to determine the relevant taxes.
You can enter a different (alternative) tax
classification in the order.

CustomerTaxClassification3 The alternative tax classification indicates Optional


whether the system takes account of
customer-specific taxes for pricing (such as
value-added tax). The system copies the tax
classification from the tax information
stored in the customer master record of the
goods recipient. During pricing, the system
uses the tax classification and the country
or region key (which identifies the customer
location) to determine the relevant taxes.
You can enter a different (alternative) tax
classification in the order.

CustomerTaxClassification4 The alternative tax classification indicates Optional


whether the system takes account of
customer-specific taxes for pricing (such as
value-added tax). The system copies the tax
classification from the tax information
stored in the customer master record of the
goods recipient. During pricing, the system
uses the tax classification and the country
or region key (which identifies the customer
location) to determine the relevant taxes.
You can enter a different (alternative) tax
classification in the order.

CustomerTaxClassification5 The alternative tax classification indicates Optional


whether the system takes account of
customer-specific taxes for pricing (such as
value-added tax). The system copies the tax
classification from the tax information
stored in the customer master record of the
goods recipient. During pricing, the system
uses the tax classification and the country
or region key (which identifies the customer
location) to determine the relevant taxes.

This is custom documentation. For more information, please visit SAP Help Portal. 12
1/18/25, 8:45 PM

Property Description Necessity

You can enter a different (alternative) tax


classification in the order.

CustomerTaxClassification6 The alternative tax classification indicates Optional


whether the system takes account of
customer-specific taxes for pricing (such as
value-added tax). The system copies the tax
classification from the tax information
stored in the customer master record of the
goods recipient. During pricing, the system
uses the tax classification and the country
or region key (which identifies the customer
location) to determine the relevant taxes.
You can enter a different (alternative) tax
classification in the order.

CustomerTaxClassification7 The alternative tax classification indicates Optional


whether the system takes account of
customer-specific taxes for pricing (such as
value-added tax). The system copies the tax
classification from the tax information
stored in the customer master record of the
goods recipient. During pricing, the system
uses the tax classification and the country
or region key (which identifies the customer
location) to determine the relevant taxes.
You can enter a different (alternative) tax
classification in the order.

CustomerTaxClassification8 The alternative tax classification indicates Optional


whether the system takes account of
customer-specific taxes for pricing (such as
value-added tax). The system copies the tax
classification from the tax information
stored in the customer master record of the
goods recipient. During pricing, the system
uses the tax classification and the country
or region key (which identifies the customer
location) to determine the relevant taxes.
You can enter a different (alternative) tax
classification in the order.

CustomerTaxClassification9 The alternative tax classification indicates Optional


whether the system takes account of
customer-specific taxes for pricing (such as
value-added tax). The system copies the tax
classification from the tax information
stored in the customer master record of the
goods recipient. During pricing, the system
uses the tax classification and the country
or region key (which identifies the customer
location) to determine the relevant taxes.
You can enter a different (alternative) tax
classification in the order.

FixedValueDate The date on which the terms of payment Optional


related to the sales order become effective.

This is custom documentation. For more information, please visit SAP Help Portal. 13
1/18/25, 8:45 PM

Property Description Necessity

If you enter a value for this property, you


cannot enter a date for the
AdditionalValueDays property.

ExternalDocLastChangeDateTime Timestamp, serves as revision timestamp of Read-only


the sales order. This property is relevant if
you use the Sales Order (A2A) API. It helps
to identify the most recent SOAP message
for changing a sales order.

PriceDetnExchangeRate Exchange rate for price determination Optional

OverallDeliveryStatus Specifies the cumulated delivery status of Read-only


all items in the sales order

TotalBlockStatus Specifies the overall block status. The value Read-only


of this property is calculated according to
the following values: overall header delivery
block status + overall header billing block
status + header credit check status.

OverallOrdReltdBillgStatus Specifies whether the sales order is Read-only


relevant for billing, and, if so, to what extent
billing has taken place

OverallSDDocReferenceStatus Specifies whether one or more other sales Read-only


documents have referenced this document
partially, completely, or not at all

BillingDocumentDate The date on which billing and booking for Optional


accounting purposes takes place

ContractAccount Identifies a contract account per client, that Optional


is, an account in which posting data for
contracts or contract items are processed
for which the same collection/payment
agreements apply.
Contract accounts are managed on an open
item basis within contract accounts
receivable and payable.

AdditionalValueDays Specifies the number of days between the Optional


billing date and the date on which the terms
of payment for the sales document become
effective. If you enter a value for this
property, you cannot enter a date for the
FixedValueDate property.

CustomerPurchaseOrderSuplmnt Additional information to help identify the Optional


customer's sales document

ServicesRenderedDate Specifies the date of services rendered that Optional


determines when the system calculates
taxes (for example, sales tax) for the
product. If you deliver products, the date of
services rendered corresponds to the goods
issue date and you do not have to enter a
date for this property. If you provide a
service, however, and you are billing hours,
This is custom documentation. For more information, please visit SAP Help Portal. 14
1/18/25, 8:45 PM

Property Description Necessity

you can enter a date manually. You can use


the date of services rendered as one of the
selection criteria when you process billing
documents collectively.

BillingPlan Specifies the number of the billing plan of a Read-only


sales order
Note that this property is not returned for
Create requests.

SalesOrderTypeInternalCode The abbreviated form of the name that Read-only


identifies the sales order type in a
Note that this property is not returned for
language-independent format used in the
Create requests.
database. The standard order, for example,
is identified as TA.

Supported Operations

The following operations are supported:

Create (see also Create Sales Order)

Read

Update

Delete

For more information, see Operations for Sales Order (A2X, OData V2).

Related Information
Sales Order (A2A)
Create Sales Order

Header Partner
Learn how to use the header partner entity of the Sales Order (A2X, OData V2) API.

Use

Technical name: A_SalesOrderHeaderPartner

This node corresponds to the sales order header partner. The sales order header partner contains data about the partner function,
that is, the rights and responsibilities of each partner in a business transaction (for example, the ship-to party). It is relevant for all
sales order items.

For more information about partners, see Customer and Business Partner.

This API doesn't support the use of one-time customers.

 Note

This is custom documentation. For more information, please visit SAP Help Portal. 15
1/18/25, 8:45 PM
Depending on the operation, you can use the properties of this entity in different ways.

Create (POST)

If you want to use this API to create new data, you differentiate between the following property types:

Mandatory: You must include these properties in your request.

Optional: You can include these properties in your request.

Read-only: The system creates these properties automatically (for example, the creation date or various
document statuses) and you cannot change them.

Note that you can create a header partner in two ways:

You can use deep insert requests, meaning that you don't create a header partner on its own, but together with
the related header entity.

You can create a header partner as a single entity. Prerequisite is that the header already exists.

Read (GET)

If you want to use this API to read data that already exists in the system, you can either retrieve all the data for the
document or include any of the properties of this entity in your request to retrieve only those.

Update (PATCH)

If you want to use this API to change data, you must include all the key fields of this entity in your request, so that the
system can identify the document and the entity that you want to change. In addition, you can include the properties
you want to change. Whether you can change a specific property or not depends on the general system behavior, your
system settings, and the current document status.

Lots of properties, for example, can no longer be changed as soon as subsequent documents exist.

Delete (DELETE)

If you want to use this API to delete data, you must include all the key fields of this entity in your request, so that the
system can identify the document and the entity that you want to delete. Whether you can delete a specific entity or not
depends on the general system behavior, your system settings, and the current document status.

The table below lists the information for the Create (POST) operation.

Properties
The following properties are key properties:

PartnerFunction

SalesOrder

Property Description Necessity

PartnerFunction (key) The abbreviated form of the name that Mandatory


identifies the partner function. The ship-to
party in your system could be abbreviated,
for example, to SH.

 Note

This is custom documentation. For more information, please visit SAP Help Portal. 16
1/18/25, 8:45 PM

Property Description Necessity

You cannot use this property to provide


the sold-to party. The sold-to party is
determined from the A_SalesOrder
entity.

ContactPerson The number that uniquely identifies the Depending on the partner function chosen,
contact person the corresponding parameter (one of the
four listed) is mandatory
Customer An alphanumeric key that uniquely
identifies the customer or supplier

Personnel The number that uniquely identifies an


employee

Supplier An alphanumeric key that uniquely


identifies the supplier

WorkAssignmentExternalID The number that uniquely identifies an Optional


employee in an external system

If you provide this property, note that you


must not provide any of the following
properties:

ContactPerson

Customer

Personnel

Supplier

BusinessPartnerAddressUUID If multiple address handling for business Optional


partners is active in your system, this field
contains a universally unique identifier
(UUID) that represents a specific business
partner address stored in customer master
data.

Business partner address UUIDs are


supported for all partner functions of
partner type Customer (KU), except for the
partner function Payer, as well for all
partner functions of partner type Contact
Person (AP).

For more information about multiple


address handling for business partners in
SD documents and how to enable it, see
Multiple Address Handling in SD
Documents Using SAP Business Partner.

VATRegistration Specifies the VAT registration number of Optional


the customer, supplier, or your company
Only relevant for ship-to parties (partner
code
function SH)

This is custom documentation. For more information, please visit SAP Help Portal. 17
1/18/25, 8:45 PM

Property Description Necessity

AddressID Specifies the address number (for example, Read-only


of persons or of organizational units such
as company codes and plants)

BPRefAddrForDocSpcfcAddrUUID If multiple address handling for business Read-only


partners is active in your system, this field
can contain a universally unique identifier
(UUID) that represents a business partner
reference address.

A business partner reference address is


created in a document when a document-
specific address is saved to a document.
When this happens, the previously active
business partner address is saved as the
business partner reference address.

 Note
Business partner reference addresses
are supported only for partner functions
of partner type Customer (KU), except
for the partner function Payer.

PartnerFunctionInternalCode The abbreviated form of the name that Read-only


identifies the partner function in a
language-independent format used in the
database. The ship-to party, for example, is
identified as WE.

ReferenceBusinessPartner Key identifying a business partner in the Read-only


SAP system. The key is unique within a
client.

SalesOrder (key) Specifies the sales order ID Read-only

Supported Operations

The following operations are supported:

Create

Read

Update

Delete

For more information, see Operations for Sales Order (A2X, OData V2).

Header Partner Address


Learn how to use the header partner address entity of the Sales Order (A2X, OData V2) API.

This is custom documentation. For more information, please visit SAP Help Portal. 18
1/18/25, 8:45 PM

Use

Technical name: A_SalesOrderPartnerAddress

This node corresponds to the document-specific one-time address of a sales order partner.

 Note
Depending on the operation, you can use the properties of this entity in different ways.

Create (POST)

If you want to use this API to create new data, you differentiate between the following property types:

Mandatory: You must include these properties in your request.

Optional: You can include these properties in your request.

Read-only: The system creates these properties automatically (for example, the creation date or various
document statuses) and you cannot change them.

Note that you must use deep insert requests, meaning that you don't create a header partner address on its own, but
together with the related header entity.

Read (GET)

Note that you cannot use this API to read addresses that are determined from master data.

If you want to use this API to read data that already exists in the system, you can either retrieve all the data for the
document or include any of the properties of this entity in your request to retrieve only those.

Update (PATCH)

For partners using an address determined from master data, you can use a patch request to change the address for the
respective partner in the respective sales order, thus creating a document-specific one-time address.

If you want to use this API to change data, you must include all the key properties of this entity in your request, so that
the system can identify the document and the entity that you want to change. In addition, you can include the properties
you want to change. Whether you can change a specific property or not depends on the general system behavior, your
system settings, and the current document status.

Lots of properties, for example, can no longer be changed as soon as subsequent documents exist.

The table below lists the information for the Create (POST) operation.

Properties
The following properties are key properties:

SalesOrder

PartnerFunction

AddressRepresentationCode

Property Description Necessity

AddresseeFullName Full name of the addressee Read-only

This is custom documentation. For more information, please visit SAP Help Portal. 19
1/18/25, 8:45 PM

Property Description Necessity

CityName City Optional

CorrespondenceLanguage Language key that indicates the language of Optional


correspondence for the address

Country Country or region Mandatory

DistrictName District Optional

EmailAddress Email Optional

FaxAreaCodeSubscriberNumber Fax number Optional

FaxExtensionNumber Fax extension Optional

FaxNumberCountry International area code of the fax number. Read-only


This value is determined based on the
Country property.

FormOfAddress Code form of the title of the addressee (if Optional


applicable)

Supported values:

0001: Ms.

0002: Mr.

0003: Company

0004: Mr. and Mrs.

HouseNumber House number Optional

MobileNumber Mobile phone number Optional

MobilePhoneCountry International area code of the mobile phone Read-only


number. This value is determined based on
the Country property.

OrganizationName1 Additional name of an organization or Optional


person

OrganizationName2 Additional name of an organization or Optional


person

OrganizationName3 Additional name of an organization or Optional


person

OrganizationName4 Additional name of an organization or Optional


person

PartnerFunction (key) The abbreviated description of the partner Optional


function

PhoneExtensionNumber Phone extension Optional

PhoneNumber Phone number Optional

PhoneNumberCountry International area code of the phone Read-only


number. This value is determined based on

This is custom documentation. For more information, please visit SAP Help Portal. 20
1/18/25, 8:45 PM

Property Description Necessity

the Country property.

POBox PO box Optional

POBoxPostalCode Postal code of PO box Optional

PostalCode Postal code Optional

Region Region Optional

SalesOrder (key) Number that uniquely identifies the sales Read-only


order

StreetName Street Optional

StreetPrefixName1 Additional address property which is Optional


printed above the line for the street. The
street address contains two lines above the
street and two lines below the street.

StreetPrefixName2 Additional address property which is Optional


printed above the line for the street. The
street address contains two lines above the
street and two lines below the street.

StreetSuffixName1 Additional address property which is Optional


printed below the line for the street. The
street address contains two lines above the
street and two lines below the street.

StreetSuffixName2 Additional address property which is Optional


printed below the line for the street. The
street address contains two lines above the
street and two lines below the street.

TaxJurisdiction A geographical area, from a tax law Optional


perspective, in countries where taxes are
levied at more than one administrative level

TransportZone Transportation zone to or from which the Optional


goods are delivered

AddressRepresentationCode (key) In the system, you can maintain addresses Read-only


in multiple versions so that addresses are
stored in different international display
formats (such as Kanji or Latin letters).

 Note
Since this API does not support various
language versions, you must always
leave this property empty.

Supported Operations
The following operations are supported:

Create (only as part of deep insert requests)

This is custom documentation. For more information, please visit SAP Help Portal. 21
1/18/25, 8:45 PM
Read

Update

For more information, see Operations for Sales Order (A2X, OData V2).

Related Information
Create Sales Order with Document-Specific Address

Header Pricing Element


Learn how to use the header pricing element entity of the Sales Order (A2X, OData V2) API.

Use

Technical name: A_SalesOrderHeaderPrElement

This node corresponds to the sales order header pricing element. The sales order header pricing element contains data related to,
for example, prices, discounts, surcharges, freight, or taxes. It is relevant for all sales order items.

Currently, cumulated item conditions are not persisted in pricing. Only manually entered header conditions are returned.

 Note
Depending on the operation, you can use the properties of this entity in different ways.

Create (POST)

If you want to use this API to create new data, you differentiate between the following property types:

Mandatory: You must include these properties in your request.

Optional: You can include these properties in your request.

Read-only: The system creates these properties automatically (for example, the creation date or various
document statuses) and you cannot change them.

Note that you can create a header pricing element in two ways:

You can use deep insert requests, meaning that you don't create a header pricing element on its own, but
together with the related header entity.

You can create a header pricing element as a single entity. Prerequisite is that the header already exists.

Read (GET)

If you want to use this API to read data that already exists in the system, you can either retrieve all the data for the
document or include any of the properties of this entity in your request to retrieve only those.

Update (PATCH)

If you want to use this API to change data, you must include all the key properties of this entity in your request, so that
the system can identify the document and the entity that you want to change. In addition, you can include the properties
you want to change. Whether you can change a specific property or not depends on the general system behavior, your
system settings, and the current document status.

Lots of properties, for example, can no longer be changed as soon as subsequent documents exist.

This is custom documentation. For more information, please visit SAP Help Portal. 22
1/18/25, 8:45 PM
Delete (DELETE)

If you want to use this API to delete data, you must include all the key properties of this entity in your request, so that
the system can identify the document and the entity that you want to delete. Whether you can delete a specific entity or
not depends on the general system behavior, your system settings, and the current document status.

The table below lists the information for the Create (POST) operation.

Properties
The following properties are key properties:

PricingProcedureCounter

PricingProcedureStep

SalesOrder

Property Description Necessity

ConditionType The key that uniquely identifies the Mandatory


condition

ConditionCurrency The currency key for amounts in the system Optional

ConditionQuantity The quantity on which the amount or Optional


percentage is based. The quantity is
expressed in sales units (for example,
bottles).

ConditionQuantityUnit The quantity unit to which the condition Optional


amount or percentage refers. You can use
either the language-dependent unit code,
the ISO code, the SAP code (the format
found in the database without conversions).

ConditionQuantitySAPUnit The quantity unit to which the condition Optional


amount or percentage refers. You can use
either the language-dependent unit code,
the ISO code, the SAP code (the format
found in the database without conversions).

ConditionQuantityISOUnit The quantity unit to which the condition Optional


amount or percentage refers. You can use
either the language-dependent unit code,
the ISO code, the SAP code (the format
found in the database without conversions).

ConditionRateValue Determines how the system calculates Optional


pricing using this condition. Depending on
the condition type, the rate can be an
amount or a percentage. If the condition
includes a pricing scale, the rate displays
the first line of the scale.

CndnIsRelevantForIntcoBilling A condition (KFKIV) that is relevant for Read-only


intercompany billing

This is custom documentation. For more information, please visit SAP Help Portal. 23
1/18/25, 8:45 PM

Property Description Necessity

CndnRoundingOffDiffAmount The rounding-off difference of the condition Read-only

ConditionAmount The value, resulting from pricing, for a Read-only


particular condition, total, or subtotal in a
sales order

ConditionBaseValue The base value that the system uses to Read-only


calculate pricing for the condition

ConditionCalculationType Determines how the system calculates Read-only


prices, discounts, or surcharges in a
condition. For example, the system can
calculate a price as a fixed amount or as a
percentage based on quantity, volume, or
weight.

ConditionCategory A classification of conditions according to Read-only


pre-defined categories (for example, all
conditions that relate to freight costs)

ConditionClass Preliminary structuring of condition types, Read-only


for example, in surcharges and discounts or
prices

ConditionControl Indicates whether the prices or values in a Read-only


condition are fixed or whether and in what
way they changed

ConditionInactiveReason Indicates if the condition is active Read-only

ConditionIsForConfiguration A variant condition (KVARC) is a condition Read-only


that is relevant for configuration.

ConditionIsForStatistics Indicates whether a surcharge or discount Read-only


is to be set in the sales order statistically
(that is, without altering the value)

ConditionIsManuallyChanged Indicates whether the condition has been Read-only


manually or automatically changed or
created (by entry on the condition screen)

ConditionOrigin Indicates where the condition originated Read-only


(for example, whether you entered the
condition manually or whether the system
determined it automatically)

ConditionRecord Number that uniquely identifies a condition Read-only


record

ConditionScaleBasisCurrency Specifies a currency for a pricing scale in a Read-only


condition record

ConditionScaleBasisUnit Unit of measure to which the quantity scale Read-only


refers

ConditionScaleBasisValue The level of the pricing scale that applies to Read-only


the item

This is custom documentation. For more information, please visit SAP Help Portal. 24
1/18/25, 8:45 PM

Property Description Necessity

ConditionSequentialNumber The sequential number that uniquely Read-only


identifies the condition if a condition
supplement exists

FactorForConditionBasisValue The factor for the condition base value Read-only

IsGroupCondition Indicates whether the system calculates the Read-only


basis for the scale value from more than
one item in the sales order

PeriodFactorForCndnBasisValue The factor for the condition basis (period) Read-only

PrcgProcedureCounterForHeader The condition counter (header) Read-only

PricingDateTime The timestamp for pricing Read-only

PricingProcedureCounter (key) Access number of the conditions within a Read-only


step in the pricing procedure

PricingProcedureStep (key) Number that determines the sequence of Read-only


the condition within a procedure

PricingScaleBasis Determines how the system interprets a Read-only


pricing scale in a condition. For example,
the scale can be based on quantity, weight,
or volume.

PricingScaleType Indicator that controls the validity of the Read-only


scale value or percentage as follows:

From a certain quantity or value


(base scale)

Up to a certain quantity or value (to-


scale)

SalesOrder (key) Specifies the sales order ID Read-only

StructureCondition Controls whether the condition type should Read-only


be a duplicated condition or a cumulated
condition. A duplicated condition is
duplicated into all assigned items, whereas
a cumulated condition contains the net
value of all assigned items.

TaxCode The tax code represents a tax category Read-only


which must be taken into consideration
when making a tax return to the tax
authorities.

TransactionCurrency The currency that applies to the sales order Read-only

WithholdingTaxCode One or more withholding tax codes are Read-only


assigned to each withholding tax type. One
of the things these codes determine is the
various percentage rates for the
withholding tax type.

This is custom documentation. For more information, please visit SAP Help Portal. 25
1/18/25, 8:45 PM

Property Description Necessity

PriceConditionDeterminationDte The timestamp for pricing. This property is Read-only


meant to replace the PricingDateTime
property, which will remain in the APIs for
compatibility reasons.

Example

For Read requests or in responses to Create requests, the Sales Order (A2X, OData V2) API returns only the following:

Condition types that were created manually in the header (that is, no conditions that are cumulated from all items)

Conditions with condition types in the item (that is, no subtotals)

If you want to return all pricing element properties (both in Read requests and in responses to Create requests), you can use the
Sales Order (A2X, OData V4) API.

Create Request

The following request creates a sales order with a header pricing element and an item with an item pricing element.

POST <host> /sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrder


{
"SalesOrderType": "OR",
"SalesOrganization": "1010",
"DistributionChannel": "10",
"OrganizationDivision": "00",
"SoldToParty": "10100003",
"PurchaseOrderByCustomer": "Created via V2 API",
"to_PricingElement": [
{
"ConditionType": "DRN1",
"ConditionRateValue": "10.5"
}
],
"to_Item": [
{
"Material": "TG12",
"RequestedQuantity": "20",
"RequestedQuantityISOUnit": "PCE",
"to_PricingElement": [
{
"ConditionType": "PMP0",
"ConditionRateValue": "34.34",
"ConditionCurrency": "USD",
"ConditionQuantity": "2",
"ConditionQuantityISOUnit": "PCE"
},
{
"ConditionType": "YK07",
"ConditionRateValue": "10.67"
}
]
}
]
}

The following figure illustrates this header pricing element:

This is custom documentation. For more information, please visit SAP Help Portal. 26
1/18/25, 8:45 PM

Response

The system only returns the sales order header, but no subentities (that is, no header pricing element, no item, and no item pricing
element).

Read Request for the Sales Order Header

The following request reads the header pricing element.

GET <host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrder('112300')/to_PricingElement

Response

The system returns the following response.

<feed xmlns="http://www.w3.org/2005/Atom" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataser


<id>https://<host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrder('112300')/to_PricingEleme
<title type="text">A_SalesOrderHeaderPrElement</title>
<updated>2023-11-30T15:51:38Z</updated>
<author>
<name/>
</author>
<link href="A_SalesOrder('112300')/to_PricingElement" rel="self" title="A_SalesOrderHeaderPrEle
<entry>
<id>https://<host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrderHeaderPrElement(SalesO
<title type="text">A_SalesOrderHeaderPrElement(SalesOrder='112300',PricingProcedureStep='21
<updated>2023-11-30T15:51:38Z</updated>
<category term="API_SALES_ORDER_SRV.A_SalesOrderHeaderPrElementType" scheme="http://schemas
<link href="A_SalesOrderHeaderPrElement(SalesOrder='112300',PricingProcedureStep='210',Pric
<link href="A_SalesOrderHeaderPrElement(SalesOrder='112300',PricingProcedureStep='210',Pric
<content type="application/xml">
<m:properties xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
<d:SalesOrder>112300</d:SalesOrder>
<d:PricingProcedureStep>210</d:PricingProcedureStep>
<d:PricingProcedureCounter>1</d:PricingProcedureCounter>
<d:ConditionType>DRN1</d:ConditionType>
<d:PricingDateTime>20231130000000</d:PricingDateTime>
<d:PriceConditionDeterminationDte>2023-11-30T00:00:00</d:PriceConditionDeterminatio

This is custom documentation. For more information, please visit SAP Help Portal. 27
1/18/25, 8:45 PM
<d:ConditionCalculationType>A</d:ConditionCalculationType>
<d:ConditionBaseValue>0.000000000</d:ConditionBaseValue>
<d:ConditionRateValue>10.500000000</d:ConditionRateValue>
<d:ConditionCurrency></d:ConditionCurrency>
<d:ConditionQuantity>0</d:ConditionQuantity>
<d:ConditionQuantityUnit></d:ConditionQuantityUnit>
<d:ConditionQuantitySAPUnit></d:ConditionQuantitySAPUnit>
<d:ConditionQuantityISOUnit></d:ConditionQuantityISOUnit>
<d:ConditionCategory></d:ConditionCategory>
<d:ConditionIsForStatistics>false</d:ConditionIsForStatistics>
<d:PricingScaleType></d:PricingScaleType>
<d:ConditionOrigin>C</d:ConditionOrigin>
<d:IsGroupCondition></d:IsGroupCondition>
<d:ConditionRecord></d:ConditionRecord>
<d:ConditionSequentialNumber>0</d:ConditionSequentialNumber>
<d:TaxCode></d:TaxCode>
<d:WithholdingTaxCode></d:WithholdingTaxCode>
<d:CndnRoundingOffDiffAmount>0.00</d:CndnRoundingOffDiffAmount>
<d:ConditionAmount>0.00</d:ConditionAmount>
<d:TransactionCurrency>EUR</d:TransactionCurrency>
<d:ConditionControl>C</d:ConditionControl>
<d:ConditionInactiveReason></d:ConditionInactiveReason>
<d:ConditionClass>A</d:ConditionClass>
<d:PrcgProcedureCounterForHeader>1</d:PrcgProcedureCounterForHeader>
<d:FactorForConditionBasisValue>0</d:FactorForConditionBasisValue>
<d:StructureCondition></d:StructureCondition>
<d:PeriodFactorForCndnBasisValue>0</d:PeriodFactorForCndnBasisValue>
<d:PricingScaleBasis></d:PricingScaleBasis>
<d:ConditionScaleBasisValue>0.000000000</d:ConditionScaleBasisValue>
<d:ConditionScaleBasisUnit></d:ConditionScaleBasisUnit>
<d:ConditionScaleBasisCurrency></d:ConditionScaleBasisCurrency>
<d:CndnIsRelevantForIntcoBilling>false</d:CndnIsRelevantForIntcoBilling>
<d:ConditionIsManuallyChanged>true</d:ConditionIsManuallyChanged>
<d:ConditionIsForConfiguration>false</d:ConditionIsForConfiguration>
<d:VariantCondition></d:VariantCondition>
</m:properties>
</content>
</entry>
</feed>

Supported Operations
The following operations are supported:

Create

Read

Update

Delete

For more information, see Operations for Sales Order (A2X, OData V2).

Header Billing Plan


Learn how to use the header billing plan entity of the Sales Order (A2X, OData V2) API.

Use

Technical name: A_SalesOrderBillingPlan

This node corresponds to the billing plan of a sales order.

This is custom documentation. For more information, please visit SAP Help Portal. 28
1/18/25, 8:45 PM
You can create billing plans for sales orders of type OR if your configuration expert has made the necessary settings in your
system. In your configuration environment, use the search function to open the following activity: Assign Billing Plan Types to
Sales Document Types. For more information about configuration environments, see Configuration Environment of SAP S/4HANA
Cloud Public Edition.

You cannot add a billing plan to an existing sales order.

 Note
Depending on the operation, you can use the properties of this entity in different ways.

Create (POST)

If you want to use this API to create new data, you differentiate between the following property types:

Mandatory: You must include these properties in your request.

Optional: You can include these properties in your request.

Read-only: The system creates these properties automatically (for example, the creation date or various
document statuses) and you cannot change them.

Note that you must use deep insert requests, meaning that you don't create a header billing plan on its own, but
together with the related header entity.

Read (GET)

If you want to use this API to read data that already exists in the system, you can either retrieve all the data for the
document or include any of the properties of this entity in your request to retrieve only those.

Update (PATCH)

If you want to use this API to change data, you must include all the key properties of this entity in your request, so that
the system can identify the document and the entity that you want to change. In addition, you can include the properties
you want to change. Whether you can change a specific property or not depends on the general system behavior, your
system settings, and the current document status.

Lots of properties, for example, can no longer be changed as soon as subsequent documents exist.

The table below lists the information for the Create (POST) operation.

Properties
The following properties are key properties:

SalesOrder

BillingPlan

Property Description Necessity

SalesOrder (key) Specifies the sales order ID Read-only

BillingPlan (key) Number that identifies the billing plan Read-only

BillingPlanCategory Identifies the use case of the billing plan Read-only

BillingPlanType Controls which fields are offered for Read-only


processing. It also specifies how billing is

This is custom documentation. For more information, please visit SAP Help Portal. 29
1/18/25, 8:45 PM

Property Description Necessity

performed for the billing dates in a billing


plan of this type.

The billing plan type is always 90


(milestone billing). This is the default billing
plan type for sales order type OR (standard
order).

BillingPlanStartDate Specifies the start date of the billing plan Optional

 Note
If you provide a value for both
BillingPlanStartDate and
BillingPlanStartDateRule, the
system ignores the start date rule.

BillingPlanStartDateRule Specifies the start date of the billing plan Optional


which is to be determined on the basis of a
baseline date, a time period and, possibly, a
calendar ID. Date rules are always used
when determining a date field that is
dependent on another date field.

 Note
If you provide a value for both
BillingPlanStartDate and
BillingPlanStartDateRule, the
system ignores the start date rule.

BillingPlanEndDate Specifies the end date of the billing plan Read-only

BillingPlanEndDateRule Specifies the start date of the billing plan Read-only


which is to be determined on the basis of a
baseline date, a time period and, possibly, a
calendar ID. Date rules are always used
when determining a date field that is
dependent on another date field.

BillingPlanSearchTerm For each billing plan you create, you can Read-only
define a freely-definable search term. When
you save the document, the system
automatically assigns a number that later
uniquely identifies the individual plan. You
can use the search term later to locate
specific billing plans.

ReferenceBillingPlan The system takes the standard billing or Optional


invoice plan deadlines as default values into
the billing or invoice plan. The system
calculates the deadlines during the transfer,
with reference to the billing or invoice plan
start date.

Supported Operations

This is custom documentation. For more information, please visit SAP Help Portal. 30
1/18/25, 8:45 PM
The following operations are supported:

Create (only as part of deep insert requests)

Read

Update

For more information, see Operations for Sales Order (A2X, OData V2).

Related Information
Billing Plans
Create Sales Order with Billing Plan

Header Billing Plan Item


Learn how to use the header billing plan item entity of the Sales Order (A2X, OData V2) API.

Use

Technical name: A_SalesOrderBillingPlanItem

This node corresponds to a billing plan item of a sales order.

 Note
Depending on the operation, you can use the properties of this entity in different ways.

Create (POST)

If you want to use this API to create new data, you differentiate between the following property types:

Mandatory: You must include these properties in your request.

Optional: You can include these properties in your request.

Read-only: The system creates these properties automatically (for example, the creation date or various
document statuses) and you cannot change them.

Note that you can create a billing plan item of a sales order in two ways:

You can use deep insert requests, meaning that you don't create a billing plan item of a sales order on its own,
but together with the related header entity.

You can create a billing plan item of a sales order as a single entity. Prerequisite is that the header and the header
billing plan already exist.

Read (GET)

If you want to use this API to read data that already exists in the system, you can either retrieve all the data for the
document or include any of the properties of this entity in your request to retrieve only those.

Update (PATCH)

If you want to use this API to change data, you must include all the key properties of this entity in your request, so that
the system can identify the document and the entity that you want to change. In addition, you can include the properties

This is custom documentation. For more information, please visit SAP Help Portal. 31
1/18/25, 8:45 PM
you want to change. Whether you can change a specific property or not depends on the general system behavior, your
system settings, and the current document status.

Lots of properties, for example, can no longer be changed as soon as subsequent documents exist.

Delete (DELETE)

If you want to use this API to delete data, you must include all the key properties of this entity in your request, so that
the system can identify the document and the entity that you want to delete. Whether you can delete a specific entity or
not depends on the general system behavior, your system settings, and the current document status.

The table below lists the information for the Create (POST) operation.

Properties
The following properties are key properties:

SalesOrder

BillingPlan

BillingPlanItem

Property Description Necessity

SalesOrder (key) Specifies the sales order ID Read-only

BillingPlan (key) Number that identifies the billing plan Read-only

BillingPlanItem (key) Number that identifies the item of the Read-only


billing plan

BillingPlanBillingDate The date on which the billing is processed Mandatory


and booked for accounting purposes

BillingPlanServiceStartDate Depending on whether billing is to be Read-only


carried out in advance or in arrears, this is
either the start or end date of the
settlement period for a specific billing plan
date. This date is used in periodic billing
when time-dependent prices are defined.

BillingPlanServiceEndDate Depending on whether the billing was Read-only


carried out in advance or retrospectively,
this is either the start date or the end date
for the settlement period of a deadline in
the billing plan. This date is used if time-
dependent prices are defined.

BillingPlanAmount Specifies the value to be billed which the Optional


system determines for the billing date on
the basis of the billing rule assigned to it

TransactionCurrency Specifies the document currency Read-only

BillingBlockReason Indicates if the item is blocked for billing. Optional


The system can automatically propose a
billing block for sales documents that must

This is custom documentation. For more information, please visit SAP Help Portal. 32
1/18/25, 8:45 PM

Property Description Necessity

be checked before billing (for example,


returns, credit and debit memo requests).

BillingPlanRelatedBillgStatus Indicates the billing status of the Read-only


authorization amount

BillingPlanType Controls which fields are offered for Read-only


processing. It also specifies how billing is
performed for the billing dates in a billing
plan of this type.

BillingPlanDateCategory Controls data such as the billing block and Optional


the billing rule at the billing date level of the
billing plan

CustomerPaymentTerms Key for defining payment terms composed Optional


of cash discount percentages and payment
periods

ProposedBillingDocumentType Specifies the billing type that the system Optional


automatically proposes when you create
billing documents (invoices, credit memos,
etc.) that refer to sales orders

AdoptingBillingDateID Specifies a code which controls whether Read-only


the billing date in the billing plan is a fixed
date or whether it is based on an actual or
planned milestone date

BillingPlanBillingRule Specifies for each billing plan date how the Read-only
value to be billed is determined

BillingPlanDateDescriptionCode Describes the function of the billing plan Optional


date. Depending on the date category
assigned to the billing plan category, the
system proposes a date description for the
dates in the billing plan. In a billing plan for
a project, for example, the different
milestones (such as conclusion of a
contract, start-up) are proposed as date
descriptions.

BillingPlanMilestoneUsage Specifies the usage of the milestone. For Read-only


the usage you can specify:

the purpose of the milestone, for


example to trigger a milestone
function, for earned value analysis,
or to identify a project phase

that the data of a standard


milestone is copied when you create
a new milestone on the milestone
overview

that milestones can be selected in


the information system.

This is custom documentation. For more information, please visit SAP Help Portal. 33
1/18/25, 8:45 PM

Property Description Necessity

BillingPlanAmountPercent Specifies the percentage of value to be Optional


invoiced

BillgPlnDteCorrectionRfndType Specifies that the end of a periodic billing Read-only


plan has been adjusted to an earlier date
resulting in a refund for the respective
period

AccountingExchangeRate Specifies the currency exchange rate Read-only


between document currency and local
currency. When a billing document is
posted to financial accounting, the system
also forwards this exchange rate to enable
subsequent processing. Usually, the system
uses the billing document's billing date as
the exchange rate date for determining this
exchange rate. If, however, the exchange
rate has been set as fixed, the exchange
rate of the preceding sales or billing
document (for example, the sales order) is
used instead.

PostponementReason Specifies the reason for postponement Read-only

Supported Operations

The following operations are supported:

Create

Read

Update

Delete

For more information, see Operations for Sales Order (A2X, OData V2).

Related Information
Billing Plans
Create Sales Order with Billing Plan

Header Text
Learn how to use the header text entity of the Sales Order (A2X, OData V2) API.

Use

Technical name: A_SalesOrderText

This node corresponds to texts used on sales order header level.

This is custom documentation. For more information, please visit SAP Help Portal. 34
1/18/25, 8:45 PM

 Note
Depending on the operation, you can use the properties of this entity in different ways.

Create (POST)

If you want to use this API to create new data, you differentiate between the following property types:

Mandatory: You must include these properties in your request.

Optional: You can include these properties in your request.

Read-only: The system creates these properties automatically (for example, the creation date or various
document statuses) and you cannot change them.

Note that you can create a header text in two ways:

You can use deep insert requests, meaning that you don't create a header text on its own, but together with the
related header entity.

You can create a header text as a single entity. Prerequisite is that the header already exists.

Read (GET)

If you want to use this API to read data that already exists in the system, you can either retrieve all the data for the
document or include any of the properties of this entity in your request to retrieve only those.

Update (PATCH)

If you want to use this API to change data, you must include all the key properties of this entity in your request, so that
the system can identify the document and the entity that you want to change. In addition, you can include the properties
you want to change. Whether you can change a specific property or not depends on the general system behavior, your
system settings, and the current document status.

Lots of properties, for example, can no longer be changed as soon as subsequent documents exist.

Delete (DELETE)

If you want to use this API to delete data, you must include all the key properties of this entity in your request, so that
the system can identify the document and the entity that you want to delete. Whether you can delete a specific entity or
not depends on the general system behavior, your system settings, and the current document status.

The table below lists the information for the Create (POST) operation.

Properties
The following properties are key properties:

SalesOrder

Language

LongTextID

Property Description Necessity

SalesOrder (key) Specifies the sales order ID Read-only

Language The language key indicates the following: Mandatory


(key)

This is custom documentation. For more information, please visit SAP Help Portal. 35
1/18/25, 8:45 PM

Property Description Necessity

The language in which texts are


displayed

The language in which you enter


texts

The language in which the system


prints texts

LongTextID The text ID defines the various types of Mandatory


(key) texts related to a text object. For example,
the object TEXT (standard texts) can have
the following text IDs:

ST for user-specific standard texts


(individual texts)

SYST for cross-application system


texts

Various IDs for specific application


departments. You must have the
appropriate access authorization in
order to access these texts.

LongText Contains the actual text Optional

Supported Operations
The following operations are supported:

Create

Read

Update

Delete

For more information, see Operations for Sales Order (A2X, OData V2).

Related Information
Texts in Sales

Header Payment Plan


Learn how to use the header payment plan entity of the Sales Order (A2X, OData V2) API.

Use

Technical name: A_SlsOrdPaymentPlanItemDetails

This node corresponds to the payment plan details on sales order header level.

This is custom documentation. For more information, please visit SAP Help Portal. 36
1/18/25, 8:45 PM
You can use both payment cards and external payments (also known as wallet payments) with your sales orders when your system
is connected with the SAP digital payments add-on. Note that you can only use external payments with authorizations.

For more information, see the user guide for the SAP digital payments add-on.

For more information about the scope of supported processes of single payment service providers, see the integration overview
under the same link.

 Note
Depending on the operation, you can use the properties of this entity in different ways.

Create (POST)

If you want to use this API to create new data, you differentiate between the following property types:

Mandatory: You must include these properties in your request.

Optional: You can include these properties in your request.

Read-only: The system creates these properties automatically (for example, the creation date or various
document statuses) and you cannot change them.

Note that you can create a header payment plan in two ways:

You can use deep insert requests, meaning that you don't create a header payment plan on its own, but together
with the related header entity.

You can create a header payment plan as a single entity. Prerequisite is that the header already exists.

Read (GET)

If you want to use this API to read data that already exists in the system, you can either retrieve all the data for the
document or include any of the properties of this entity in your request to retrieve only those.

Update (PATCH)

If you want to use this API to change data, you must include all the key properties of this entity in your request, so that
the system can identify the document and the entity that you want to change. In addition, you can include the properties
you want to change. Whether you can change a specific property or not depends on the general system behavior, your
system settings, and the current document status.

Lots of properties, for example, can no longer be changed as soon as subsequent documents exist.

Delete (DELETE)

If you want to use this API to delete data, you must include all the key properties of this entity in your request, so that
the system can identify the document and the entity that you want to delete. Whether you can delete a specific entity or
not depends on the general system behavior, your system settings, and the current document status.

The table below lists the information for the Create (POST) operation.

Properties
The following properties are key properties:

SalesOrder

PaymentPlanItem

This is custom documentation. For more information, please visit SAP Help Portal. 37
1/18/25, 8:45 PM

Property Description Necessity

PaymentServiceProvider For external payments: Specifies the payment For external payments: optional
service provider for the SAP digital payments
add-on

See the section on external payments in the


user guide for the SAP digital payments add-
on.

TransactionByPaytSrvcPrvdr For external payments: Specifies the For external payments: optional
transaction ID. If you use this property, you
must also provide the
PaymentServiceProvider.

ElectronicPaymentType Specifies the type of electronic payment For payment cards: read-only

For external payments: See the section on For external payments: mandatory
external payments in the user guide for the
SAP digital payments add-on.

PaymentByPaymentServicePrvdr [Not in use] N/A

AuthorizationByDigitalPaytSrvc Unique identifier provided by SAP digital For payment cards: optional
payments add-on when an external system
For external payments: mandatory
authorizes using the SAP digital payments
add-on.

EPaytByDigitalPaymentSrvc Payment card token provided by the SAP For payment cards: mandatory
digital payments add-on. The token is used to
determine the remaining information related
to payment card payments.

MaximumToBeAuthorizedAmount Specifies the value to be billed which the For payment cards: optional
system determines for the billing date on the
For external payments: mandatory
basis of the billing rule assigned to it

For external payments: This amount should


correspond to the gross value that is to be
billed. For any remaining unpaid balance, you
have to use another payment method (for
example, a payment card).

Up to 15 characters, 2 decimal places

MerchantByClearingHouse The unique number issued by the acquirer or For payment cards: optional
payment service provider to identify a
For external payments: optional
merchant for settling payment

AuthorizationByAcquirer Reference code assigned to an authorization Read-only


by the acquirer to aid in tracking the
transaction to which the authorization
belongs

AuthorizationCurrency Currency key for amounts in the system Read-only

AuthorizationDate Date on which the authorization is requested Read-only

Format: YYYYMMDD

AuthorizationStatusName Contains the text describing the various Read-only


responses that you receive from the acquirer

This is custom documentation. For more information, please visit SAP Help Portal. 38
1/18/25, 8:45 PM

Property Description Necessity

or payment service provider in the


authorization and settlement processes. The
acquirer checks the information they receive
from you on the payment card and
cardholder, and return responses that refer to
errors and problems which occur during these
checks.

AuthorizationTime Time at which the authorization is requested Read-only

Format: HHMMSS

AuthorizedAmountInAuthznCrcy Specifies the amount authorized by the Read-only


acquirer or payment service provider. It may
differ from the requested authorization
amount, as in the case of partial
authorization.

Up to 15 characters, 2 decimal places

ElectronicPayment The account number of the electronic Read-only


payment. Along with the electronic payment
type, this number uniquely identifies the
payment.

ElectronicPaymentCallStatus Indicates whether you successfully reached Read-only


the acquirer's or payment service provider's
computer system for authorization, and
whether you received an answer.

There are four types of responses:

<blank>: not relevant

A: external system not reached

B: external system reached: no


response

C: external system reached: response


received

ElectronicPaymentHolderName The name of the person or company Read-only


embossed on the payment card or the holder
of the payment account

EPaytAmountIsChanged Indicates whether the authorization amount Read-only


has been changed manually

X: yes

<blank>: no

This is custom documentation. For more information, please visit SAP Help Portal. 39
1/18/25, 8:45 PM

Property Description Necessity

EPaytAuthorizationIsExpired Indicates whether the authorization has Read-only


expired. Note that the system determines
whether an authorization has expired based
on the validity period.

X: yes

<blank>: no

EPaytAuthorizationResult Indicates the status of the authorization for Read-only


this payment based on the authorization
response sent back by the acquirer.

<blank>: not relevant

A: checks successful

B: unsuccessful: authorize later

C: unsuccessful: block authorization

EPaytToBeAuthorizedAmount The sum of all the authorization amounts in Read-only


the payment plan. This is the amount sent to
the acquirer for authorization.

Up to 15 characters, 2 decimal places

EPaytValidityEndDate Date up to which the payment account is valid Read-only

Format: YYYYMMDD

EPaytValidityStartDate Date as of which the payment account is valid Read-only

Format: YYYYMMDD

PaymentPlan Billing plan number/invoicing plan number Read-only

PaymentPlanItem (key) Item for billing plan/invoice plan/payment Read-only


cards

PaytPlnForAuthorizationItem Higher-level payment card plan number for Read-only


billing

PaytPlnItmForAuthorizationItem Higher-level item in billing plan Read-only

PreAuthorizationIsRequested Indicates whether a transaction has been Read-only


preauthorized

X: yes

<blank>: no

SalesOrder (key) Specifies the sales order ID Read-only

PaymentCardAuthznRelationID Specifies a specific relationship between For payment cards: optional


payment authorizations. Such a relationship
For external payments: not relevant
can exist in the following situations, among
others:

Payment authorizations whose initial


authorization was made using Strong

This is custom documentation. For more information, please visit SAP Help Portal. 40
1/18/25, 8:45 PM

Property Description Necessity

Customer Authentication (SCA) with


3D-Secure may be
extended/reauthorized if a delivery is
delayed. To ensure that the
reauthorization is performed without
the need for 3DS-based SCA again,
the connection to the previous
authorization must be clear.

An authorization may be performed


for one payment that is part of a
series of recurring payments. These
payments may or may not be for the
same amount each time.

Payments can be made based on


authorizations in a card-on-file
scenario where Strong Customer
Authentication using 3D-Secure has
been performed once already. The
payments are not recurring, but
triggered by events such as a new
order being placed.

The PaymentCardAuthznRelationID is
based on the following rules:

The value is chosen by the adapter.


This might be a value forwarded from
the PSP, but might also be an
identifier chosen by the adapter itself.

PaymentCardAuthznRelationID
may be empty or null, if it is clear in
advance that the new payment
authorization will not be able to
establish any kind of relationship with
another payment authorization in the
future.

The SAP digital payments add-on


submits the
PaymentCardAuthznRelationID
of the current context to the adapter
with each relevant request, for
example a request to perform a
reauthorization.

The adapter can send back a new


PaymentCardAuthznRelationID
for each successful request. This new
PaymentCardAuthznRelationID
is then deemed to overwrite the
previous one for the given context.
Future requests in the same context
will use the new
PaymentCardAuthznRelationID.

This is custom documentation. For more information, please visit SAP Help Portal. 41
1/18/25, 8:45 PM

Property Description Necessity

If the old
PaymentCardAuthznRelationID
is to be used in future requests
instead of a new one, the adapter
must repeat the old
PaymentCardAuthznRelationID.
The core will consider an empty (or
null)
PaymentCardAuthznRelationID
to mean that the relationship has
ceased to exist.

The adapter may store additional


information locally to map the
PaymentCardAuthznRelationID
to PSP-specific attributes, such as
identifiers required to fulfill 3DS
requirements.

The adapter may ignore the


PaymentCardAuthznRelationID
under certain circumstances, for
example if the 3DS authorization
information associated to it has
expired. The adapter should then
process the request as if it were made
without a
PaymentCardAuthznRelationID
being specified.

 Note
These rules do not ensure that a
PaymentCardAuthznRelationID that
has been replaced will never reappear at
all, but the adapter is free to ignore any old
identifiers if they are used again.

Supported Operations
The following operations are supported:

Create (only as part of deep insert requests)

Read

Update

Delete

For more information, see Operations for Sales Order (A2X, OData V2).

Authorizations of Payment Cards in External Systems


When you create a sales order in an external system (for example, in a Web shop) and the payment card is also authorized
externally, several scenarios are possible. Depending on your use case, you need to include specific properties in your payload. The

This is custom documentation. For more information, please visit SAP Help Portal. 42
1/18/25, 8:45 PM
following examples illustrate the supported use cases.

When you create a sales order in an external system (for example, in a Web shop) and you use external payments, only one use
case is supported.

 Note
In GET operations, number ranges starting with 9 are used for authorizations, and number ranges starting with 0 are used for
payment cards.

Authorization of One Card in A Single Line

You include one payment card and one authorization in a single line in your payload.

"to_PaymentPlanItemDetails":[
{ "EPaytByDigitalPaymentSrvc" : "token1",
"AuthorizationByDigitalPaytSrvc" : "auth1"
}]

Authorization of Two Cards in A Single Line

You include two payment cards and two authorizations in a single line in your payload.

"to_PaymentPlanItemDetails":[
{ "EPaytByDigitalPaymentSrvc" : "token1",
"AuthorizationByDigitalPaytSrvc" : "auth1"
},
{ "EPaytByDigitalPaymentSrvc" : "token2",
"AuthorizationByDigitalPaytSrvc" : "auth2"
}]

Authorization of One Card in Separate Lines

You include one payment card and one authorization in separate lines in your payload. In this case, you need to provide the token
twice to guarantee the correct assignment of the authorization to the payment card.

"to_PaymentPlanItemDetails":[
{ "EPaytByDigitalPaymentSrvc" : "token1",
},
{ "EPaytByDigitalPaymentSrvc" : "token1",
"AuthorizationByDigitalPaytSrvc" : "auth1"
}]

Authorization of Two Cards in Separate Lines

You include two payment cards and two authorizations in separate lines in your payload. In this case, you need to provide the token
for each payment card twice to guarantee the correct assignment of the authorization to the payment card.

"to_PaymentPlanItemDetails":[
{ "EPaytByDigitalPaymentSrvc" : "token1",
},
{ "EPaytByDigitalPaymentSrvc" : "token1",
"AuthorizationByDigitalPaytSrvc" : "auth1"
},
{ "EPaytByDigitalPaymentSrvc" : "token2",
},
{ "EPaytByDigitalPaymentSrvc" : "token2",
"AuthorizationByDigitalPaytSrvc" : "auth2"
}]

This is custom documentation. For more information, please visit SAP Help Portal. 43
1/18/25, 8:45 PM

Authorizations of External Payments in External Systems


When you create a sales order in an external system (for example, in a Web shop) and you use external payments, you can include
your payment information in your payload as shown in the following examples:

Authorization Using AuthorizationByDigitalPaytSrvc

"to_PaymentPlanItemDetails": [
{ "ElectronicPaymentType" : "DP2P",
"AuthorizationByDigitalPaytSrvc": "LFI4KKEYOE",
"MaximumToBeAuthorizedAmount" : "100.00"
}]

Authorization Using PaymentServiceProvider

"to_PaymentPlanItemDetails":[
{ "PaymentServiceProvider" : "DPPP",
"TransactionByPaytSrvcPrvdr" : "13D11916HC419733G",
"ElectronicPaymentType" : "DP2P",
"MaximumToBeAuthorizedAmount" : "135.66",
"AuthorizationByDigitalPaytSrvc" : "45GW4RQENU",
"MerchantByClearingHouse" : "U7DR5X6BYT3TS"
}]

Header Related Object


Learn how to use the header related object entity of the Sales Order (A2X, OData V2) API.

Use

Technical name: A_SalesOrderRelatedObject

This node corresponds to the related object of a sales order on header level.

A related object has a much broader scope than, for example, a preceding document or a subsequent document. It could be
another document that is associated with this document in some way, but it could also be, for example, a dispute case related to
this document. The related object can be stored in the same system as the SD document or in a different one. You can use this
related object reference to record any relationships between your document and other objects.

 Note
Depending on the operation, you can use the properties of this entity in different ways.

Create (POST)

If you want to use this API to create new data, you differentiate between the following property types:

Mandatory: You must include these properties in your request.

Optional: You can include these properties in your request.

Read-only: The system creates these properties automatically (for example, the creation date or various
document statuses) and you cannot change them.

Note that you can create a header related object in two ways:

This is custom documentation. For more information, please visit SAP Help Portal. 44
1/18/25, 8:45 PM
You can use deep insert requests, meaning that you don't create a header related object on its own, but together
with the related header entity.

You can create a header related object as a single entity. Prerequisite is that the header already exists.

Read (GET)

If you want to use this API to read data that already exists in the system, you can either retrieve all the data for the
document or include any of the properties of this entity in your request to retrieve only those.

Delete (DELETE)

If you want to use this API to delete data, you must include all the key properties of this entity in your request, so that
the system can identify the document and the entity that you want to delete. Whether you can delete a specific entity or
not depends on the general system behavior, your system settings, and the current document status.

The table below lists the information for the Create (POST) operation.

Properties
The following properties are key properties:

SDDocRelatedObjectSequenceNmbr

SalesOrder

Property Description Necessity

SDDocRelatedObjectSequenceNmbr Specifies the sequence in which related Read-only


(key) objects were added to an SD document.
The system automatically assigns this
number to every related object in an
ascending order, starting with 1. Note that
the numbers are not rearranged when you
delete related objects.

The sequence number allows you to enter


multiple related objects for a single SD
document and differentiate between them
even if some of their properties (for
example, the item) are identical.

SDDocRelatedObjectType Specifies the type of a related object of an Mandatory


SD document. The object could, for
example, be another document, a dispute
case, or any other object in a system that is
somehow related to the SD document. You
can choose from a set of values that your
configuration expert has defined. These
values fit your business purposes and group
various use cases.

SDDocRelatedObjectSystem Specifies the system in which the related Optional


object of an SD document is stored.

This is custom documentation. For more information, please visit SAP Help Portal. 45
1/18/25, 8:45 PM

Property Description Necessity

SDDocRelatedObjectReference1 Identifies a related object of an SD Mandatory


document. The reference is stable, meaning
that it is not deleted automatically, for
example, at contract determination.

SDDocRelatedObjectReference2 Identifies a related object of an SD Optional


document. The reference is stable, meaning
that it is not deleted automatically, for
example, at contract determination.

SalesOrder (key) Specifies the sales order ID Read-only

Supported Operations
The following operations are supported:

Create

Read

Delete

For more information, see Operations for Sales Order (A2X, OData V2).

Related Information
Related Objects of SD Documents

Header Preceding Process Flow


Learn how to use the header preceding process flow entity of the Sales Order (A2X, OData V2) API.

Use

Technical name: A_SalesOrderPrecdgProcFlow

This node corresponds to the process flow of preceding documents of a sales order.

When you have a sales order that was created with reference to existing documents in your system, you can retrieve information
about these preceding documents. For example, if a sales order was created with reference to a sales quotation, the sales
quotation is the preceding document and the sales order is the subsequent document.

 Note
When you display a process flow for a sales order in an app (for example, in the Display Sales Orders - VA02 app), you might
see more preceding documents than you can retrieve with this API.

Properties
The following properties are key properties:

This is custom documentation. For more information, please visit SAP Help Portal. 46
1/18/25, 8:45 PM
SalesOrder

DocRelationshipUUID

Property Description Necessity

CreationDate Date on which the preceding document was Read-only


created

CreationTime Time at which the preceding document was Read-only


created

DocRelationshipUUID (key) Specifies the unique document relationship Read-only


identification

LastChangeDate Date on which the preceding document was Read-only


last changed

PrecedingDocument Number that uniquely identifies the Read-only


preceding document (for example, the
quotation from which you created a sales
order)

PrecedingDocumentCategory Specifies the document category of the Read-only


preceding document

ProcessFlowLevel Describes the degree of separation between Read-only


a document and its preceding documents.
For example, for a sales quotation (which is
the direct predecessor of a sales order), the
value would be 00. For a sales inquiry, the
value would be 01.

SalesOrder (key) Specifies the sales order ID Read-only

OverallSDProcessStatus Specifies the processing status of the Read-only


preceding document

Supported Operations
The following operation is supported:

Read

For more information, see Operations for Sales Order (A2X, OData V2).

Header Subsequent Process Flow


Learn how to use the header subsequent process flow entity of the Sales Order (A2X, OData V2) API.

Use

Technical name: A_SalesOrderSubsqntProcFlow

When you have a document that was created with reference to an existing sales order in your system, you can retrieve information
about these subsequent documents. For example, if a credit memo was created with reference to a sales order, the sales order is
This is custom documentation. For more information, please visit SAP Help Portal. 47
1/18/25, 8:45 PM
the preceding document and the credit memo is the subsequent document.

 Note
When you display a process flow for a sales order in an app (for example, in the Display Sales Orders - VA02 app), you might
see more subsequent documents than you can retrieve with this API.

Properties
The following properties are key properties:

SalesOrder

DocRelationshipUUID

Property Description Necessity

CreationDate Date on which the subsequent document Read-only


was created

CreationTime Time at which the subsequent document Read-only


was created

DocRelationshipUUID (key) Specifies the unique document relationship Read-only


identification

LastChangeDate Date on which the subsequent document Read-only


was last changed

ProcessFlowLevel Describes the degree of separation between Read-only


a document and its subsequent
documents. For example, for a delivery
document (which is the direct successor of
a sales order), the value would be 00. For a
billing document, the value would be 01.

SalesOrder (key) Specifies the sales order ID Read-only

SubsequentDocument Number that uniquely identifies the Read-only


subsequent document (for example, the
sales order that you created from a
previous quotation)

SubsequentDocumentCategory Specifies the document category of the Read-only


subsequent document

OverallSDProcessStatus Specifies the processing status of the Read-only


subsequent document

Supported Operations
The following operation is supported:

Read

For more information, see Operations for Sales Order (A2X, OData V2).

This is custom documentation. For more information, please visit SAP Help Portal. 48
1/18/25, 8:45 PM

Sales Order Item


Learn how to use the item entity of the Sales Order (A2X, OData V2) API.

Use

Technical name: A_SalesOrderItem

This node corresponds to the sales order item. A sales order can comprise one or more items that contain, for example, the
quantity of a material.

 Note
Depending on the operation, you can use the properties of this entity in different ways.

Create (POST)

If you want to use this API to create new data, you differentiate between the following property types:

Mandatory: You must include these properties in your request.

Optional: You can include these properties in your request.

Read-only: The system creates these properties automatically (for example, the creation date or various
document statuses) and you cannot change them.

Note that you can create an item in two ways:

You can use deep insert requests, meaning that you don't create an item on its own, but together with the related
header entity.

You can create an item as a single entity. Prerequisite is that the header already exists.

Read (GET)

If you want to use this API to read data that already exists in the system, you can either retrieve all the data for the
document or include any of the properties of this entity in your request to retrieve only those.

Update (PATCH)

If you want to use this API to change data, you must include all the key properties of this entity in your request, so that
the system can identify the document and the entity that you want to change. In addition, you can include the properties
you want to change. Whether you can change a specific property or not depends on the general system behavior, your
system settings, and the current document status.

Lots of properties, for example, can no longer be changed as soon as subsequent documents exist.

Delete (DELETE)

If you want to use this API to delete data, you must include all the key properties of this entity in your request, so that
the system can identify the document and the entity that you want to delete. Whether you can delete a specific entity or
not depends on the general system behavior, your system settings, and the current document status.

The table below lists the information for the Create (POST) operation.

Properties
The following properties are key properties:

This is custom documentation. For more information, please visit SAP Help Portal. 49
1/18/25, 8:45 PM
SalesOrder

SalesOrderItem

Property Description Necessity

Material Alphanumeric key uniquely identifying the Optional


material

AccountingExchangeRate The exchange rate that the system applies Optional


when you create an invoice

Batch Assigns a material that is manufactured in Optional


batches or production lots to a specific
batch

CustomerGroup Identifies a particular group of customers Optional


(for example, wholesale or retail) for the
purpose of pricing or generating statistics

CustomerPaymentTerms Key for defining payment terms composed Optional


of cash discount percentages and payment
periods

DeliveryDateTypeRule Indicates when the ordered goods should Optional


be delivered.

Supported values:

<blank>: The goods should be


delivered on the requested delivery
date or later. Note that there is no
guarantee that the goods will not be
delivered earlier.

A: The goods must be delivered


exactly on the confirmed delivery
date.

B: The goods must be delivered by


the confirmed delivery date (that is,
on the date or earlier).

 Note
If you create a sales order with one or
more items, the
DeliveryDateTypeRule property in
the A_SalesOrder entity is used as
the default value on item level. This
means that if you leave the item
property empty, the value will be the
default from the header.

If you use value A: or B for the header


property, but want to use value <blank>
for the item, you can achieve this only in
two steps: First, use the same value for
the item property as for the header or
leave the property empty. To change the

This is custom documentation. For more information, please visit SAP Help Portal. 50
1/18/25, 8:45 PM

Property Description Necessity

item value to <blank>, send another


change request.

 Note
You can only use this property if
Transportation Management is active in
your system and your business process
configuration expert has made the
necessary settings in the Define
Transportation-Relevance of Sales
Documents configuration activity in
your configuration environment.

DeliveryGroup A combination of items that should be Optional


delivered together

DeliveryPriority The delivery priority assigned to an item Optional

HigherLevelItem The number of the higher-level item to Optional


which this item belongs in a hierarchy

IncotermsClassification Commonly used trading terms that comply Optional


with the standards established by the
International Chamber of Commerce (ICC)

IncotermsLocation1 Provides additional information for the Optional


primary Incoterm

IncotermsLocation2 Provides additional information for the Optional


Incoterms

IncotermsTransferLocation Provides additional information for the Optional


primary Incoterm

ItemBillingBlockReason Indicates if the item is blocked for billing Optional

MaterialByCustomer Uniquely identifies the material from the Optional


customer's point of view

MaterialGroup Key that you use to group together several Optional


materials or services with the same
attributes, and to assign them to a
particular material group

MaterialPricingGroup A way of grouping materials to which you Optional


want to apply the same condition

MatlAccountAssignmentGroup The account assignment group for the Optional


material is a group of materials with the
same accounting requirements. It is used
by the system when creating an accounting
document from a billing document to
determine the revenue or sales deduction
account.

This is custom documentation. For more information, please visit SAP Help Portal. 51
1/18/25, 8:45 PM

Property Description Necessity

PricingDate The date that determines date-related Optional


pricing elements, such as conditions and
foreign exchange rate

PricingReferenceMaterial Material master record that the system Optional


uses as a reference for pricing purposes

ProductionPlant Key that uniquely identifies a plant Optional

ProductTaxClassification1 Specifies the tax classification for the Optional


material

ProductTaxClassification2 Specifies the tax classification for the Optional


material

ProductTaxClassification3 Specifies the tax classification for the Optional


material

ProductTaxClassification4 Specifies the tax classification for the Optional


material

ProductTaxClassification5 Specifies the tax classification for the Optional


material

ProductTaxClassification6 Specifies the tax classification for the Optional


material

ProductTaxClassification7 Specifies the tax classification for the Optional


material

ProductTaxClassification8 Specifies the tax classification for the Optional


material

ProductTaxClassification9 Specifies the tax classification for the Optional


material

ProfitCenter Key which together with the controlling area Optional


uniquely identifies a profit center

PurchaseOrderByCustomer Customer reference number that the Optional


customer uses to uniquely identify a
purchasing document (for example, a sales
inquiry or a purchase order)

PurchaseOrderByShipToParty Number used by the end customer for Optional


unique identification of the purchasing
document (for example, an inquiry or a
purchase).

ReferenceSDDocument Specifies the document to which the sales Optional


order refers (a preceding document, such
as a sales quotation)

For more information, see Create Sales


Orders with Reference

ReferenceSDDocumentItem Specifies the number of the sales Optional


document item to which the sales order
item refers

This is custom documentation. For more information, please visit SAP Help Portal. 52
1/18/25, 8:45 PM

Property Description Necessity

For more information, see Create Sales


Orders with Reference

RequestedQuantity The number or volume of materials Optional


specified in an item

RequestedQuantityUnit Unit in which the requested quantity is Optional


specified. You can let the system determine
the unit or use any of the following
properties:

RequestedQuantityUnit: the
language-dependent unit code
based on your input language

RequestedQuantitySAPUnit:
the SAP code, that is, the format
found in the database without
conversions

RequestedQuantityISOUnit:
the ISO code

RequestedQuantitySAPUnit Unit in which the requested quantity is Optional


specified. You can let the system determine
the unit or use any of the following
properties:

RequestedQuantityUnit: the
language-dependent unit code
based on your input language

RequestedQuantitySAPUnit:
the SAP code, that is, the format
found in the database without
conversions

RequestedQuantityISOUnit:
the ISO code

RequestedQuantityISOUnit Unit in which the requested quantity is Optional


specified. You can let the system determine
the unit or use any of the following
properties:

RequestedQuantityUnit: the
language-dependent unit code
based on your input language

RequestedQuantitySAPUnit:
the SAP code, that is, the format
found in the database without
conversions

RequestedQuantityISOUnit:
the ISO code

SalesDocumentRjcnReason The reason for rejecting a sales order Optional

This is custom documentation. For more information, please visit SAP Help Portal. 53
1/18/25, 8:45 PM

Property Description Necessity

SalesOrderItem (key) Specifies the sales order item number Optional

SalesOrderItemCategory A classification that distinguishes between Optional


different types of item (for example, free of
charge items and text items) and
determines how the system processes the
item

SalesOrderItemText A short description of the item Optional

ShippingPoint The physical location (for example, a Optional


warehouse or collection of loading ramps)
from which you ship the item

ShippingType Shipping type (for example, by road or rail) Optional


that has been selected for the
transportation of the goods for the
shipment legs

SlsDocIsRlvtForProofOfDeliv Controls proof of delivery (POD) processing Optional

StorageLocation Number of the storage location in which the Optional


material is stored. A plant may contain one
or more storage locations.

WBSElement Key that identifies a WBS element (a Optional


structural element in a work breakdown
structure representing the hierarchical
organization of a project)

DeliveryStatus The delivery status tells you if the item is Read-only


not yet delivered, is partly delivered, is
completely delivered, or is not relevant for
delivery.

ItemGrossWeight The total gross weight of the item. The Read-only


gross weight represents the net weight plus
the weight of packaging.

ItemNetWeight The total net weight for the item. The net Read-only
weight represents the gross weight less the
weight of packaging.

ItemVolume The total volume for the item Read-only

ItemVolumeUnit The unit referring to the volume of the Read-only


material. You can use either the language-
dependent unit code, the ISO code, the SAP
code (the format found in the database
without conversions).

ItemVolumeSAPUnit The unit referring to the volume of the Read-only


material. You can use either the language-
dependent unit code, the ISO code, the SAP
code (the format found in the database
without conversions).

ItemVolumeISOUnit The unit referring to the volume of the Read-only


material. You can use either the language-

This is custom documentation. For more information, please visit SAP Help Portal. 54
1/18/25, 8:45 PM

Property Description Necessity

dependent unit code, the ISO code, the SAP


code (the format found in the database
without conversions).

ItemWeightUnit Unit referring to the gross weight or net Read-only


weight of the material

ItemWeightSAPUnit The unit referring to the gross weight or net Read-only


weight of the material. You can use either
the language-dependent unit code, the ISO
code, the SAP code (the format found in the
database without conversions).

ItemWeightISOUnit The unit referring to the gross weight or Read-only


netThe unit referring to the gross weight or
net weight of the material. You can use
either the language-dependent unit code,
the ISO code, the SAP code (the format
found in the database without conversions).

NetAmount The net value of the item, after any Read-only


discounts and surcharges are taken into
account. Sales taxes are not included. The
value is expressed in the document
currency.

OrderRelatedBillingStatus Shows to what extent an item has been Read-only


processed for billing

SalesOrder (key) Specifies the sales order ID Read-only

SDProcessStatus Specifies the overall processing status of Read-only


the item

TransactionCurrency The currency that applies to the sales order Read-only

ExternalItemID External reference ID of the sales order item Read-only


that you want to process. This property is
relevant if you use the Sales Order (A2A)
API. It helps to identify an item that was
created using this API.

HigherLevelItemUsage ID for higher-level item usage Read-only

MaterialSubstitutionReason Specifies the reason why the system Read-only


automatically carried out material
substitution

ConfdDelivQtyInOrderQtyUnit The cumulative item quantity that the Read-only


system confirms for delivery after checking
the availability of inventory. The quantity is
expressed in sales units.

TotalSDDocReferenceStatus The overall processing status of the Read-only


referenced item.

The system determines the overall


processing status of the item by taking into
account the following values:

This is custom documentation. For more information, please visit SAP Help Portal. 55
1/18/25, 8:45 PM

Property Description Necessity

The status of the referenced item


(whether it is relevant for reference,
and, if so, to what extent it has been
referenced)

The rejection status of the item

SDDocReferenceStatus Specifies whether one or more other sales Read-only


documents have referenced this item
partially, completely, or not at all

AdditionalMaterialGroup1 You can use material groups when Optional


maintaining a material master record. You
can use them as required, for example, for
analysis.

AdditionalMaterialGroup2 You can use material groups when Optional


maintaining a material master record. You
can use them as required, for example, for
analysis.

AdditionalMaterialGroup3 You can use material groups when Optional


maintaining a material master record. You
can use them as required, for example, for
analysis.

AdditionalMaterialGroup4 You can use material groups when Optional


maintaining a material master record. You
can use them as required, for example, for
analysis.

AdditionalMaterialGroup5 You can use material groups when Optional


maintaining a material master record. You
can use them as required, for example, for
analysis.

BillingDocumentDate The date on which billing and booking for Optional


accounting purposes takes place

ContractAccount Identifies a contract account per client, that Optional


is, an account in which posting data for
contracts or contract items are processed
for which the same collection/payment
agreements apply.
Contract accounts are managed on an open
item basis within contract accounts
receivable and payable.

AdditionalValueDays Specifies the number of days between the Optional


billing date and the date on which the terms
of payment for the sales document become
effective. If you enter a value for this
property, you cannot enter a date for the
FixedValueDate property.

ServicesRenderedDate Specifies the date of services rendered that Optional


determines when the system calculates
taxes (for example, sales tax) for the

This is custom documentation. For more information, please visit SAP Help Portal. 56
1/18/25, 8:45 PM

Property Description Necessity

product. If you deliver products, the date of


services rendered corresponds to the goods
issue date and you do not have to enter a
date for this property. If you provide a
service, however, and you are billing hours,
you can enter a date manually. You can use
the date of services rendered as one of the
selection criteria when you process billing
documents collectively.

FixedValueDate The date on which the terms of payment Optional


related to the sales order become effective.
If you enter a value for this property, you
cannot enter a date for the
AdditionalValueDays property.

UnderlyingPurchaseOrderItem The item number (from a purchase order, Optional


for example) that the customer uses to
uniquely identify the item.

CostAmount The cost of an item in a delivery-related Read-only


document. The cost is determined during
the posting of goods issue.

TaxAmount Specifies the total sales taxes, expressed in Read-only


the document currency

BillingPlan Specifies the number of the billing plan of a Read-only


sales order item
Note that this property is not returned
when you use deep insert requests.

AltvBsdConfSubstitutionStatus Specifies the substitution status for Read-only


alternative-based confirmation (ABC).

This property can show the following


values:

A: Original main item for ABC

B: Subitem substituting original


main item

D: Inline substitute for original main


item

For more information about ABC, see


Alternative-Based Confirmation in Sales
Orders.

OriginalPlant Specifies the original plant in plant Read-only


substitution.

For an inline substitution, this property


shows the original plant that was part of the
payload in a request, when this plant is then
substituted by a value that is determined by
the system.

For a hierarchical scenario, this property


doesn't contain any value. For main items,

This is custom documentation. For more information, please visit SAP Help Portal. 57
1/18/25, 8:45 PM

Property Description Necessity

you can find the original plant from the


payload in the ProductionPlant
property. For subitems, the
ProductionPlant property shows the
substituted plant.

For more information about ABC, see


Alternative-Based Confirmation in Sales
Orders.

DeliveryDateQuantityIsFixed If your customer accepts the delivery dates Optional


and quantities that are confirmed after an
availability check for the item, you can use
this value to so that the dates and
quantities are fixed. The system then
passes on MRP requirements so that the
confirmed date and quantity can be met.

Supported values:

true

If you provide this value, the dates


and quantities are fixed.

false

If you provide this value, the dates


and quantities are not fixed.

With value <blank>, the delivery date and


confirmed quantity are not fixed. If you can
expedite the manufacture or purchase of
goods, you could deliver the goods closer to
the customer's original request (and sooner
than the date the system confirmed).

Subtotal1Amount Contains a subtotal value that is calculated Read-only


during pricing from all price elements in a
pricing procedure.

Subtotal2Amount Contains a subtotal value that is calculated Read-only


during pricing from all price elements in a
pricing procedure.

Subtotal3Amount Contains a subtotal value that is calculated Read-only


during pricing from all price elements in a
pricing procedure.

Subtotal4Amount Contains a subtotal value that is calculated Read-only


during pricing from all price elements in a
pricing procedure.

Subtotal5Amount Contains a subtotal value that is calculated Read-only


during pricing from all price elements in a
pricing procedure.

Subtotal6Amount Contains a subtotal value that is calculated Read-only


during pricing from all price elements in a
pricing procedure.

This is custom documentation. For more information, please visit SAP Help Portal. 58
1/18/25, 8:45 PM

Property Description Necessity

OriginallyRequestedMaterial Specifies the product that was originally Read-only


requested by the customer, if the product
was substituted by another one

Supported Operations
The following operations are supported:

Create (see also Create Sales Order Item)

Read

Update (see also Update Sales Order Item)

Delete

For more information, see Operations for Sales Order (A2X, OData V2).

Related Information
Create Sales Order Item
Update Sales Order Item

Item Partner
Learn how to use the item partner entity of the Sales Order (A2X, OData V2) API.

Use
Technical name: A_SalesOrderItemPartner

This node corresponds to the sales order item partner. The sales order item partner contains data about the partner function, that
is, the rights and responsibilities of each partner in a business transaction (for example, the ship-to party). It contains only
partners deviating from the header.

For more information about partners, see Customer and Business Partner.

 Note
Depending on the operation, you can use the properties of this entity in different ways.

Create (POST)

If you want to use this API to create new data, you differentiate between the following property types:

Mandatory: You must include these properties in your request.

Optional: You can include these properties in your request.

Read-only: The system creates these properties automatically (for example, the creation date or various
document statuses) and you cannot change them.

Note that you can create an item partner in two ways:

This is custom documentation. For more information, please visit SAP Help Portal. 59
1/18/25, 8:45 PM
You can use deep insert requests, meaning that you don't create an item partner on its own, but together with
the related item entity.

You can create an item partner as a single entity. Prerequisite is that the item already exists.

Read (GET)

If you want to use this API to read data that already exists in the system, you can either retrieve all the data for the
document or include any of the properties of this entity in your request to retrieve only those.

 Note
The GET operation for the item partner only returns item-specific partners, but no partners that are simply derived from
the header.

Update (PATCH)

If you want to use this API to change data, you must include all the key properties of this entity in your request, so that
the system can identify the document and the entity that you want to change. In addition, you can include the properties
you want to change. Whether you can change a specific property or not depends on the general system behavior, your
system settings, and the current document status.

Lots of properties, for example, can no longer be changed as soon as subsequent documents exist.

Delete (DELETE)

If you want to use this API to delete data, you must include all the key properties of this entity in your request, so that
the system can identify the document and the entity that you want to delete. Whether you can delete a specific entity or
not depends on the general system behavior, your system settings, and the current document status.

The table below lists the information for the Create (POST) operation.

Properties
The following properties are key properties:

PartnerFunction

SalesOrder

SalesOrderItem

Property Description Necessity

PartnerFunction (key) The abbreviated form of the name that Mandatory


identifies the partner function. The ship-to
party in your system could be abbreviated,
for example, to SH.

ContactPerson The number that uniquely identifies the Depending on the partner function chosen,
contact person the corresponding parameter (one of the
four listed) is mandatory
Customer An alphanumeric key that uniquely
identifies the customer or supplier

Personnel The number that uniquely identifies an


employee

This is custom documentation. For more information, please visit SAP Help Portal. 60
1/18/25, 8:45 PM

Property Description Necessity

Supplier An alphanumeric key that uniquely


identifies the supplier

WorkAssignmentExternalID The number that uniquely identifies an Optional


employee in an external system

If you provide this property, note that you


must not provide any of the following
properties:

ContactPerson

Customer

Personnel

Supplier

BusinessPartnerAddressUUID If multiple address handling for business Optional


partners is active in your system, this
property contains a universally unique
identifier (UUID) that represents a specific
business partner address stored in
customer master data.

Business partner address UUIDs are


supported for all partner functions of
partner type Customer (KU), except for the
partner function Payer, as well for all
partner functions of partner type Contact
Person (AP).

For more information about multiple


address handling for business partners in
SD documents and how to enable it, see
Multiple Address Handling in SD
Documents Using SAP Business Partner.

VATRegistration Specifies the VAT registration number of Optional


the customer, supplier, or your company
Only relevant for ship-to parties (partner
code. This property is relevant only for ship-
function SH)
to parties.

AddressID Specifies the address number (for example, Read-only


of persons or of organizational units such
as company codes and plants)

BPRefAddrForDocSpcfcAddrUUID If multiple address handling for business Read-only


partners is active in your system, this
property can contain a universally unique
identifier (UUID) that represents a business
partner reference address.

A business partner reference address is


created in a document when a document-
specific address is saved to a document.
When this happens, the previously active
business partner address is saved as the
business partner reference address.

This is custom documentation. For more information, please visit SAP Help Portal. 61
1/18/25, 8:45 PM

Property Description Necessity

 Note
Business partner reference addresses
are supported only for partner functions
of partner type Customer (KU), except
for the partner function Payer.

PartnerFunctionInternalCode The abbreviated form of the name that Read-only


identifies the partner function in a
language-independent format used in the
database. The ship-to party, for example, is
identified as WE.

ReferenceBusinessPartner Key identifying a business partner in the Read-only


SAP system. The key is unique within a
client.

SalesOrder (key) Specifies the sales order ID Read-only

SalesOrderItem (key) Specifies the sales order item number Read-only

Supported Operations
The following operations are supported:

Create

Read

Update

Delete

For more information, see Operations for Sales Order (A2X, OData V2).

Item Partner Address


Learn how to use the item partner address entity of the Sales Order (A2X, OData V2) API.

Use

Technical name: A_SalesOrderItemPartnerAddress

This node corresponds to the document-specific one-time address of a sales order item partner.

 Note
Depending on the operation, you can use the properties of this entity in different ways.

Create (POST)

If you want to use this API to create new data, you differentiate between the following property types:

Mandatory: You must include these properties in your request.

This is custom documentation. For more information, please visit SAP Help Portal. 62
1/18/25, 8:45 PM
Optional: You can include these properties in your request.

Read-only: The system creates these properties automatically (for example, the creation date or various
document statuses) and you cannot change them.

Note that you must use deep insert requests, meaning that you don't create an item partner address on its own, but
together with the related item entity.

Read (GET)

Note that you cannot use this API to read addresses that are determined from master data.

If you want to use this API to read data that already exists in the system, you can either retrieve all the data for the
document or include any of the properties of this entity in your request to retrieve only those.

Update (PATCH)

For partners using an address determined from master data, you can use a patch request to change the address for the
respective partner in the respective sales order, thus creating a document-specific one-time address.

If you want to use this API to change data, you must include all the key fields of this entity in your request, so that the
system can identify the document and the entity that you want to change. In addition, you can include the properties
you want to change. Whether you can change a specific property or not depends on the general system behavior, your
system settings, and the current document status.

Lots of properties, for example, can no longer be changed as soon as subsequent documents exist.

The table below lists the information for the Create (POST) operation.

Properties
The following properties are key properties:

SalesOrder

SalesOrderItem

PartnerFunction

AddressRepresentationCode

Property Description Necessity

AddresseeFullName Full name of the addressee Optional

CityName City Optional

CorrespondenceLanguage Language key that indicates the language of Optional


correspondence for the address

Country Country or region Mandatory

DistrictName District Optional

EmailAddress Email Optional

FaxAreaCodeSubscriberNumber Optional

FaxExtensionNumber Fax extension Optional

This is custom documentation. For more information, please visit SAP Help Portal. 63
1/18/25, 8:45 PM

Property Description Necessity

FaxNumberCountry International area code of the fax number. Read-only


This value is determined based on the
Country field.

FormOfAddress Code form of the title of the addressee (if Read-only


applicable)

Supported values:

0001: Ms.

0002: Mr.

0003: Company

0004: Mr. and Mrs.

HouseNumber House number Optional

MobileNumber Mobile phone number Optional

MobilePhoneCountry International area code of the mobile phone Read-only


number. This value is determined based on
the Country field.

OrganizationName1 Additional name of an organization or Optional


person

OrganizationName2 Additional name of an organization or Optional


person

OrganizationName3 Additional name of an organization or Optional


person

OrganizationName4 Additional name of an organization or Optional


person

PartnerFunction (key) The abbreviated description of the partner Optional


function

PhoneExtensionNumber Phone extension Optional

PhoneNumber Phone number Optional

PhoneNumberCountry International area code of the phone Read-only


number. This value is determined based on
the Country field.

POBox PO box Optional

POBoxPostalCode Postal code of PO box Optional

PostalCode Postal code Optional

Region Region Optional

SalesOrder (key) Number that uniquely identifies the sales Read-only


order

This is custom documentation. For more information, please visit SAP Help Portal. 64
1/18/25, 8:45 PM

Property Description Necessity

SalesOrderItem (key) Number that uniquely identifies the sales Read-only


order item

StreetName Street Optional

StreetPrefixName1 Additional address field which is printed Optional


above the line for the street. The street
address contains two lines above the street
and two lines below the street.

StreetPrefixName2 Additional address field which is printed Optional


above the line for the street. The street
address contains two lines above the street
and two lines below the street.

StreetSuffixName1 Additional address field which is printed Optional


below the line for the street. The street
address contains two lines above the street
and two lines below the street.

StreetSuffixName2 Additional address field which is printed Optional


below the line for the street. The street
address contains two lines above the street
and two lines below the street.

TaxJurisdiction A geographical area, from a tax law Optional


perspective, in countries where taxes are
levied at more than one administrative level

TransportZone Transportation zone to or from which the Optional


goods are delivered

AddressRepresentationCode (key) In the system, you can maintain addresses Read-only


in multiple versions so that addresses are
stored in different international display
formats (such as Kanji or Latin letters).

 Note
Since this API does not support various
language versions, you must always
leave this field empty.

Supported Operations
The following operations are supported:

Create (only as part of deep insert requests)

Read

Update

For more information, see Operations for Sales Order (A2X, OData V2).

This is custom documentation. For more information, please visit SAP Help Portal. 65
1/18/25, 8:45 PM

Item Pricing Element


Learn how to use the item pricing element entity of the Sales Order (A2X, OData V2) API.

Use

Technical name: A_SalesOrderItemPrElement

This node corresponds to the sales order item pricing element. The sales order item pricing element contains data related to, for
example, prices, discounts, surcharges, freight, or taxes. It is relevant for one item.

Currently, subtotal lines are not persisted in pricing. Only item conditions with condition types are returned.

 Note
Depending on the operation, you can use the properties of this entity in different ways.

Create (POST)

If you want to use this API to create new data, you differentiate between the following property types:

Mandatory: You must include these properties in your request.

Optional: You can include these properties in your request.

Read-only: The system creates these properties automatically (for example, the creation date or various
document statuses) and you cannot change them.

Note that you can create an item pricing element in two ways:

You can use deep insert requests, meaning that you don't create an item pricing element on its own, but together
with the related item entity.

You can create an item pricing element as a single entity. Prerequisite is that the item already exists.

Read (GET)

If you want to use this API to read data that already exists in the system, you can either retrieve all the data for the
document or include any of the properties of this entity in your request to retrieve only those.

Update (PATCH)

If you want to use this API to change data, you must include all the key fields of this entity in your request, so that the
system can identify the document and the entity that you want to change. In addition, you can include the properties
you want to change. Whether you can change a specific property or not depends on the general system behavior, your
system settings, and the current document status.

Lots of properties, for example, can no longer be changed as soon as subsequent documents exist.

Delete (DELETE)

If you want to use this API to delete data, you must include all the key fields of this entity in your request, so that the
system can identify the document and the entity that you want to delete. Whether you can delete a specific entity or not
depends on the general system behavior, your system settings, and the current document status.

The table below lists the information for the Create (POST) operation.

Properties
This is custom documentation. For more information, please visit SAP Help Portal. 66
1/18/25, 8:45 PM
The following properties are key properties:

PricingProcedureCounter

PricingProcedureStep

SalesOrder

SalesOrderItem

Property Description Necessity

ConditionType The key that uniquely identifies the Mandatory


condition

ConditionCurrency Currency key for amounts in the system Optional

ConditionQuantity The quantity on which the amount or Optional


percentage is based. The quantity is
expressed in sales units (for example,
bottles).

ConditionQuantityUnit Quantity unit to which the condition Optional


amount or percentage refers. You can use
either the language-dependent unit code,
the ISO code, the SAP code (the format
found in the database without conversions).

ConditionQuantitySAPUnit Quantity unit to which the condition Optional


amount or percentage refers. You can use
either the language-dependent unit code,
the ISO code, the SAP code (the format
found in the database without conversions).

ConditionQuantityISOUnit The following oQuantity unit to which the Optional


condition amount or percentage refers. You
can use either the language-dependent unit
code, the ISO code, the SAP code (the
format found in the database without
conversions).

ConditionRateValue Determines how the system calculates Optional


pricing using this condition. Depending on
the condition type, the rate can be an
amount or a percentage. If the condition
includes a pricing scale, the rate displays
the first line of the scale.

CndnIsRelevantForIntcoBilling A condition (KFKIV) that is relevant for Read-only


intercompany billing

CndnIsRelevantForInvoiceList Indicates that the condition type is relevant Read-only


for internal costing

CndnRoundingOffDiffAmount Rounding-off difference of the condition Read-only

ConditionAmount The value, resulting from pricing, for a Read-only


particular condition, total, or subtotal in a
sales order

This is custom documentation. For more information, please visit SAP Help Portal. 67
1/18/25, 8:45 PM

Property Description Necessity

ConditionApplication Subdivides the usage of a condition (for Read-only


example, pricing) for use in different
application areas (for example, sales and
distribution or purchasing)

ConditionBaseValue The base value that the system uses to Read-only


calculate pricing for the condition

ConditionCalculationType Determines how the system calculates Read-only


prices, discounts, or surcharges in a
condition. For example, the system can
calculate a price as a fixed amount or as a
percentage based on quantity, volume, or
weight.

ConditionCategory A classification of conditions according to Read-only


pre-defined categories (for example, all
conditions that relate to freight costs)

ConditionClass Preliminary structuring of condition types, Read-only


for example, in surcharges and discounts or
prices

ConditionControl Indicates whether the prices or values in a Read-only


condition are fixed or whether and in what
way they changed

ConditionInactiveReason Indicates if the condition is active Read-only

ConditionIsForConfiguration A variant condition (KVARC) is a condition Read-only


that is relevant for configuration.

ConditionIsForStatistics Indicates whether a surcharge or discount Read-only


is to be set in the sales order statistically
(that is, without altering the value)

ConditionIsManuallyChanged Indicates whether the condition has been Read-only


manually or automatically changed or
created (by entry on the condition screen)

ConditionOrigin Indicates where the condition originated Read-only


(for example, whether you entered the
condition manually or whether the system
determined it automatically)

ConditionRecord Number that uniquely identifies a condition Read-only


record

ConditionScaleBasisCurrency Specifies a currency for a pricing scale in a Read-only


condition record

ConditionScaleBasisUnit Unit of measure to which the quantity scale Read-only


refers

ConditionScaleBasisValue The level of the pricing scale that applies to Read-only


the item

ConditionSequentialNumber The sequential number that uniquely Read-only


identifies the condition if a condition

This is custom documentation. For more information, please visit SAP Help Portal. 68
1/18/25, 8:45 PM

Property Description Necessity

supplement exists

FactorForConditionBasisValue The factor for the condition base value Read-only

IsGroupCondition Indicates whether the system calculates the Read-only


basis for the scale value from more than
one item in the sales order

IsRelevantForAccrual Indicates that the system posts the Read-only


amounts resulting from this condition to
financial accounting as accruals

PeriodFactorForCndnBasisValue The factor for condition basis (period) Read-only

PrcgProcedureCounterForHeader The condition counter (header) Read-only

PricingDateTime The timestamp for pricing Read-only

PricingProcedureCounter (key) Access number of the conditions within a Read-only


step in the pricing procedure

PricingProcedureStep (key) Number that determines the sequence of Read-only


the condition within a procedure

PricingScaleBasis Determines how the system interprets a Read-only


pricing scale in a condition. For example,
the scale can be based on quantity, weight,
or volume.

PricingScaleType Indicator that controls the validity of the Read-only


scale value or percentage as follows:

From a certain quantity or value


(base scale)

Up to a certain quantity or value (to-


scale)

SalesOrder (key) Specifies the sales order ID Read-only

SalesOrderItem (key) Specifies the sales order item number Read-only

StructureCondition Controls whether the condition type should Read-only


be a duplicated condition or a cumulated
condition. A duplicated condition is
duplicated into all assigned items, whereas
a cumulated condition contains the net
value of all assigned items.

TaxCode The tax code represents a tax category Read-only


which must be taken into consideration
when making a tax return to the tax
authorities.

TransactionCurrency The currency that applies to the sales order Read-only

WithholdingTaxCode One or more withholding tax codes are Read-only


assigned to each withholding tax type. One
of the things these codes determine is the

This is custom documentation. For more information, please visit SAP Help Portal. 69
1/18/25, 8:45 PM

Property Description Necessity

various percentage rates for the


withholding tax type.

PriceConditionDeterminationDte The timestamp for pricing. This property is Read-only


meant to replace the PricingDateTime
property, which will remain in the APIs for
compatibility reasons.

Example
For Read requests or in responses to Create requests, the Sales Order (A2X, OData V2) API returns only the following:

Condition types that were created manually in the header (that is, no conditions that are cumulated from all items)

Conditions with condition types in the item (that is, no subtotals)

If you want to return all pricing element properties (both in Read requests and in responses to Create requests), you can use the
Sales Order (A2X, OData V4) API.

Create Request

The following request creates a sales order with a header pricing element and an item with an item pricing element.

POST <host> /sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrder


{
"SalesOrderType": "OR",
"SalesOrganization": "1010",
"DistributionChannel": "10",
"OrganizationDivision": "00",
"SoldToParty": "10100003",
"PurchaseOrderByCustomer": "Created via V2 API",
"to_PricingElement": [
{
"ConditionType": "DRN1",
"ConditionRateValue": "10.5"
}
],
"to_Item": [
{
"Material": "TG12",
"RequestedQuantity": "20",
"RequestedQuantityISOUnit": "PCE",
"to_PricingElement": [
{
"ConditionType": "PMP0",
"ConditionRateValue": "34.34",
"ConditionCurrency": "USD",
"ConditionQuantity": "2",
"ConditionQuantityISOUnit": "PCE"
},
{
"ConditionType": "YK07",
"ConditionRateValue": "10.67"
}
]
}
]
}

The following figure illustrates this item pricing element:

This is custom documentation. For more information, please visit SAP Help Portal. 70
1/18/25, 8:45 PM

Response

The system only returns the sales order header, but no subentities (that is, no header pricing element, no item, and no item pricing
element).

Read Request for the Sales Order Item

The following request reads the item pricing element.

GET <host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrderItem(SalesOrder=’112300’,SalesOrderIte

Response

The system returns the following response.

<feed xmlns="http://www.w3.org/2005/Atom" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataser


<id>https://<host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrderItem(SalesOrder='112300',S
<title type="text">A_SalesOrderItemPrElement</title>
<updated>2023-11-30T15:53:22Z</updated>
<author>
<name/>
</author>
<link href="A_SalesOrderItem(SalesOrder='112300',SalesOrderItem='10')/to_PricingElement" rel="s
<entry>
<id>https://<host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrderItemPrElement(SalesOrd
<title type="text">A_SalesOrderItemPrElement(SalesOrder='112300',SalesOrderItem='10',Pricin
<updated>2023-11-30T15:53:22Z</updated>
<category term="API_SALES_ORDER_SRV.A_SalesOrderItemPrElementType" scheme="http://schemas.m
<link href="A_SalesOrderItemPrElement(SalesOrder='112300',SalesOrderItem='10',PricingProced
<link href="A_SalesOrderItemPrElement(SalesOrder='112300',SalesOrderItem='10',PricingProced
<link href="A_SalesOrderItemPrElement(SalesOrder='112300',SalesOrderItem='10',PricingProced
<content type="application/xml">
<m:properties xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
<d:SalesOrder>112300</d:SalesOrder>
<d:SalesOrderItem>10</d:SalesOrderItem>
<d:PricingProcedureStep>20</d:PricingProcedureStep>
<d:PricingProcedureCounter>1</d:PricingProcedureCounter>
<d:ConditionType>PPR0</d:ConditionType>

This is custom documentation. For more information, please visit SAP Help Portal. 71
1/18/25, 8:45 PM
<d:PricingDateTime>20231130000000</d:PricingDateTime>
<d:PriceConditionDeterminationDte>2023-11-30T00:00:00</d:PriceConditionDeterminatio
<d:ConditionCalculationType>C</d:ConditionCalculationType>
<d:ConditionBaseValue>20.000000000</d:ConditionBaseValue>
<d:ConditionRateValue>188.000000000</d:ConditionRateValue>
<d:ConditionCurrency>EUR</d:ConditionCurrency>
<d:ConditionQuantity>1</d:ConditionQuantity>
<d:ConditionQuantityUnit>PC</d:ConditionQuantityUnit>
<d:ConditionQuantitySAPUnit>ST</d:ConditionQuantitySAPUnit>
<d:ConditionQuantityISOUnit>PCE</d:ConditionQuantityISOUnit>
<d:ConditionCategory></d:ConditionCategory>
<d:ConditionIsForStatistics>false</d:ConditionIsForStatistics>
<d:PricingScaleType></d:PricingScaleType>
<d:IsRelevantForAccrual>false</d:IsRelevantForAccrual>
<d:CndnIsRelevantForInvoiceList></d:CndnIsRelevantForInvoiceList>
<d:ConditionOrigin>A</d:ConditionOrigin>
<d:IsGroupCondition></d:IsGroupCondition>
<d:ConditionRecord>0000143391</d:ConditionRecord>
<d:ConditionSequentialNumber>1</d:ConditionSequentialNumber>
<d:TaxCode></d:TaxCode>
<d:WithholdingTaxCode></d:WithholdingTaxCode>
<d:CndnRoundingOffDiffAmount>0.00</d:CndnRoundingOffDiffAmount>
<d:ConditionAmount>3760.00</d:ConditionAmount>
<d:TransactionCurrency>EUR</d:TransactionCurrency>
<d:ConditionControl>A</d:ConditionControl>
<d:ConditionInactiveReason>Y</d:ConditionInactiveReason>
<d:ConditionClass>B</d:ConditionClass>
<d:PrcgProcedureCounterForHeader>0</d:PrcgProcedureCounterForHeader>
<d:FactorForConditionBasisValue>0</d:FactorForConditionBasisValue>
<d:StructureCondition></d:StructureCondition>
<d:PeriodFactorForCndnBasisValue>0</d:PeriodFactorForCndnBasisValue>
<d:PricingScaleBasis></d:PricingScaleBasis>
<d:ConditionScaleBasisValue>0.000000000</d:ConditionScaleBasisValue>
<d:ConditionScaleBasisUnit></d:ConditionScaleBasisUnit>
<d:ConditionScaleBasisCurrency></d:ConditionScaleBasisCurrency>
<d:CndnIsRelevantForIntcoBilling>false</d:CndnIsRelevantForIntcoBilling>
<d:ConditionIsManuallyChanged>false</d:ConditionIsManuallyChanged>
<d:ConditionIsForConfiguration>false</d:ConditionIsForConfiguration>
<d:VariantCondition></d:VariantCondition>
</m:properties>
</content>
</entry>
<entry>
<id>https://<host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrderItemPrElement(SalesOrd
<title type="text">A_SalesOrderItemPrElement(SalesOrder='112300',SalesOrderItem='10',Pricin
<updated>2023-11-30T15:53:22Z</updated>
<category term="API_SALES_ORDER_SRV.A_SalesOrderItemPrElementType" scheme="http://schemas.m
<link href="A_SalesOrderItemPrElement(SalesOrder='112300',SalesOrderItem='10',PricingProced
<link href="A_SalesOrderItemPrElement(SalesOrder='112300',SalesOrderItem='10',PricingProced
<link href="A_SalesOrderItemPrElement(SalesOrder='112300',SalesOrderItem='10',PricingProced
<content type="application/xml">
<m:properties xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
<d:SalesOrder>112300</d:SalesOrder>
<d:SalesOrderItem>10</d:SalesOrderItem>
<d:PricingProcedureStep>60</d:PricingProcedureStep>
<d:PricingProcedureCounter>1</d:PricingProcedureCounter>
<d:ConditionType>PMP0</d:ConditionType>
<d:PricingDateTime>20231130000000</d:PricingDateTime>
<d:PriceConditionDeterminationDte>2023-11-30T00:00:00</d:PriceConditionDeterminatio
<d:ConditionCalculationType>C</d:ConditionCalculationType>
<d:ConditionBaseValue>20.000000000</d:ConditionBaseValue>
<d:ConditionRateValue>34.340000000</d:ConditionRateValue>
<d:ConditionCurrency>USD</d:ConditionCurrency>
<d:ConditionQuantity>2</d:ConditionQuantity>
<d:ConditionQuantityUnit>PC</d:ConditionQuantityUnit>
<d:ConditionQuantitySAPUnit>ST</d:ConditionQuantitySAPUnit>
<d:ConditionQuantityISOUnit>PCE</d:ConditionQuantityISOUnit>
<d:ConditionCategory>H</d:ConditionCategory>
<d:ConditionIsForStatistics>false</d:ConditionIsForStatistics>
<d:PricingScaleType></d:PricingScaleType>
<d:IsRelevantForAccrual>false</d:IsRelevantForAccrual>
<d:CndnIsRelevantForInvoiceList></d:CndnIsRelevantForInvoiceList>
<d:ConditionOrigin>C</d:ConditionOrigin>
<d:IsGroupCondition></d:IsGroupCondition>

This is custom documentation. For more information, please visit SAP Help Portal. 72
1/18/25, 8:45 PM
<d:ConditionRecord></d:ConditionRecord>
<d:ConditionSequentialNumber>0</d:ConditionSequentialNumber>
<d:TaxCode></d:TaxCode>
<d:WithholdingTaxCode></d:WithholdingTaxCode>
<d:CndnRoundingOffDiffAmount>0.00</d:CndnRoundingOffDiffAmount>
<d:ConditionAmount>277.40</d:ConditionAmount>
<d:TransactionCurrency>EUR</d:TransactionCurrency>
<d:ConditionControl>C</d:ConditionControl>
<d:ConditionInactiveReason></d:ConditionInactiveReason>
<d:ConditionClass>B</d:ConditionClass>
<d:PrcgProcedureCounterForHeader>0</d:PrcgProcedureCounterForHeader>
<d:FactorForConditionBasisValue>0</d:FactorForConditionBasisValue>
<d:StructureCondition></d:StructureCondition>
<d:PeriodFactorForCndnBasisValue>0</d:PeriodFactorForCndnBasisValue>
<d:PricingScaleBasis></d:PricingScaleBasis>
<d:ConditionScaleBasisValue>0.000000000</d:ConditionScaleBasisValue>
<d:ConditionScaleBasisUnit></d:ConditionScaleBasisUnit>
<d:ConditionScaleBasisCurrency></d:ConditionScaleBasisCurrency>
<d:CndnIsRelevantForIntcoBilling>false</d:CndnIsRelevantForIntcoBilling>
<d:ConditionIsManuallyChanged>true</d:ConditionIsManuallyChanged>
<d:ConditionIsForConfiguration>false</d:ConditionIsForConfiguration>
<d:VariantCondition></d:VariantCondition>
</m:properties>
</content>
</entry>
<entry>
<id>https://<host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrderItemPrElement(SalesOrd
<title type="text">A_SalesOrderItemPrElement(SalesOrder='112300',SalesOrderItem='10',Pricin
<updated>2023-11-30T15:53:22Z</updated>
<category term="API_SALES_ORDER_SRV.A_SalesOrderItemPrElementType" scheme="http://schemas.m
<link href="A_SalesOrderItemPrElement(SalesOrder='112300',SalesOrderItem='10',PricingProced
<link href="A_SalesOrderItemPrElement(SalesOrder='112300',SalesOrderItem='10',PricingProced
<link href="A_SalesOrderItemPrElement(SalesOrder='112300',SalesOrderItem='10',PricingProced
<content type="application/xml">
<m:properties xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
<d:SalesOrder>112300</d:SalesOrder>
<d:SalesOrderItem>10</d:SalesOrderItem>
<d:PricingProcedureStep>145</d:PricingProcedureStep>
<d:PricingProcedureCounter>1</d:PricingProcedureCounter>
<d:ConditionType>YK07</d:ConditionType>
<d:PricingDateTime>20231130000000</d:PricingDateTime>
<d:PriceConditionDeterminationDte>2023-11-30T00:00:00</d:PriceConditionDeterminatio
<d:ConditionCalculationType>A</d:ConditionCalculationType>
<d:ConditionBaseValue>277.400000000</d:ConditionBaseValue>
<d:ConditionRateValue>-10.670000000</d:ConditionRateValue>
<d:ConditionCurrency></d:ConditionCurrency>
<d:ConditionQuantity>0</d:ConditionQuantity>
<d:ConditionQuantityUnit></d:ConditionQuantityUnit>
<d:ConditionQuantitySAPUnit></d:ConditionQuantitySAPUnit>
<d:ConditionQuantityISOUnit></d:ConditionQuantityISOUnit>
<d:ConditionCategory></d:ConditionCategory>
<d:ConditionIsForStatistics>false</d:ConditionIsForStatistics>
<d:PricingScaleType></d:PricingScaleType>
<d:IsRelevantForAccrual>false</d:IsRelevantForAccrual>
<d:CndnIsRelevantForInvoiceList></d:CndnIsRelevantForInvoiceList>
<d:ConditionOrigin>C</d:ConditionOrigin>
<d:IsGroupCondition></d:IsGroupCondition>
<d:ConditionRecord></d:ConditionRecord>
<d:ConditionSequentialNumber>0</d:ConditionSequentialNumber>
<d:TaxCode></d:TaxCode>
<d:WithholdingTaxCode></d:WithholdingTaxCode>
<d:CndnRoundingOffDiffAmount>0.00</d:CndnRoundingOffDiffAmount>
<d:ConditionAmount>-29.60</d:ConditionAmount>
<d:TransactionCurrency>EUR</d:TransactionCurrency>
<d:ConditionControl>C</d:ConditionControl>
<d:ConditionInactiveReason></d:ConditionInactiveReason>
<d:ConditionClass>A</d:ConditionClass>
<d:PrcgProcedureCounterForHeader>0</d:PrcgProcedureCounterForHeader>
<d:FactorForConditionBasisValue>0</d:FactorForConditionBasisValue>
<d:StructureCondition></d:StructureCondition>
<d:PeriodFactorForCndnBasisValue>0</d:PeriodFactorForCndnBasisValue>
<d:PricingScaleBasis></d:PricingScaleBasis>
<d:ConditionScaleBasisValue>0.000000000</d:ConditionScaleBasisValue>
<d:ConditionScaleBasisUnit></d:ConditionScaleBasisUnit>

This is custom documentation. For more information, please visit SAP Help Portal. 73
1/18/25, 8:45 PM
<d:ConditionScaleBasisCurrency></d:ConditionScaleBasisCurrency>
<d:CndnIsRelevantForIntcoBilling>false</d:CndnIsRelevantForIntcoBilling>
<d:ConditionIsManuallyChanged>true</d:ConditionIsManuallyChanged>
<d:ConditionIsForConfiguration>false</d:ConditionIsForConfiguration>
<d:VariantCondition></d:VariantCondition>
</m:properties>
</content>
</entry>
<entry>
<id>https://<host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrderItemPrElement(SalesOrd
<title type="text">A_SalesOrderItemPrElement(SalesOrder='112300',SalesOrderItem='10',Pricin
<updated>2023-11-30T15:53:22Z</updated>
<category term="API_SALES_ORDER_SRV.A_SalesOrderItemPrElementType" scheme="http://schemas.m
<link href="A_SalesOrderItemPrElement(SalesOrder='112300',SalesOrderItem='10',PricingProced
<link href="A_SalesOrderItemPrElement(SalesOrder='112300',SalesOrderItem='10',PricingProced
<link href="A_SalesOrderItemPrElement(SalesOrder='112300',SalesOrderItem='10',PricingProced
<content type="application/xml">
<m:properties xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
<d:SalesOrder>112300</d:SalesOrder>
<d:SalesOrderItem>10</d:SalesOrderItem>
<d:PricingProcedureStep>210</d:PricingProcedureStep>
<d:PricingProcedureCounter>1</d:PricingProcedureCounter>
<d:ConditionType>DRN1</d:ConditionType>
<d:PricingDateTime>20231130000000</d:PricingDateTime>
<d:PriceConditionDeterminationDte>2023-11-30T00:00:00</d:PriceConditionDeterminatio
<d:ConditionCalculationType>A</d:ConditionCalculationType>
<d:ConditionBaseValue>247.800000000</d:ConditionBaseValue>
<d:ConditionRateValue>10.500000000</d:ConditionRateValue>
<d:ConditionCurrency></d:ConditionCurrency>
<d:ConditionQuantity>0</d:ConditionQuantity>
<d:ConditionQuantityUnit></d:ConditionQuantityUnit>
<d:ConditionQuantitySAPUnit></d:ConditionQuantitySAPUnit>
<d:ConditionQuantityISOUnit></d:ConditionQuantityISOUnit>
<d:ConditionCategory></d:ConditionCategory>
<d:ConditionIsForStatistics>false</d:ConditionIsForStatistics>
<d:PricingScaleType></d:PricingScaleType>
<d:IsRelevantForAccrual>false</d:IsRelevantForAccrual>
<d:CndnIsRelevantForInvoiceList></d:CndnIsRelevantForInvoiceList>
<d:ConditionOrigin>D</d:ConditionOrigin>
<d:IsGroupCondition></d:IsGroupCondition>
<d:ConditionRecord></d:ConditionRecord>
<d:ConditionSequentialNumber>0</d:ConditionSequentialNumber>
<d:TaxCode></d:TaxCode>
<d:WithholdingTaxCode></d:WithholdingTaxCode>
<d:CndnRoundingOffDiffAmount>0.00</d:CndnRoundingOffDiffAmount>
<d:ConditionAmount>26.02</d:ConditionAmount>
<d:TransactionCurrency>EUR</d:TransactionCurrency>
<d:ConditionControl>C</d:ConditionControl>
<d:ConditionInactiveReason></d:ConditionInactiveReason>
<d:ConditionClass>A</d:ConditionClass>
<d:PrcgProcedureCounterForHeader>1</d:PrcgProcedureCounterForHeader>
<d:FactorForConditionBasisValue>0</d:FactorForConditionBasisValue>
<d:StructureCondition></d:StructureCondition>
<d:PeriodFactorForCndnBasisValue>0</d:PeriodFactorForCndnBasisValue>
<d:PricingScaleBasis></d:PricingScaleBasis>
<d:ConditionScaleBasisValue>0.000000000</d:ConditionScaleBasisValue>
<d:ConditionScaleBasisUnit></d:ConditionScaleBasisUnit>
<d:ConditionScaleBasisCurrency></d:ConditionScaleBasisCurrency>
<d:CndnIsRelevantForIntcoBilling>false</d:CndnIsRelevantForIntcoBilling>
<d:ConditionIsManuallyChanged>true</d:ConditionIsManuallyChanged>
<d:ConditionIsForConfiguration>false</d:ConditionIsForConfiguration>
<d:VariantCondition></d:VariantCondition>
</m:properties>
</content>
</entry>
<entry>
<id>https://ccf-715-api.wdf./sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrderItemPrElemen
<title type="text">A_SalesOrderItemPrElement(SalesOrder='112300',SalesOrderItem='10',Pricin
<updated>2023-11-30T15:53:22Z</updated>
<category term="API_SALES_ORDER_SRV.A_SalesOrderItemPrElementType" scheme="http://schemas.m
<link href="A_SalesOrderItemPrElement(SalesOrder='112300',SalesOrderItem='10',PricingProced
<link href="A_SalesOrderItemPrElement(SalesOrder='112300',SalesOrderItem='10',PricingProced
<link href="A_SalesOrderItemPrElement(SalesOrder='112300',SalesOrderItem='10',PricingProced
<content type="application/xml">

This is custom documentation. For more information, please visit SAP Help Portal. 74
1/18/25, 8:45 PM
<m:properties xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
<d:SalesOrder>112300</d:SalesOrder>
<d:SalesOrderItem>10</d:SalesOrderItem>
<d:PricingProcedureStep>840</d:PricingProcedureStep>
<d:PricingProcedureCounter>1</d:PricingProcedureCounter>
<d:ConditionType>YZWR</d:ConditionType>
<d:PricingDateTime>20231130000000</d:PricingDateTime>
<d:PriceConditionDeterminationDte>2023-11-30T00:00:00</d:PriceConditionDeterminatio
<d:ConditionCalculationType>B</d:ConditionCalculationType>
<d:ConditionBaseValue>273.820000000</d:ConditionBaseValue>
<d:ConditionRateValue>0.000000000</d:ConditionRateValue>
<d:ConditionCurrency>EUR</d:ConditionCurrency>
<d:ConditionQuantity>0</d:ConditionQuantity>
<d:ConditionQuantityUnit></d:ConditionQuantityUnit>
<d:ConditionQuantitySAPUnit></d:ConditionQuantitySAPUnit>
<d:ConditionQuantityISOUnit></d:ConditionQuantityISOUnit>
<d:ConditionCategory>e</d:ConditionCategory>
<d:ConditionIsForStatistics>false</d:ConditionIsForStatistics>
<d:PricingScaleType></d:PricingScaleType>
<d:IsRelevantForAccrual>false</d:IsRelevantForAccrual>
<d:CndnIsRelevantForInvoiceList></d:CndnIsRelevantForInvoiceList>
<d:ConditionOrigin>A</d:ConditionOrigin>
<d:IsGroupCondition></d:IsGroupCondition>
<d:ConditionRecord></d:ConditionRecord>
<d:ConditionSequentialNumber>0</d:ConditionSequentialNumber>
<d:TaxCode></d:TaxCode>
<d:WithholdingTaxCode></d:WithholdingTaxCode>
<d:CndnRoundingOffDiffAmount>0.00</d:CndnRoundingOffDiffAmount>
<d:ConditionAmount>0.00</d:ConditionAmount>
<d:TransactionCurrency>EUR</d:TransactionCurrency>
<d:ConditionControl>A</d:ConditionControl>
<d:ConditionInactiveReason></d:ConditionInactiveReason>
<d:ConditionClass>A</d:ConditionClass>
<d:PrcgProcedureCounterForHeader>0</d:PrcgProcedureCounterForHeader>
<d:FactorForConditionBasisValue>0</d:FactorForConditionBasisValue>
<d:StructureCondition></d:StructureCondition>
<d:PeriodFactorForCndnBasisValue>0</d:PeriodFactorForCndnBasisValue>
<d:PricingScaleBasis></d:PricingScaleBasis>
<d:ConditionScaleBasisValue>0.000000000</d:ConditionScaleBasisValue>
<d:ConditionScaleBasisUnit></d:ConditionScaleBasisUnit>
<d:ConditionScaleBasisCurrency></d:ConditionScaleBasisCurrency>
<d:CndnIsRelevantForIntcoBilling>false</d:CndnIsRelevantForIntcoBilling>
<d:ConditionIsManuallyChanged>false</d:ConditionIsManuallyChanged>
<d:ConditionIsForConfiguration>false</d:ConditionIsForConfiguration>
<d:VariantCondition></d:VariantCondition>
</m:properties>
</content>
</entry>
<entry>
<id>https://<host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrderItemPrElement(SalesOrd
<title type="text">A_SalesOrderItemPrElement(SalesOrder='112300',SalesOrderItem='10',Pricin
<updated>2023-11-30T15:53:22Z</updated>
<category term="API_SALES_ORDER_SRV.A_SalesOrderItemPrElementType" scheme="http://schemas.m
<link href="A_SalesOrderItemPrElement(SalesOrder='112300',SalesOrderItem='10',PricingProced
<link href="A_SalesOrderItemPrElement(SalesOrder='112300',SalesOrderItem='10',PricingProced
<link href="A_SalesOrderItemPrElement(SalesOrder='112300',SalesOrderItem='10',PricingProced
<content type="application/xml">
<m:properties xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
<d:SalesOrder>112300</d:SalesOrder>
<d:SalesOrderItem>10</d:SalesOrderItem>
<d:PricingProcedureStep>850</d:PricingProcedureStep>
<d:PricingProcedureCounter>1</d:PricingProcedureCounter>
<d:ConditionType>TTX1</d:ConditionType>
<d:PricingDateTime>20231130000000</d:PricingDateTime>
<d:PriceConditionDeterminationDte>2023-11-30T00:00:00</d:PriceConditionDeterminatio
<d:ConditionCalculationType>A</d:ConditionCalculationType>
<d:ConditionBaseValue>273.820000000</d:ConditionBaseValue>
<d:ConditionRateValue>19.000000000</d:ConditionRateValue>
<d:ConditionCurrency></d:ConditionCurrency>
<d:ConditionQuantity>0</d:ConditionQuantity>
<d:ConditionQuantityUnit></d:ConditionQuantityUnit>
<d:ConditionQuantitySAPUnit></d:ConditionQuantitySAPUnit>
<d:ConditionQuantityISOUnit></d:ConditionQuantityISOUnit>
<d:ConditionCategory>D</d:ConditionCategory>

This is custom documentation. For more information, please visit SAP Help Portal. 75
1/18/25, 8:45 PM
<d:ConditionIsForStatistics>false</d:ConditionIsForStatistics>
<d:PricingScaleType></d:PricingScaleType>
<d:IsRelevantForAccrual>false</d:IsRelevantForAccrual>
<d:CndnIsRelevantForInvoiceList></d:CndnIsRelevantForInvoiceList>
<d:ConditionOrigin>A</d:ConditionOrigin>
<d:IsGroupCondition>X</d:IsGroupCondition>
<d:ConditionRecord>0000141236</d:ConditionRecord>
<d:ConditionSequentialNumber>1</d:ConditionSequentialNumber>
<d:TaxCode>A1</d:TaxCode>
<d:WithholdingTaxCode></d:WithholdingTaxCode>
<d:CndnRoundingOffDiffAmount>0.00</d:CndnRoundingOffDiffAmount>
<d:ConditionAmount>52.03</d:ConditionAmount>
<d:TransactionCurrency>EUR</d:TransactionCurrency>
<d:ConditionControl>A</d:ConditionControl>
<d:ConditionInactiveReason></d:ConditionInactiveReason>
<d:ConditionClass>D</d:ConditionClass>
<d:PrcgProcedureCounterForHeader>0</d:PrcgProcedureCounterForHeader>
<d:FactorForConditionBasisValue>0</d:FactorForConditionBasisValue>
<d:StructureCondition></d:StructureCondition>
<d:PeriodFactorForCndnBasisValue>0</d:PeriodFactorForCndnBasisValue>
<d:PricingScaleBasis></d:PricingScaleBasis>
<d:ConditionScaleBasisValue>0.000000000</d:ConditionScaleBasisValue>
<d:ConditionScaleBasisUnit></d:ConditionScaleBasisUnit>
<d:ConditionScaleBasisCurrency></d:ConditionScaleBasisCurrency>
<d:CndnIsRelevantForIntcoBilling>false</d:CndnIsRelevantForIntcoBilling>
<d:ConditionIsManuallyChanged>false</d:ConditionIsManuallyChanged>
<d:ConditionIsForConfiguration>false</d:ConditionIsForConfiguration>
<d:VariantCondition></d:VariantCondition>
</m:properties>
</content>
</entry>
<entry>
<id>https://<host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrderItemPrElement(SalesOrd
<title type="text">A_SalesOrderItemPrElement(SalesOrder='112300',SalesOrderItem='10',Pricin
<updated>2023-11-30T15:53:22Z</updated>
<category term="API_SALES_ORDER_SRV.A_SalesOrderItemPrElementType" scheme="http://schemas.m
<link href="A_SalesOrderItemPrElement(SalesOrder='112300',SalesOrderItem='10',PricingProced
<link href="A_SalesOrderItemPrElement(SalesOrder='112300',SalesOrderItem='10',PricingProced
<link href="A_SalesOrderItemPrElement(SalesOrder='112300',SalesOrderItem='10',PricingProced
<content type="application/xml">
<m:properties xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
<d:SalesOrder>112300</d:SalesOrder>
<d:SalesOrderItem>10</d:SalesOrderItem>
<d:PricingProcedureStep>930</d:PricingProcedureStep>
<d:PricingProcedureCounter>1</d:PricingProcedureCounter>
<d:ConditionType>PCIP</d:ConditionType>
<d:PricingDateTime>20231130000000</d:PricingDateTime>
<d:PriceConditionDeterminationDte>2023-11-30T00:00:00</d:PriceConditionDeterminatio
<d:ConditionCalculationType>C</d:ConditionCalculationType>
<d:ConditionBaseValue>20.000000000</d:ConditionBaseValue>
<d:ConditionRateValue>100.000000000</d:ConditionRateValue>
<d:ConditionCurrency>EUR</d:ConditionCurrency>
<d:ConditionQuantity>1</d:ConditionQuantity>
<d:ConditionQuantityUnit>PC</d:ConditionQuantityUnit>
<d:ConditionQuantitySAPUnit>ST</d:ConditionQuantitySAPUnit>
<d:ConditionQuantityISOUnit>PCE</d:ConditionQuantityISOUnit>
<d:ConditionCategory>G</d:ConditionCategory>
<d:ConditionIsForStatistics>true</d:ConditionIsForStatistics>
<d:PricingScaleType></d:PricingScaleType>
<d:IsRelevantForAccrual>false</d:IsRelevantForAccrual>
<d:CndnIsRelevantForInvoiceList></d:CndnIsRelevantForInvoiceList>
<d:ConditionOrigin>A</d:ConditionOrigin>
<d:IsGroupCondition></d:IsGroupCondition>
<d:ConditionRecord></d:ConditionRecord>
<d:ConditionSequentialNumber>0</d:ConditionSequentialNumber>
<d:TaxCode></d:TaxCode>
<d:WithholdingTaxCode></d:WithholdingTaxCode>
<d:CndnRoundingOffDiffAmount>0.00</d:CndnRoundingOffDiffAmount>
<d:ConditionAmount>2000.00</d:ConditionAmount>
<d:TransactionCurrency>EUR</d:TransactionCurrency>
<d:ConditionControl>A</d:ConditionControl>
<d:ConditionInactiveReason></d:ConditionInactiveReason>
<d:ConditionClass>B</d:ConditionClass>
<d:PrcgProcedureCounterForHeader>0</d:PrcgProcedureCounterForHeader>

This is custom documentation. For more information, please visit SAP Help Portal. 76
1/18/25, 8:45 PM
<d:FactorForConditionBasisValue>0</d:FactorForConditionBasisValue>
<d:StructureCondition></d:StructureCondition>
<d:PeriodFactorForCndnBasisValue>0</d:PeriodFactorForCndnBasisValue>
<d:PricingScaleBasis></d:PricingScaleBasis>
<d:ConditionScaleBasisValue>0.000000000</d:ConditionScaleBasisValue>
<d:ConditionScaleBasisUnit></d:ConditionScaleBasisUnit>
<d:ConditionScaleBasisCurrency></d:ConditionScaleBasisCurrency>
<d:CndnIsRelevantForIntcoBilling>false</d:CndnIsRelevantForIntcoBilling>
<d:ConditionIsManuallyChanged>false</d:ConditionIsManuallyChanged>
<d:ConditionIsForConfiguration>false</d:ConditionIsForConfiguration>
<d:VariantCondition></d:VariantCondition>
</m:properties>
</content>
</entry>
</feed>

<feed xmlns="http://www.w3.org/2005/Atom" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataser


<id>https://<host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrderItem(SalesOrder='112032',S
<title type="text">A_SalesOrderItemPrElement</title>
<updated>2023-11-30T14:52:28Z</updated>
<author>
<name/>
</author>
<link href="A_SalesOrderItem(SalesOrder='112032',SalesOrderItem='10')/to_PricingElement" rel="s
<entry>
<id>https://<host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrderItemPrElement(SalesOrd
<title type="text">A_SalesOrderItemPrElement(SalesOrder='112032',SalesOrderItem='10',Pricin
<updated>2023-11-30T14:52:28Z</updated>
<category term="API_SALES_ORDER_SRV.A_SalesOrderItemPrElementType" scheme="http://schemas.m
<link href="A_SalesOrderItemPrElement(SalesOrder='112032',SalesOrderItem='10',PricingProced
<link href="A_SalesOrderItemPrElement(SalesOrder='112032',SalesOrderItem='10',PricingProced
<link href="A_SalesOrderItemPrElement(SalesOrder='112032',SalesOrderItem='10',PricingProced
<content type="application/xml">
<m:properties xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
<d:SalesOrder>112032</d:SalesOrder>
<d:SalesOrderItem>10</d:SalesOrderItem>
<d:PricingProcedureStep>20</d:PricingProcedureStep>
<d:PricingProcedureCounter>1</d:PricingProcedureCounter>
<d:ConditionType>PPR0</d:ConditionType>
<d:PricingDateTime>20390701000000</d:PricingDateTime>
<d:PriceConditionDeterminationDte>2039-07-01T00:00:00</d:PriceConditionDeterminatio
<d:ConditionCalculationType>C</d:ConditionCalculationType>
<d:ConditionBaseValue>20.000000000</d:ConditionBaseValue>
<d:ConditionRateValue>20.000000000</d:ConditionRateValue>
<d:ConditionCurrency>EUR</d:ConditionCurrency>
<d:ConditionQuantity>1</d:ConditionQuantity>
<d:ConditionQuantityUnit>PC</d:ConditionQuantityUnit>
<d:ConditionQuantitySAPUnit>ST</d:ConditionQuantitySAPUnit>
<d:ConditionQuantityISOUnit>PCE</d:ConditionQuantityISOUnit>
<d:ConditionCategory></d:ConditionCategory>
<d:ConditionIsForStatistics>false</d:ConditionIsForStatistics>
<d:PricingScaleType></d:PricingScaleType>
<d:IsRelevantForAccrual>false</d:IsRelevantForAccrual>
<d:CndnIsRelevantForInvoiceList></d:CndnIsRelevantForInvoiceList>
<d:ConditionOrigin>A</d:ConditionOrigin>
<d:IsGroupCondition></d:IsGroupCondition>
<d:ConditionRecord>0000142495</d:ConditionRecord>
<d:ConditionSequentialNumber>1</d:ConditionSequentialNumber>
<d:TaxCode></d:TaxCode>
<d:WithholdingTaxCode></d:WithholdingTaxCode>
<d:CndnRoundingOffDiffAmount>0.00</d:CndnRoundingOffDiffAmount>
<d:ConditionAmount>400.00</d:ConditionAmount>
<d:TransactionCurrency>EUR</d:TransactionCurrency>
<d:ConditionControl>A</d:ConditionControl>
<d:ConditionInactiveReason></d:ConditionInactiveReason>
<d:ConditionClass>B</d:ConditionClass>
<d:PrcgProcedureCounterForHeader>0</d:PrcgProcedureCounterForHeader>
<d:FactorForConditionBasisValue>0</d:FactorForConditionBasisValue>
<d:StructureCondition></d:StructureCondition>
<d:PeriodFactorForCndnBasisValue>0</d:PeriodFactorForCndnBasisValue>
<d:PricingScaleBasis></d:PricingScaleBasis>
<d:ConditionScaleBasisValue>0.000000000</d:ConditionScaleBasisValue>
<d:ConditionScaleBasisUnit></d:ConditionScaleBasisUnit>
<d:ConditionScaleBasisCurrency></d:ConditionScaleBasisCurrency>

This is custom documentation. For more information, please visit SAP Help Portal. 77
1/18/25, 8:45 PM
<d:CndnIsRelevantForIntcoBilling>false</d:CndnIsRelevantForIntcoBilling>
<d:ConditionIsManuallyChanged>false</d:ConditionIsManuallyChanged>
<d:ConditionIsForConfiguration>false</d:ConditionIsForConfiguration>
<d:VariantCondition></d:VariantCondition>
</m:properties>
</content>
</entry>
<entry>
<id>https://<host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrderItemPrElement(SalesOrd
<title type="text">A_SalesOrderItemPrElement(SalesOrder='112032',SalesOrderItem='10',Pricin
<updated>2023-11-30T14:52:28Z</updated>
<category term="API_SALES_ORDER_SRV.A_SalesOrderItemPrElementType" scheme="http://schemas.m
<link href="A_SalesOrderItemPrElement(SalesOrder='112032',SalesOrderItem='10',PricingProced
<link href="A_SalesOrderItemPrElement(SalesOrder='112032',SalesOrderItem='10',PricingProced
<link href="A_SalesOrderItemPrElement(SalesOrder='112032',SalesOrderItem='10',PricingProced
<content type="application/xml">
<m:properties xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
<d:SalesOrder>112032</d:SalesOrder>
<d:SalesOrderItem>10</d:SalesOrderItem>
<d:PricingProcedureStep>210</d:PricingProcedureStep>
<d:PricingProcedureCounter>1</d:PricingProcedureCounter>
<d:ConditionType>DRN1</d:ConditionType>
<d:PricingDateTime>20390701000000</d:PricingDateTime>
<d:PriceConditionDeterminationDte>2039-07-01T00:00:00</d:PriceConditionDeterminatio
<d:ConditionCalculationType>A</d:ConditionCalculationType>
<d:ConditionBaseValue>400.000000000</d:ConditionBaseValue>
<d:ConditionRateValue>9.000000000</d:ConditionRateValue>
<d:ConditionCurrency></d:ConditionCurrency>
<d:ConditionQuantity>0</d:ConditionQuantity>
<d:ConditionQuantityUnit></d:ConditionQuantityUnit>
<d:ConditionQuantitySAPUnit></d:ConditionQuantitySAPUnit>
<d:ConditionQuantityISOUnit></d:ConditionQuantityISOUnit>
<d:ConditionCategory></d:ConditionCategory>
<d:ConditionIsForStatistics>false</d:ConditionIsForStatistics>
<d:PricingScaleType></d:PricingScaleType>
<d:IsRelevantForAccrual>false</d:IsRelevantForAccrual>
<d:CndnIsRelevantForInvoiceList></d:CndnIsRelevantForInvoiceList>
<d:ConditionOrigin>D</d:ConditionOrigin>
<d:IsGroupCondition></d:IsGroupCondition>
<d:ConditionRecord></d:ConditionRecord>
<d:ConditionSequentialNumber>0</d:ConditionSequentialNumber>
<d:TaxCode></d:TaxCode>
<d:WithholdingTaxCode></d:WithholdingTaxCode>
<d:CndnRoundingOffDiffAmount>0.00</d:CndnRoundingOffDiffAmount>
<d:ConditionAmount>36.00</d:ConditionAmount>
<d:TransactionCurrency>EUR</d:TransactionCurrency>
<d:ConditionControl>C</d:ConditionControl>
<d:ConditionInactiveReason></d:ConditionInactiveReason>
<d:ConditionClass>A</d:ConditionClass>
<d:PrcgProcedureCounterForHeader>1</d:PrcgProcedureCounterForHeader>
<d:FactorForConditionBasisValue>0</d:FactorForConditionBasisValue>
<d:StructureCondition></d:StructureCondition>
<d:PeriodFactorForCndnBasisValue>0</d:PeriodFactorForCndnBasisValue>
<d:PricingScaleBasis></d:PricingScaleBasis>
<d:ConditionScaleBasisValue>0.000000000</d:ConditionScaleBasisValue>
<d:ConditionScaleBasisUnit></d:ConditionScaleBasisUnit>
<d:ConditionScaleBasisCurrency></d:ConditionScaleBasisCurrency>
<d:CndnIsRelevantForIntcoBilling>false</d:CndnIsRelevantForIntcoBilling>
<d:ConditionIsManuallyChanged>true</d:ConditionIsManuallyChanged>
<d:ConditionIsForConfiguration>false</d:ConditionIsForConfiguration>
<d:VariantCondition></d:VariantCondition>
</m:properties>
</content>
</entry>
<entry>
<id>https://<host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrderItemPrElement(SalesOrd
<title type="text">A_SalesOrderItemPrElement(SalesOrder='112032',SalesOrderItem='10',Pricin
<updated>2023-11-30T14:52:28Z</updated>
<category term="API_SALES_ORDER_SRV.A_SalesOrderItemPrElementType" scheme="http://schemas.m
<link href="A_SalesOrderItemPrElement(SalesOrder='112032',SalesOrderItem='10',PricingProced
<link href="A_SalesOrderItemPrElement(SalesOrder='112032',SalesOrderItem='10',PricingProced
<link href="A_SalesOrderItemPrElement(SalesOrder='112032',SalesOrderItem='10',PricingProced
<content type="application/xml">
<m:properties xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"

This is custom documentation. For more information, please visit SAP Help Portal. 78
1/18/25, 8:45 PM
<d:SalesOrder>112032</d:SalesOrder>
<d:SalesOrderItem>10</d:SalesOrderItem>
<d:PricingProcedureStep>230</d:PricingProcedureStep>
<d:PricingProcedureCounter>1</d:PricingProcedureCounter>
<d:ConditionType>DRV1</d:ConditionType>
<d:PricingDateTime>20390701000000</d:PricingDateTime>
<d:PriceConditionDeterminationDte>2039-07-01T00:00:00</d:PriceConditionDeterminatio
<d:ConditionCalculationType>B</d:ConditionCalculationType>
<d:ConditionBaseValue>436.000000000</d:ConditionBaseValue>
<d:ConditionRateValue>1.000000000</d:ConditionRateValue>
<d:ConditionCurrency>EUR</d:ConditionCurrency>
<d:ConditionQuantity>0</d:ConditionQuantity>
<d:ConditionQuantityUnit></d:ConditionQuantityUnit>
<d:ConditionQuantitySAPUnit></d:ConditionQuantitySAPUnit>
<d:ConditionQuantityISOUnit></d:ConditionQuantityISOUnit>
<d:ConditionCategory></d:ConditionCategory>
<d:ConditionIsForStatistics>false</d:ConditionIsForStatistics>
<d:PricingScaleType></d:PricingScaleType>
<d:IsRelevantForAccrual>false</d:IsRelevantForAccrual>
<d:CndnIsRelevantForInvoiceList></d:CndnIsRelevantForInvoiceList>
<d:ConditionOrigin>C</d:ConditionOrigin>
<d:IsGroupCondition></d:IsGroupCondition>
<d:ConditionRecord></d:ConditionRecord>
<d:ConditionSequentialNumber>0</d:ConditionSequentialNumber>
<d:TaxCode></d:TaxCode>
<d:WithholdingTaxCode></d:WithholdingTaxCode>
<d:CndnRoundingOffDiffAmount>0.00</d:CndnRoundingOffDiffAmount>
<d:ConditionAmount>1.00</d:ConditionAmount>
<d:TransactionCurrency>EUR</d:TransactionCurrency>
<d:ConditionControl>C</d:ConditionControl>
<d:ConditionInactiveReason></d:ConditionInactiveReason>
<d:ConditionClass>A</d:ConditionClass>
<d:PrcgProcedureCounterForHeader>0</d:PrcgProcedureCounterForHeader>
<d:FactorForConditionBasisValue>0</d:FactorForConditionBasisValue>
<d:StructureCondition></d:StructureCondition>
<d:PeriodFactorForCndnBasisValue>0</d:PeriodFactorForCndnBasisValue>
<d:PricingScaleBasis></d:PricingScaleBasis>
<d:ConditionScaleBasisValue>0.000000000</d:ConditionScaleBasisValue>
<d:ConditionScaleBasisUnit></d:ConditionScaleBasisUnit>
<d:ConditionScaleBasisCurrency></d:ConditionScaleBasisCurrency>
<d:CndnIsRelevantForIntcoBilling>false</d:CndnIsRelevantForIntcoBilling>
<d:ConditionIsManuallyChanged>true</d:ConditionIsManuallyChanged>
<d:ConditionIsForConfiguration>false</d:ConditionIsForConfiguration>
<d:VariantCondition></d:VariantCondition>
</m:properties>
</content>
</entry>
<entry>
<id>https://<host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrderItemPrElement(SalesOrd
<title type="text">A_SalesOrderItemPrElement(SalesOrder='112032',SalesOrderItem='10',Pricin
<updated>2023-11-30T14:52:28Z</updated>
<category term="API_SALES_ORDER_SRV.A_SalesOrderItemPrElementType" scheme="http://schemas.m
<link href="A_SalesOrderItemPrElement(SalesOrder='112032',SalesOrderItem='10',PricingProced
<link href="A_SalesOrderItemPrElement(SalesOrder='112032',SalesOrderItem='10',PricingProced
<link href="A_SalesOrderItemPrElement(SalesOrder='112032',SalesOrderItem='10',PricingProced
<content type="application/xml">
<m:properties xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
<d:SalesOrder>112032</d:SalesOrder>
<d:SalesOrderItem>10</d:SalesOrderItem>
<d:PricingProcedureStep>840</d:PricingProcedureStep>
<d:PricingProcedureCounter>1</d:PricingProcedureCounter>
<d:ConditionType>YZWR</d:ConditionType>
<d:PricingDateTime>20390701000000</d:PricingDateTime>
<d:PriceConditionDeterminationDte>2039-07-01T00:00:00</d:PriceConditionDeterminatio
<d:ConditionCalculationType>B</d:ConditionCalculationType>
<d:ConditionBaseValue>437.000000000</d:ConditionBaseValue>
<d:ConditionRateValue>0.000000000</d:ConditionRateValue>
<d:ConditionCurrency>EUR</d:ConditionCurrency>
<d:ConditionQuantity>0</d:ConditionQuantity>
<d:ConditionQuantityUnit></d:ConditionQuantityUnit>
<d:ConditionQuantitySAPUnit></d:ConditionQuantitySAPUnit>
<d:ConditionQuantityISOUnit></d:ConditionQuantityISOUnit>
<d:ConditionCategory>e</d:ConditionCategory>
<d:ConditionIsForStatistics>false</d:ConditionIsForStatistics>

This is custom documentation. For more information, please visit SAP Help Portal. 79
1/18/25, 8:45 PM
<d:PricingScaleType></d:PricingScaleType>
<d:IsRelevantForAccrual>false</d:IsRelevantForAccrual>
<d:CndnIsRelevantForInvoiceList></d:CndnIsRelevantForInvoiceList>
<d:ConditionOrigin>A</d:ConditionOrigin>
<d:IsGroupCondition></d:IsGroupCondition>
<d:ConditionRecord></d:ConditionRecord>
<d:ConditionSequentialNumber>0</d:ConditionSequentialNumber>
<d:TaxCode></d:TaxCode>
<d:WithholdingTaxCode></d:WithholdingTaxCode>
<d:CndnRoundingOffDiffAmount>0.00</d:CndnRoundingOffDiffAmount>
<d:ConditionAmount>0.00</d:ConditionAmount>
<d:TransactionCurrency>EUR</d:TransactionCurrency>
<d:ConditionControl>A</d:ConditionControl>
<d:ConditionInactiveReason></d:ConditionInactiveReason>
<d:ConditionClass>A</d:ConditionClass>
<d:PrcgProcedureCounterForHeader>0</d:PrcgProcedureCounterForHeader>
<d:FactorForConditionBasisValue>0</d:FactorForConditionBasisValue>
<d:StructureCondition></d:StructureCondition>
<d:PeriodFactorForCndnBasisValue>0</d:PeriodFactorForCndnBasisValue>
<d:PricingScaleBasis></d:PricingScaleBasis>
<d:ConditionScaleBasisValue>0.000000000</d:ConditionScaleBasisValue>
<d:ConditionScaleBasisUnit></d:ConditionScaleBasisUnit>
<d:ConditionScaleBasisCurrency></d:ConditionScaleBasisCurrency>
<d:CndnIsRelevantForIntcoBilling>false</d:CndnIsRelevantForIntcoBilling>
<d:ConditionIsManuallyChanged>false</d:ConditionIsManuallyChanged>
<d:ConditionIsForConfiguration>false</d:ConditionIsForConfiguration>
<d:VariantCondition></d:VariantCondition>
</m:properties>
</content>
</entry>
<entry>
<id>https://<host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrderItemPrElement(SalesOrd
<title type="text">A_SalesOrderItemPrElement(SalesOrder='112032',SalesOrderItem='10',Pricin
<updated>2023-11-30T14:52:28Z</updated>
<category term="API_SALES_ORDER_SRV.A_SalesOrderItemPrElementType" scheme="http://schemas.m
<link href="A_SalesOrderItemPrElement(SalesOrder='112032',SalesOrderItem='10',PricingProced
<link href="A_SalesOrderItemPrElement(SalesOrder='112032',SalesOrderItem='10',PricingProced
<link href="A_SalesOrderItemPrElement(SalesOrder='112032',SalesOrderItem='10',PricingProced
<content type="application/xml">
<m:properties xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
<d:SalesOrder>112032</d:SalesOrder>
<d:SalesOrderItem>10</d:SalesOrderItem>
<d:PricingProcedureStep>850</d:PricingProcedureStep>
<d:PricingProcedureCounter>1</d:PricingProcedureCounter>
<d:ConditionType>TTX1</d:ConditionType>
<d:PricingDateTime>20231130000000</d:PricingDateTime>
<d:PriceConditionDeterminationDte>2023-11-30T00:00:00</d:PriceConditionDeterminatio
<d:ConditionCalculationType>A</d:ConditionCalculationType>
<d:ConditionBaseValue>437.000000000</d:ConditionBaseValue>
<d:ConditionRateValue>19.000000000</d:ConditionRateValue>
<d:ConditionCurrency></d:ConditionCurrency>
<d:ConditionQuantity>0</d:ConditionQuantity>
<d:ConditionQuantityUnit></d:ConditionQuantityUnit>
<d:ConditionQuantitySAPUnit></d:ConditionQuantitySAPUnit>
<d:ConditionQuantityISOUnit></d:ConditionQuantityISOUnit>
<d:ConditionCategory>D</d:ConditionCategory>
<d:ConditionIsForStatistics>false</d:ConditionIsForStatistics>
<d:PricingScaleType></d:PricingScaleType>
<d:IsRelevantForAccrual>false</d:IsRelevantForAccrual>
<d:CndnIsRelevantForInvoiceList></d:CndnIsRelevantForInvoiceList>
<d:ConditionOrigin>A</d:ConditionOrigin>
<d:IsGroupCondition>X</d:IsGroupCondition>
<d:ConditionRecord>0000141236</d:ConditionRecord>
<d:ConditionSequentialNumber>1</d:ConditionSequentialNumber>
<d:TaxCode>A1</d:TaxCode>
<d:WithholdingTaxCode></d:WithholdingTaxCode>
<d:CndnRoundingOffDiffAmount>0.00</d:CndnRoundingOffDiffAmount>
<d:ConditionAmount>83.03</d:ConditionAmount>
<d:TransactionCurrency>EUR</d:TransactionCurrency>
<d:ConditionControl>A</d:ConditionControl>
<d:ConditionInactiveReason></d:ConditionInactiveReason>
<d:ConditionClass>D</d:ConditionClass>
<d:PrcgProcedureCounterForHeader>0</d:PrcgProcedureCounterForHeader>
<d:FactorForConditionBasisValue>0</d:FactorForConditionBasisValue>

This is custom documentation. For more information, please visit SAP Help Portal. 80
1/18/25, 8:45 PM
<d:StructureCondition></d:StructureCondition>
<d:PeriodFactorForCndnBasisValue>0</d:PeriodFactorForCndnBasisValue>
<d:PricingScaleBasis></d:PricingScaleBasis>
<d:ConditionScaleBasisValue>0.000000000</d:ConditionScaleBasisValue>
<d:ConditionScaleBasisUnit></d:ConditionScaleBasisUnit>
<d:ConditionScaleBasisCurrency></d:ConditionScaleBasisCurrency>
<d:CndnIsRelevantForIntcoBilling>false</d:CndnIsRelevantForIntcoBilling>
<d:ConditionIsManuallyChanged>false</d:ConditionIsManuallyChanged>
<d:ConditionIsForConfiguration>false</d:ConditionIsForConfiguration>
<d:VariantCondition></d:VariantCondition>
</m:properties>
</content>
</entry>
<entry>
<id>https://<host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrderItemPrElement(SalesOrd
<title type="text">A_SalesOrderItemPrElement(SalesOrder='112032',SalesOrderItem='10',Pricin
<updated>2023-11-30T14:52:28Z</updated>
<category term="API_SALES_ORDER_SRV.A_SalesOrderItemPrElementType" scheme="http://schemas.m
<link href="A_SalesOrderItemPrElement(SalesOrder='112032',SalesOrderItem='10',PricingProced
<link href="A_SalesOrderItemPrElement(SalesOrder='112032',SalesOrderItem='10',PricingProced
<link href="A_SalesOrderItemPrElement(SalesOrder='112032',SalesOrderItem='10',PricingProced
<content type="application/xml">
<m:properties xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
<d:SalesOrder>112032</d:SalesOrder>
<d:SalesOrderItem>10</d:SalesOrderItem>
<d:PricingProcedureStep>930</d:PricingProcedureStep>
<d:PricingProcedureCounter>1</d:PricingProcedureCounter>
<d:ConditionType>PCIP</d:ConditionType>
<d:PricingDateTime>20390701000000</d:PricingDateTime>
<d:PriceConditionDeterminationDte>2039-07-01T00:00:00</d:PriceConditionDeterminatio
<d:ConditionCalculationType>C</d:ConditionCalculationType>
<d:ConditionBaseValue>20.000000000</d:ConditionBaseValue>
<d:ConditionRateValue>100.000000000</d:ConditionRateValue>
<d:ConditionCurrency>EUR</d:ConditionCurrency>
<d:ConditionQuantity>1</d:ConditionQuantity>
<d:ConditionQuantityUnit>PC</d:ConditionQuantityUnit>
<d:ConditionQuantitySAPUnit>ST</d:ConditionQuantitySAPUnit>
<d:ConditionQuantityISOUnit>PCE</d:ConditionQuantityISOUnit>
<d:ConditionCategory>G</d:ConditionCategory>
<d:ConditionIsForStatistics>true</d:ConditionIsForStatistics>
<d:PricingScaleType></d:PricingScaleType>
<d:IsRelevantForAccrual>false</d:IsRelevantForAccrual>
<d:CndnIsRelevantForInvoiceList></d:CndnIsRelevantForInvoiceList>
<d:ConditionOrigin>A</d:ConditionOrigin>
<d:IsGroupCondition></d:IsGroupCondition>
<d:ConditionRecord></d:ConditionRecord>
<d:ConditionSequentialNumber>0</d:ConditionSequentialNumber>
<d:TaxCode></d:TaxCode>
<d:WithholdingTaxCode></d:WithholdingTaxCode>
<d:CndnRoundingOffDiffAmount>0.00</d:CndnRoundingOffDiffAmount>
<d:ConditionAmount>2000.00</d:ConditionAmount>
<d:TransactionCurrency>EUR</d:TransactionCurrency>
<d:ConditionControl>A</d:ConditionControl>
<d:ConditionInactiveReason></d:ConditionInactiveReason>
<d:ConditionClass>B</d:ConditionClass>
<d:PrcgProcedureCounterForHeader>0</d:PrcgProcedureCounterForHeader>
<d:FactorForConditionBasisValue>0</d:FactorForConditionBasisValue>
<d:StructureCondition></d:StructureCondition>
<d:PeriodFactorForCndnBasisValue>0</d:PeriodFactorForCndnBasisValue>
<d:PricingScaleBasis></d:PricingScaleBasis>
<d:ConditionScaleBasisValue>0.000000000</d:ConditionScaleBasisValue>
<d:ConditionScaleBasisUnit></d:ConditionScaleBasisUnit>
<d:ConditionScaleBasisCurrency></d:ConditionScaleBasisCurrency>
<d:CndnIsRelevantForIntcoBilling>false</d:CndnIsRelevantForIntcoBilling>
<d:ConditionIsManuallyChanged>false</d:ConditionIsManuallyChanged>
<d:ConditionIsForConfiguration>false</d:ConditionIsForConfiguration>
<d:VariantCondition></d:VariantCondition>
</m:properties>
</content>
</entry>
</feed>

This is custom documentation. For more information, please visit SAP Help Portal. 81
1/18/25, 8:45 PM

Supported Operations
The following operations are supported:

Create (only as part of deep insert requests)

Read

Update

Delete

For more information, see Operations for Sales Order (A2X, OData V2).

Item Billing Plan


Learn how to use the item billing plan entity of the Sales Order (A2X, OData V2) API.

Use

Technical name: A_SalesOrderItemBillingPlan

This node corresponds to the billing plan of a sales order item.

You can create billing plans for sales orders items of the following categories:

CBAO: Milestone billing plan

CTAD: Milestone billing plan for services

CTAX: Milestone billing plan for non-stock products

If you want to add a billing plan to an existing item, you have to change the item category to a supported one.

 Note
Depending on the operation, you can use the properties of this entity in different ways.

Create (POST)

If you want to use this API to create new data, you differentiate between the following property types:

Mandatory: You must include these properties in your request.

Optional: You can include these properties in your request.

Read-only: The system creates these properties automatically (for example, the creation date or various
document statuses) and you cannot change them.

Note that you must use deep insert requests, meaning that you don't create an item billing plan on its own, but together
with the related header entity.

Read (GET)

If you want to use this API to read data that already exists in the system, you can either retrieve all the data for the
document or include any of the properties of this entity in your request to retrieve only those.

Update (PATCH)

This is custom documentation. For more information, please visit SAP Help Portal. 82
1/18/25, 8:45 PM
If you want to use this API to change data, you must include all the key properties of this entity in your request, so that
the system can identify the document and the entity that you want to change. In addition, you can include the properties
you want to change. Whether you can change a specific property or not depends on the general system behavior, your
system settings, and the current document status.

Lots of properties, for example, can no longer be changed as soon as subsequent documents exist.

The table below lists the information for the Create (POST) operation.

Properties
The following properties are key properties:

SalesOrder

SalesOrderItem

BillingPlan

Property Description Necessity

SalesOrder (key) Specifies the sales order ID Read-only

SalesOrderItem (key) Specifies the sales order item number Read-only

BillingPlan (key) Number that identifies the billing plan Read-only

BillingPlanCategory Identifies the use case of the billing plan Read-only

BillingPlanType Controls which fields are offered for Read-only


processing. It also specifies how billing is
performed for the billing dates in a billing
plan of this type.

The billing plan type is always 90


(milestone billing). This is the default billing
plan type for item category CBAO
(milestone billing plan).

BillingPlanStartDate Specifies the start date of the billing plan Optional

 Note
If you provide a value for both
BillingPlanStartDate and
BillingPlanStartDateRule, the
system ignores the start date rule.

BillingPlanStartDateRule Specifies the start date of the billing plan Optional


which is to be determined on the basis of a
baseline date, a time period and, possibly, a
calendar ID. Date rules are always used
when determining a date field that is
dependent on another date field.

 Note
If you provide a value for both
BillingPlanStartDate and

This is custom documentation. For more information, please visit SAP Help Portal. 83
1/18/25, 8:45 PM

Property Description Necessity

BillingPlanStartDateRule, the
system ignores the start date rule.

BillingPlanEndDate Specifies the end date of the billing plan Read-only

BillingPlanEndDateRule Specifies the start date of the billing plan Read-only


which is to be determined on the basis of a
baseline date, a time period and, possibly, a
calendar ID. Date rules are always used
when determining a date field that is
dependent on another date field.

BillingPlanSearchTerm For each billing plan you create, you can Read-only
define a freely-definable search term. When
you save the document, the system
automatically assigns a number that later
uniquely identifies the individual plan. You
can use the search term later to locate
specific billing plans.

BillingPlanIsInHeader Supported values: Optional

true

If you provide this value, the system


copies the data from the header
billing plan to the item. Any values
that you provide for the item billing
plan are not processed.

false

If you provide this value or leave the


property blank, you can change all
properties for this item billing plan
and its respective subentities.

ReferenceBillingPlan The system takes the standard billing or Optional


invoice plan deadlines as default values into
the billing or invoice plan. The system
calculates the deadlines during the transfer,
with reference to the billing or invoice plan
start date.

Supported Operations
The following operation is supported:

Create (only as part of deep insert requests)

Read

Update

For more information, see Operations for Sales Order (A2X, OData V2).

This is custom documentation. For more information, please visit SAP Help Portal. 84
1/18/25, 8:45 PM

Related Information
Billing Plans
Create Sales Order with Billing Plan

Item Billing Plan Item


Learn how to use the item billing plan item entity of the Sales Order (A2X, OData V2) API.

Use

Technical name: A_SlsOrderItemBillingPlanItem

This node corresponds to a billing plan item of a sales order item.

 Note
Depending on the operation, you can use the properties of this entity in different ways.

Create (POST)

If you want to use this API to create new data, you differentiate between the following property types:

Mandatory: You must include these properties in your request.

Optional: You can include these properties in your request.

Read-only: The system creates these properties automatically (for example, the creation date or various
document statuses) and you cannot change them.

Note that you can create a billing plan item of a sales order item in two ways:

You can use deep insert requests, meaning that you don't create a billing plan item of a sales order item on its
own, but together with the related item entity.

You can create a billing plan item of a sales order item as a single entity. Prerequisite is that the item and the item
billing plan already exist.

Read (GET)

If you want to use this API to read data that already exists in the system, you can either retrieve all the data for the
document or include any of the properties of this entity in your request to retrieve only those.

Update (PATCH)

If you want to use this API to change data, you must include all the key properties of this entity in your request, so that
the system can identify the document and the entity that you want to change. In addition, you can include the properties
you want to change. Whether you can change a specific property or not depends on the general system behavior, your
system settings, and the current document status.

Lots of properties, for example, can no longer be changed as soon as subsequent documents exist.

Delete (DELETE)

If you want to use this API to delete data, you must include all the key properties of this entity in your request, so that
the system can identify the document and the entity that you want to delete. Whether you can delete a specific entity or
not depends on the general system behavior, your system settings, and the current document status.

This is custom documentation. For more information, please visit SAP Help Portal. 85
1/18/25, 8:45 PM
The table below lists the information for the Create (POST) operation.

Properties
The following properties are key properties:

SalesOrder

SalesOrderItem

BillingPlan

BillingPlanItem

Property Description Necessity

SalesOrder (key) Specifies the sales order ID Read-only

SalesOrderItem (key) Specifies the sales order item number Read-only

BillingPlan (key) Number that identifies the billing plan Read-only

BillingPlanItem (key) Number that identifies the item of the Read-only


billing plan

BillingPlanBillingDate The date on which the billing is processed Mandatory


and booked for accounting purposes

BillingPlanServiceStartDate Depending on whether billing is to be Read-only


carried out in advance or in arrears, this is
either the start or end date of the
settlement period for a specific billing plan
date. This date is used in periodic billing
when time-dependent prices are defined.

BillingPlanServiceEndDate Depending on whether the billing was Read-only


carried out in advance or retrospectively,
this is either the start date or the end date
for the settlement period of a deadline in
the billing plan. This date is used if time-
dependent prices are defined.

BillingPlanAmount Specifies the value to be billed which the Optional


system determines for the billing date on
the basis of the billing rule assigned to it

TransactionCurrency Specifies the document currency Read-only

BillingBlockReason Indicates if the item is blocked for billing. Optional


The system can automatically propose a
billing block for sales documents that must
be checked before billing (for example,
returns, credit and debit memo requests).

BillingPlanRelatedBillgStatus Indicates the billing status of the Read-only


authorization amount

BillingPlanType Controls which fields are offered for Read-only


processing. It also specifies how billing is

This is custom documentation. For more information, please visit SAP Help Portal. 86
1/18/25, 8:45 PM

Property Description Necessity

performed for the billing dates in a billing


plan of this type.

BillingPlanDateCategory Controls data such as the billing block and Optional


the billing rule at the billing date level of the
billing plan.

CustomerPaymentTerms Key for defining payment terms composed Optional


of cash discount percentages and payment
periods

ProposedBillingDocumentType Specifies the billing type that the system Optional


automatically proposes when you create
billing documents (invoices, credit memos,
etc.) that refer to sales orders

AdoptingBillingDateID Specifies a code which controls whether Read-only


the billing date in the billing plan is a fixed
date or whether it is based on an actual or
planned milestone date

BillingPlanBillingRule Specifies for each billing plan date how the Read-only
value to be billed is determined

BillingPlanDateDescriptionCode Describes the function of the billing plan Optional


date. Depending on the date category
assigned to the billing plan category, the
system proposes a date description for the
dates in the billing plan. In a billing plan for
a project, for example, the different
milestones (such as conclusion of a
contract, start-up) are proposed as date
descriptions.

BillingPlanMilestoneUsage Specifies the usage of the milestone. For Read-only


the usage you can specify:

the purpose of the milestone, for


example to trigger a milestone
function, for earned value analysis,
or to identify a project phase

that the data of a standard


milestone is copied when you create
a new milestone on the milestone
overview

Controls which fields are offered for


processing. It alsothat milestones
can be selected in the information
system.

BillingPlanAmountPercent Specifies the percentage of value to be Optional


invoiced

This is custom documentation. For more information, please visit SAP Help Portal. 87
1/18/25, 8:45 PM

Property Description Necessity

BillgPlnDteCorrectionRfndType Specifies that the end of a periodic billing Read-only


plan has been adjusted to an earlier date
resulting in a refund for the respective
period

AccountingExchangeRate Specifies the currency exchange rate Read-only


between document currency and local
currency. When a billing document is
posted to financial accounting, the system
also forwards this exchange rate to enable
subsequent processing. Usually, the system
uses the billing document's billing date as
the exchange rate date for determining this
exchange rate. If, however, the exchange
rate has been set as fixed, the exchange
rate of the preceding sales or billing
document (for example, the sales order) is
used instead.

PostponementReason Specifies the reason for postponement Read-only

Supported Operations
The following operations are supported:

Create

Read

Update

Delete

For more information, see Operations for Sales Order (A2X, OData V2).

Related Information
Billing Plans
Create Sales Order with Billing Plan

Item Text
Learn how to use the item text entity of the Sales Order (A2X, OData V2) API.

Use

Technical name: A_SalesOrderItemText

This node corresponds to texts used on sales order item level.

 Note
Depending on the operation, you can use the properties of this entity in different ways.

This is custom documentation. For more information, please visit SAP Help Portal. 88
1/18/25, 8:45 PM
Create (POST)

Mandatory: You must include these properties in your request.

Optional: You can include these properties in your request.

Read-only: The system creates these properties automatically (for example, the creation date or various
document statuses) and you cannot change them.

Note that you can create an item text in two ways:

You can use deep insert requests, meaning that you don't create an item text on its own, but together with the
related item entity.

You can create an item text as a single entity. Prerequisite is that the item already exists.

Read (GET)

If you want to use this API to read data that already exists in the system, you can either retrieve all the data for the
document or include any of the properties of this entity in your request to retrieve only those.

Update (PATCH)

If you want to use this API to change data, you must include all the key fields of this entity in your request, so that the
system can identify the document and the entity that you want to change. In addition, you can include the properties
you want to change. Whether you can change a specific property or not depends on the general system behavior, your
system settings, and the current document status.If you want to use this API to create new data, you differentiate
between the following property types:

Lots of properties, for example, can no longer be changed as soon as subsequent documents exist.

Delete (DELETE)

If you want to use this API to delete data, you must include all the key fields of this entity in your request, so that the
system can identify the document and the entity that you want to delete. Whether you can delete a specific entity or not
depends on the general system behavior, your system settings, and the current document status.

The table below lists the information for the Create (POST) operation.

Properties

The following properties are key properties:

SalesOrder

SalesOrderItem

Language

LongTextID

If you want to use this API to create new data, you differentiate between

Property Description Necessity

SalesOrder (key) Specifies the sales order ID Read-only

SalesOrderItem Specifies the sales order item number Read-only


(key)

Language (key) The language key indicates the following: Mandatory

This is custom documentation. For more information, please visit SAP Help Portal. 89
1/18/25, 8:45 PM

Property Description Necessity

The language in which texts are


displayed

The language in which you enter


texts

The language in which the system


prints texts

LongTextID (key) The text ID defines the various types of Mandatory


texts related to a text object. For example,
the object TEXT (standard texts) can have
the following text IDs:

ST for user-specific standard texts


(individual texts)

SYST for cross-application system


texts

Various IDs for specific application


departments. You must have the
appropriate access authorization in
order to access these texts.

LongText Contains the actual text Optional

Supported Operations
The following operations are supported:

Create

Read

Update

Delete

For more information, see Operations for Sales Order (A2X, OData V2).

Related Information
Texts in Sales

Item Related Object


Learn how to use the item related object entity of the Sales Order (A2X, OData V2) API.

Use

Technical name: A_SalesOrderItemRelatedObject

This node corresponds to the related object of a sales order on item level.
This is custom documentation. For more information, please visit SAP Help Portal. 90
1/18/25, 8:45 PM
A related object has a much broader scope than, for example, a preceding document or a subsequent document. It could be
another document that is associated with this document in some way, but it could also be, for example, a dispute case related to
this document. The related object can be stored in the same system as the SD document or in a different one. You can use this
related object reference to record any relationships between your document and other objects.

 Note
Depending on the operation, you can use the properties of this entity in different ways.

Create (POST)

If you want to use this API to create new data, you differentiate between the following property types:

Mandatory: You must include these properties in your request.

Optional: You can include these properties in your request.

Read-only: The system creates these properties automatically (for example, the creation date or various
document statuses) and you cannot change them.

Note that you can create an item related object in two ways:

You can use deep insert requests, meaning that you don't create an item related object on its own, but together
with the related item entity.

You can create an item related object as a single entity. Prerequisite is that the item already exists.

Read (GET)

If you want to use this API to read data that already exists in the system, you can either retrieve all the data for the
document or include any of the properties of this entity in your request to retrieve only those.

Delete (DELETE)

If you want to use this API to delete data, you must include all the key fields of this entity in your request, so that the
system can identify the document and the entity that you want to delete. Whether you can delete a specific entity or not
depends on the general system behavior, your system settings, and the current document status.

The table below lists the information for the Create (POST) operation.

Properties
The following properties are key properties:

SDDocRelatedObjectSequenceNmbr

SalesOrder

SalesOrderItem

Property Description Necessity

SDDocRelatedObjectSequenceNmbr Specifies the sequence in which related Read-only


(key) objects were added to an SD document.
The system automatically assigns this
number to every related object in an
ascending order, starting with 1. Note that
the numbers are not rearranged when you
delete related objects.

This is custom documentation. For more information, please visit SAP Help Portal. 91
1/18/25, 8:45 PM

Property Description Necessity

The sequence number allows you to enter


multiple related objects for a single SD
document and differentiate between them
even if some of their properties (for
example, the item) are identical.

SDDocRelatedObjectType Specifies the type of a related object of an Mandatory


SD document. The object could, for
example, be another document, a dispute
case, or any other object in a system that is
somehow related to the SD document. You
can choose from a set of values that your
configuration expert has defined. These
values fit your business purposes and group
various use cases.

SDDocRelatedObjectSystem Specifies the system in which the related Optional


object of an SD document is stored.

SDDocRelatedObjectReference1 Identifies a related object of an SD Mandatory


document. The reference is stable, meaning
that it is not deleted automatically, for
example, at contract determination.

SDDocRelatedObjectReference2 Identifies a related object of an SD Optional


document. The reference is stable, meaning
that it is not deleted automatically, for
example, at contract determination.

SalesOrderItem (key) Specifies the sales order item ID Read-only

SalesOrder (key) Specifies the sales order ID Read-only

Supported Operations

The following operations are supported:

Create

Read

Delete

For more information, see Operations for Sales Order (A2X, OData V2).

Related Information
Related Objects of SD Documents

Item Preceding Process Flow


Learn how to use the item preceding process flow entity of the Sales Order (A2X, OData V2) API.

Use
This is custom documentation. For more information, please visit SAP Help Portal. 92
1/18/25, 8:45 PM
Technical name: A_SalesOrderItmPrecdgProcFlow

This node corresponds to the process flow of preceding items of a sales order item.

When you have a sales order item that was created with reference to items from existing documents in your system, you can
retrieve information about these preceding items. For example, if a sales order item was created with reference to a sales quotation
item, the sales quotation item is the preceding item and the sales order item is the subsequent item.

 Note
When you display a process flow for a sales order item in an app (for example, in the Display Sales Orders - VA02 app), you
might see more preceding items than you can retrieve with this API.

Properties
The following properties are key properties:

SalesOrder

SalesOrderItem

DocRelationshipUUID

Property Description Necessity

CreationDate Date on which the preceding item was Read-only


created

CreationTime Time at which the preceding item was Read-only


created

DocRelationshipUUID (key) Specifies the unique document relationship Read-only


identification

LastChangeDate Date on which the preceding item was last Read-only


changed

PrecedingDocument Number that uniquely identifies the Read-only


preceding document (for example, the
quotation from which you created a sales
order)

PrecedingDocumentItem Number that uniquely identifies the item of Read-only


the preceding document

PrecedingDocumentCategory Specifies the document category of the Read-only


preceding document

ProcessFlowLevel Describes the degree of separation between Read-only


an item and its preceding items. For
example, for a sales quotation item (which
is the direct predecessor of a sales order
item), the value would be 00. For a sales
inquiry item, the value would be 01.

SalesOrder (key) Specifies the sales order ID Read-only

SalesOrderItem (key) Specifies the sales order item number Read-only

This is custom documentation. For more information, please visit SAP Help Portal. 93
1/18/25, 8:45 PM

Property Description Necessity

RelatedProcFlowDocStsFieldName Depending on the document category of Read-only


the preceding document, a specific status
is relevant. This property specifies which of
the following three statuses is relevant for
the preceding document: the
SDProcessStatus, the
AccountingTransferStatus, or the
PrelimBillingDocumentStatus.

SDProcessStatus Specifies the overall processing status of Read-only


the item, if the preceding document is a
sales document.

Depending on the document category of


the preceding document, one specific
status is relevant (indicated by the
RelatedProcFlowDocStsFieldName
property). If the subsequent document is a
sales document, the
AccountingTransferStatus and the
PrelimBillingDocumentStatus do
not return values.

AccountingTransferStatus Specifies the accounting status, if the Read-only


preceding document is a billing document.
Note that contrary to other statuses, value
<blank> doesn't meant that the document
is not relevant, but that there is an error in
the accounting interface.

Depending on the document category of


the preceding document, one specific
status is relevant (indicated by the
RelatedProcFlowDocStsFieldName
property). If the subsequent document is a
billing document, the SDProcessStatus
and the
PrelimBillingDocumentStatus do
not return values.

PrelimBillingDocumentStatus Specifies the status, if the preceding Read-only


document is a preliminary billing document.

Depending on the document category of


the preceding document, one specific
status is relevant (indicated by the
RelatedProcFlowDocStsFieldName
property). If the subsequent document is a
preliminary billing document, the
SDProcessStatus and the
AccountingTransferStatus do not
return values.

Supported Operations
The following operation is supported:

This is custom documentation. For more information, please visit SAP Help Portal. 94
1/18/25, 8:45 PM
Read

For more information, see Operations for Sales Order (A2X, OData V2).

Item Subsequent Process Flow


Learn how to use the item subsequent process flow entity of the Sales Order (A2X, OData V2) API.

Use

Technical name: A_SalesOrderItmSubsqntProcFlow

This node corresponds to the process flow of subsequent items of a sales order item.

When you have an item that was created with reference to an existing sales order item in your system, you can retrieve information
about these subsequent items. For example, if a credit memo item was created with reference to a sales order item, the sales order
item is the preceding item and the credit memo item is the subsequent item.

 Note
When you display a process flow for a sales order item in an app (for example, in the Display Sales Orders - VA02 app), you
might see more subsequent items than you can retrieve with this API.

Properties

The following properties are key properties:

SalesOrder

SalesOrderItem

DocRelationshipUUID

Property Description Necessity

CreationDate Date on which the subsequent item was Read-only


created

CreationTime Time at which the subsequent item was Read-only


created

DocRelationshipUUID (key) Specifies the unique document relationship Read-only


identification

LastChangeDate Date on which the subsequent item was last Read-only


changed

ProcessFlowLevel Describes the degree of separation between Read-only


an item and its subsequent items. For
example, for a delivery document item
(which is the direct successor of a sales
order item), the value would be 00. For a
billing document item, the value would be
01.

This is custom documentation. For more information, please visit SAP Help Portal. 95
1/18/25, 8:45 PM

Property Description Necessity

SalesOrder (key) Specifies the sales order ID Read-only

SalesOrderItem (key) Specifies the sales order item number Read-only

SubsequentDocument Number that uniquely identifies the Read-only


subsequent document (for example, the
sales order that you created from a
previous quotation)

SubsequentDocumentItem Number that uniquely identifies the item of Read-only


the subsequent document

SubsequentDocumentCategory Specifies the document category of the Read-only


subsequent document

RelatedProcFlowDocStsFieldName Depending on the document category of Read-only


the subsequent document, a specific status
is relevant. This property specifies which of
the following three statuses is relevant for
the subsequent document: the
SDProcessStatus, the
AccountingTransferStatus, or the
PrelimBillingDocumentStatus.

SDProcessStatus Specifies the overall processing status of Read-only


the item, if the subsequent document is a
sales document.

Depending on the document category of


the subsequent document, one specific
status is relevant (indicated by the
RelatedProcFlowDocStsFieldName
property). If the subsequent document is a
sales document, the
AccountingTransferStatus and the
PrelimBillingDocumentStatus do
not return values.

AccountingTransferStatus Specifies the accounting status, if the Read-only


subsequent document is a billing
document. Note that contrary to other
statuses, value <blank> doesn't meant that
the document is not relevant, but that there
is an error in the accounting interface.

Depending on the document category of


the subsequent document, one specific
status is relevant (indicated by the
RelatedProcFlowDocStsFieldName
property). If the subsequent document is a
billing document, the SDProcessStatus
and the
PrelimBillingDocumentStatus do
not return values.

PrelimBillingDocumentStatus Specifies the status, if the subsequent Read-only


document is a preliminary billing document.

This is custom documentation. For more information, please visit SAP Help Portal. 96
1/18/25, 8:45 PM

Property Description Necessity

Depending on the document category of


the subsequent document, one specific
status is relevant (indicated by the
RelatedProcFlowDocStsFieldName
property). If the subsequent document is a
preliminary billing document, the
SDProcessStatus and the
AccountingTransferStatus do not
return values.

SubsqntDocItmPrecdgDocument Specifies the number of the preceding Read-only


document of a subsequent document item

SubsqntDocItmPrecdgDocItem Specifies the item number of the preceding Read-only


document of a subsequent document item

SubsqntDocItmPrecdgDocCategory Specifies the category of the preceding Read-only


document of a subsequent document item

Process Flow Hierarchies

When you have a process flow with several levels, you can retrieve information about preceding documents of subsequent items.
For example, when you look at a sales order item in a process flow hierarchy, you can have an outbound delivery as subsequent
document, which in turn has an invoice as subsequent document, which in turn has an invoice cancellation as subsequent
document. For each level, you can find the preceding document category as well as the document ID and the item number. The
SubsqntDocItmPrecdgDocument, SubsqntDocItmPrecdgDocItem, and SubsqntDocItmPrecdgDocCategory
properties return the information you need.

Example

You have a sales order 0000349968 with an item 10. This sales order has two direct subsequent documents, namely two outbound
deliveries that are independent from each other. In turn, each of these outbound deliveries has two subsequent documents, a
goods issue and an invoice.

You use the following URL to retrieve this information:

GET <host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrderItem(SalesOrder='349968',SalesOrderIte

The system then returns a response that contains information about each subsequent document, including its preceding
document.

The following graphic shows two parts of the response that relate to two subsequent documents of the sales order on different
levels:

One outbound delivery that is a direct subsequent document of the sales order (process flow level 0). The three properties
that contain information about the preceding document contain information about the sales order, as it is the direct
preceding document of the outbound delivery.

One invoice that is a subsequent document of this outbound delivery (process flow level 1). The three properties that
contain information about the preceding document contain information about the outbound delivery, as it is the direct
preceding document of the invoice.

This is custom documentation. For more information, please visit SAP Help Portal. 97
1/18/25, 8:45 PM

 Note
There are two document categories which always have two direct preceding documents on the same level. This means that for
these document categories, the response always contains two results with different values for the following properties:
SubsqntDocItmPrecdgDocument, SubsqntDocItmPrecdgDocItem, SubsqntDocItmPrecdgDocCategory, and
DocRelationshipUUID.

Invoice cancellations always have the following direct preceding documents: an invoice and an outbound delivery

If the process flow contains a preliminary billing document, the related invoice always has the following direct preceding
documents: a preliminary billing document and an outbound delivery

Supported Operations
The following operation is supported:

Read

For more information, see Operations for Sales Order (A2X, OData V2).

Item Schedule Line


Learn how to use the item schedule line entity of the Sales Order (A2X, OData V2) API.

Use

Technical name: A_SalesOrderScheduleLine

This node corresponds to the sales order schedule line for the item. The schedule line is the division of an item according to date
and quantity. For example, if the total quantity of an item can only be delivered in four partial deliveries, the system creates four
schedule lines and determines the appropriate quantities and delivery dates for each schedule line.

This is custom documentation. For more information, please visit SAP Help Portal. 98
1/18/25, 8:45 PM
Schedule lines consist of at least two parts: The first schedule line contains the requested delivery date and the order quantity, the
second schedule line contains the confirmed delivery date and quantity. Each schedule line has its own ID.

 Note
Depending on the operation, you can use the properties of this entity in different ways.

Create (POST)

If you want to use this API to create new data, you differentiate between the following property types:

Optional: You can include these properties in your request.

Read-only: The system creates these properties automatically (for example, the creation date or various
document statuses) and you cannot change them.

You can create an item schedule line only as a single entity. Prerequisite is that the item already exists. Note that you
cannot use deep insert requests.

Read (GET)

If you want to use this API to read data that already exists in the system, you can either retrieve all the data for the
document or include any of the properties of this entity in your request to retrieve only those.

Update (PATCH)

If you want to use this API to change data, you must include all the key properties of this entity in your request, so that
the system can identify the document and the entity that you want to change. In addition, you can include the properties
you want to change. Whether you can change a specific property or not depends on the general system behavior, your
system settings, and the current document status.

Lots of properties, for example, can no longer be changed as soon as subsequent documents exist.

Delete (DELETE)

If you want to use this API to delete data, you must include all the key properties of this entity in your request, so that
the system can identify the document and the entity that you want to delete. Whether you can delete a specific entity or
not depends on the general system behavior, your system settings, and the current document status.

The table below lists the information for the Create (POST) operation.

Properties
The following properties are key properties:

SalesOrder

SalesOrderItem

ScheduleLine

Property Description Necessity

ConfdOrderQtyByMatlAvailCheck The item quantity that the system confirms Read-only


for shipping after checking inventory
availability

ConfirmedDeliveryDate The date that has been confirmed for the Read-only
arrival of goods at their destination

This is custom documentation. For more information, please visit SAP Help Portal. 99
1/18/25, 8:45 PM

Property Description Necessity

CorrectedQtyInOrderQtyUnit Rounded quantity of the required quantity Read-only


in the schedule line in the sales order

DelivBlockReasonForSchedLine Indicates whether a schedule line for the Optional


item is blocked for delivery

DeliveredQtyInOrderQtyUnit Delivered quantity Read-only

OpenConfdDelivQtyInOrdQtyUnit Open confirmed delivery quantity Read-only

OrderQuantityUnit Unit of measure in which the material is Read-only


sold. You can use either the language-
dependent unit code, the ISO code, the SAP
code (the format found in the database
without conversions).

OrderQuantitySAPUnit Unit of measure in which the material is Read-only


sold. You can use either the language-
dependent unit code, the ISO code, the SAP
code (the format found in the database
without conversions).

OrderQuantityISOUnit Unit of measure in which the material is Read-only


sold. You can use either the language-
dependent unit code, the ISO code, the SAP
code (the format found in the database
without conversions).

RequestedDeliveryDate The date on which the customer requires Optional


ordered goods to be delivered

SalesOrder (key) Specifies the sales order ID Read-only

SalesOrderItem (key) Specifies the sales order item number Read-only

ScheduleLine (key) The number that uniquely identifies the Read-only


schedule line in the sales order

ScheduleLineOrderQuantity Required order quantity in an individual Optional


schedule line

Supported Operations

The following operations are supported:

Create

Read

Update

Delete

For more information, see Operations for Sales Order (A2X, OData V2).

Related Information

This is custom documentation. For more information, please visit SAP Help Portal. 100
1/18/25, 8:45 PM
Create Schedule Line for Sales Order Item (Create Single Entity)

Operations for Sales Order (A2X, OData V2)


Learn which operations the single entities of the Sales Order (A2X, OData V2) API support.

The Sales Order (A2X, OData V2) API offers the following operations:

Operation HTTP Sample URL


Method

Create POST You can use deep insert requests to create entire sales orders or, for existing sales orders, create new sales order ite
Deep
A request for creating the header would consist of the header itself plus at least one subentity that supports Create
Examples:
A request for creating the item would consist of the item itself plus at least one subentity that supports Create oper
Create
To create a new sales order, use the following URL:
Sales
Order
POST <host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrder
Create
Sales To create a new sales order item, use the following URL:
Order
Item POST <host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrderItem

For
creating  Note
sales Any properties whose values are determined automatically (for example, based on configuration settings or mast
orders empty property, it is ignored.
with
To clear these properties, send an Update request after the Create request.
reference
to another
sales
document,
see Create
Sales
Orders
with
Reference.

Create POST If the header already exists, you can create subentities that support Create operations on their own.
Single
If the item already exists, you can create subentities that support Create operations on their own.

To create a new sales order, use the following URL:

POST <host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrder

To create a new sales order item, use the following URL:

POST <host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrderItem

To create a new sales order item partner, use the following URL:

POST <host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrderItemPartner

To create a new header partner for sales order 50214 using an association, use the following URL:

POST <host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrder('50214')/to_Partner

This is custom documentation. For more information, please visit SAP Help Portal. 101
1/18/25, 8:45 PM

Operation HTTP Sample URL


Method

 Note
Any properties whose values are determined automatically (for example, based on configuration settings or mast
empty property, it is ignored.

To clear these properties, send an Update request after the Create request.

Read GET You can read entire sales orders or only parts of the data, using the provided filters.

To read sales order 50214, use the following URL:

GET <host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrder('50214')

To read the headers of all sales orders in the system, use the following URL:

GET <host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrder

Update PATCH For existing sales orders, you can update subentities that support Update operations on their own (that is, you can c

Example: To update sales order 50214, use the following URL:

Update
PATCH <host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrder('50214')
Sales
Order
Item  Note
The URL always follows the same pattern.

If you want to update an entity, add the relevant entity after the last slash instead of A_SalesOrder in the samp
to identify the entity.

Example: PATCH <host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrderItemPartner(SalesOrder='5

Note that you can only update single entities, as shown in the example above. The service doesn't support deep up

Delete DELETE For existing sales orders, you can delete subentities that support Delete operations.

To delete sales order 50214, use the following URL:

DELETE <host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrder('50214')

 Note
The URL always follows the same pattern. If you want to delete single entities, add the relevant entity after the last
must always provide all key fields in the URL to identify the entity.

Example:

DELETE <host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrderScheduleLine(SalesOrd

Change Sets

You can create or process only a single sales order per change set of a $batch OData request.

Within one change set, you can use content IDs to send multiple operations that refer to each other. This way, you can, for example,
refer to an entity that hasn't been created yet when you send the request.

This is custom documentation. For more information, please visit SAP Help Portal. 102
1/18/25, 8:45 PM

 Note
When you use content IDs, you must always include the header variables x-csrf-token: <your value> and Content-
Type: multipart/mixed; boundary: <your value>.

The following sample request shows how you can use content IDs in a request. In this example, we first create a sales order and
assign content ID 100 to this operation. Without knowing the sales order ID, we create an item for this sales order by referring to
content ID 100:

POST /sap/opu/odata/sap/API_SALES_ORDER_SRV/$batch

--batch_ODV2
Content-Type: multipart/mixed; boundary=changeset_odv2-0001

--changeset_odv2-0001
Content-Type: application/http
Content-ID: 100

POST A_SalesOrder HTTP/1.1


Accept-Language: en
Accept: application/json
Content-Type: application/json

{
"SalesOrderType": "OR",
"SalesOrganization": "4210",
"DistributionChannel": "10",
"OrganizationDivision": "00",
"SoldToParty": "42100003"
}

--changeset_odv2-0001
Content-Type: application/http

POST $100/to_Item HTTP/1.1


Accept-Language: en
Accept: application/json
Content-Type: application/json

{
"SalesOrderItem": "10",
"Material": "TG12",
"RequestedQuantity": "2",
"RequestedQuantityUnit": "PC"
}

--changeset_odv2-0001--
--batch_ODV2--

For more information about $batch requests, see $batch Processing.

ETags
This is custom documentation. For more information, please visit SAP Help Portal. 103
1/18/25, 8:45 PM
For information about ETags, see ETag Handling.

Create Sales Order


Check sample requests to learn how to create sales orders with the Sales Order (A2X, OData V2) API.

To create a new sales order, you use the POST HTTP method on the A_SalesOrder entity.

For creating sales orders with reference to another sales document, see Create Sales Orders with Reference.

Request
You can include the properties listed under Sales Order Header in the payload of the request.

Response

The operation returns all the properties of the A_SalesOrder entity.

Deep Insert Requests

 Note
You can create a sales order in two ways:

You can use deep insert requests, meaning that you don't create a header on its own, but together with at least one
related entity (for example, the header partner).

You can create a header as a single entity.

For more information about deep insert requests, see Deep Insert.

Example

Request

POST <host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrder
X-CSRF-Token: abc
Content-Type: application/json
Accept: */*

{
"SalesOrderType": "OR",
"SalesOrganization": "1010",
"DistributionChannel": "10",
"OrganizationDivision": "00",
"SoldToParty": "10100001",
"PurchaseOrderByCustomer": "Created via OData Service",
"CustomerPaymentTerms": "",
"to_PricingElement": [
{
"ConditionType": "DRN1",
"ConditionRateValue": "10"
}
],
"to_Partner": [
{
This is custom documentation. For more information, please visit SAP Help Portal. 104
1/18/25, 8:45 PM
"PartnerFunction": "SH",
"Customer": "10100001"
}
],
"to_Text": [
{
"Language": "EN",
"LongTextID": "TX01",
"LongText": "Long text of LongTextID TX01"
}
],
"to_RelatedObject": [
{
"SDDocumentRelatedObjectType": "ZMKT",
"SDDocRelatedObjectSystem": "RL System",
"SDDocRelatedObjectReference1": "Header - Ref 1",
"SDDocRelatedObjectReference2": "Header - Ref 2"
}
],
"to_Item": [
{
"Material": "TG11",
"RequestedQuantity": "2",
"to_PricingElement": [
{
"ConditionType": "YK07",
"ConditionRateValue": "11"
}
]
},
{
"Material": "TG12",
"RequestedQuantity": "10",
"to_Partner": [
{
"PartnerFunction": "SH",
"Customer": "10100003"
}
]
}
]
}

 Note
Any properties whose values are determined automatically (for example, based on configuration settings or master data)
cannot be cleared in Create requests. If you provide an empty property, it is ignored. In the above example, this would be true
for the CustomerPaymentTerms property.

To clear these properties, send an Update request after the Create request.

Sales Orders with External Numbers


The following example illustrates how you create a sales order with a number (in this case, 5019102) from an external number
range:

POST <host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrder
X-CSRF-Token: abc
Content-Type: application/json
Accept: */*

{
"SalesOrder": "5019102",
"SalesOrderType": "OR",
"SalesOrganization": "1710",
"DistributionChannel": "10",
"OrganizationDivision": "00",
"SoldToParty": "17100002",
This is custom documentation. For more information, please visit SAP Help Portal. 105
1/18/25, 8:45 PM
"PurchaseOrderByCustomer": "Created via OData API",
"to_Item":[
{
"SalesOrderItem": "10",
"Material": "TG11",
"RequestedQuantity": "2"
}
]
}

Create Sales Order with Document-Specific Address


Check sample requests to learn how to create sales orders with a document-specific partner address with the Sales Order (A2X,
OData V2) API.

To create a new sales order, you use the POST HTTP method on the A_SalesOrder entity.

By default, the system uses addresses that are stored in master data for business partners that you add to your sales order.
However, you can use the A_SalesOrderPartnerAddress and the A_SalesOrderItemPartnerAddress entities to
overwrite these addresses and create document-specific addresses for specific partners that are only valid for the respective sales
order.

 Note
Any property that you provide in the address payload overwrites the value determined from master data. To clear values
without providing new ones, you can simply leave the property empty.

One-Time Customers

When you send a request with a one-time customer (that is, there is no address or only a dummy address pulled from master
data), you must change the address data. If you don't change the address data, the system returns an error to make you aware
that you must enter a valid address.

If for some reason you do not want to provide an address for a one-time customer, you can make a dummy change (for example,
send a space for a property that you don't use very often, such as OrganizationName4).

Example Request

The following example shows how to create a sales order with a ship-to party (without document-specific address data) and a
contact person (with a document-specific address) for the header, an item with an item-specific ship-to party (with a document-
specific address), and a second item. Note that a lot of address properties are empty, thus clearing the values determined from
master data without providing alternative ones.

POST <host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrder
X-CSRF-Token: abc
Content-Type: application/json
Accept: */*

{
"SalesOrderType": "OR",
"SalesOrganization": "1010",
"DistributionChannel": "10",
"OrganizationDivision": "00",
"SoldToParty": "10100003",
"PurchaseOrderByCustomer": "Created via OData API",
"to_Partner": [
{
"PartnerFunction": "SH",
This is custom documentation. For more information, please visit SAP Help Portal. 106
1/18/25, 8:45 PM
"Customer": "10100003",
"VATRegistration": "DE3191327JH"
},
{
"PartnerFunction": "CP",
"ContactPerson": "64",
"VATRegistration": "DE3191327JH",
"to_Address": [
{
"CorrespondenceLanguage": "EN",
"OrganizationName1": "Document Address",
"OrganizationName2": "Via ODATA",
"OrganizationName3": "",
"OrganizationName4": "",
"TaxJurisdiction": "",
"Country": "DE",
"Region": " ",
"PostalCode": " ",
"CityName": " ",
"DistrictName": " ",
"StreetPrefixName1": "",
"StreetPrefixName2": "",
"StreetName": " ",
"StreetSuffixName1": "",
"StreetSuffixName2": "",
"HouseNumber": " ",
"FormOfAddress": "",
"TransportZone": "",
"POBox": " ",
"POBoxPostalCode": " ",
"EmailAddress": " ",
"MobileNumber": " ",
"PhoneNumber": " ",
"PhoneExtensionNumber": " ",
"FaxAreaCodeSubscriberNumber": " ",
"FaxExtensionNumber": " "
}
]
}
],
"to_Item": [
{
"SalesOrderItem": "10",
"Material": "TG11",
"RequestedQuantity": "2000",
"to_Partner": [
{
"PartnerFunction": "SH",
"Customer": "10100003",
"to_Address": [
{
"CorrespondenceLanguage": "",
"OrganizationName1": "Document Address",
"OrganizationName2": "Via ODATA",
"OrganizationName3": "",
"OrganizationName4": "",
"TaxJurisdiction": "",
"Country": "DE",
"Region": "BW",
"PostalCode": "00000",
"CityName": "Mannheim",
"DistrictName": "Rhein-Neckar-Kreis",
"StreetPrefixName1": "",
"StreetPrefixName2": "",
"StreetName": "Feldbergstr.",
"StreetSuffixName1": "",
"StreetSuffixName2": "",
"HouseNumber": "122",
"FormOfAddress": "",
"TransportZone": "",
"POBox": "A11133",
"POBoxPostalCode": "55555",
"EmailAddress": "[email protected]",
"MobileNumber": "0120505789",

This is custom documentation. For more information, please visit SAP Help Portal. 107
1/18/25, 8:45 PM
"PhoneNumber": "123574968",
"PhoneExtensionNumber": "445",
"FaxAreaCodeSubscriberNumber": "4657892",
"FaxExtensionNumber": "885"
}
]
}
]
},
{
"SalesOrderItem": "20",
"Material": "TG11",
"RequestedQuantity": "1000"
}
]
}

Create Sales Order for Business Partner with Multiple Addresses


Check sample requests to learn how to create sales orders for business partners with multiple addresses with the Sales Order
(A2X, OData V2) API.

To create a new sales order, you use the POST HTTP method on the A_SalesOrder entity.

If multiple address handling for business partners is active in your system and multiple addresses are stored in customer master
data for your business partner, you can identify which address to use. The following example shows how you create a sales order
for a business partner (in this case, a ship-to party and a contact person) for whom multiple addresses are stored in customer
master data.

You must provide a universally unique identifier (UUID) that represents the specific business partner address. To get this UUID, you
can use the Business Partner (A2X) API. For more information, see Business Partner (A2X).

 Note
Business partner address UUIDs are supported for all partner functions of partner type Customer (KU), except for the partner
function Payer, as well as for all partner functions of partner type Contact Person (AP).

For more information about multiple address handling for business partners in sales and distribution and how to enable it, see
Multiple Address Handling in SD Documents Using SAP Business Partner.

Example Request

The following example shows how to create a sales order with a ship-to party and a contact person for the header, an item with an
item-specific ship-to party, and a second item. The BusinessPartnerAddressUUID field determines which address should be
used for the respective business partner.

POST <host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrder
X-CSRF-Token: abc
Content-Type: application/json
Accept: */*

{
"SalesOrderType": "OR",
"SalesOrganization": "0001",
"DistributionChannel": "01",
"OrganizationDivision": "01",
"SoldToParty": "BP_MULT",
"PurchaseOrderByCustomer": "Created via OData API",
"to_Partner": [
{

This is custom documentation. For more information, please visit SAP Help Portal. 108
1/18/25, 8:45 PM
"PartnerFunction": "SH",
"Customer": "BP_MULT",
"BusinessPartnerAddressUUID" : "0894EF45-77A9-1EDB-96B4-D40C533AADA2"
},
],
"to_Item": [
{
"SalesOrderItem": "10",
"Material": "MAT06",
"RequestedQuantity": "2000",
"RequestedQuantityUnit": "PC",
"to_Partner": [
{
"PartnerFunction": "CP",
"ContactPerson": "26077",
"BusinessPartnerAddressUUID" : "0894EF45-77A9-1EDB-96B5-0E5FFADDEEC6"
}
]
},
{
"SalesOrderItem": "20",
"Material": "MAT06",
"RequestedQuantity": "1000",
"MatlAccountAssignmentGroup": "03",
"DeliveryGroup": "002"

}
]
}

Create Sales Order with Billing Plan


Check sample requests to learn how to create sales orders with billing plans with the Sales Order (A2X, OData V2) API.

To create a new sales order, you use the POST HTTP method on the A_SalesOrder entity.

For the billing plan and its items on the sales order header you can use the A_SalesOrderBillingPlan and the
A_SalesOrderBillingPlanItem entities.

For the billing plan and its items in the sales order item you can use the A_SalesOrderItemBillingPlan and the
A_SlsOrderItemBillingPlanItem entities.

Example Request
The following example shows how to create a sales order with a billing plan and one billing plan item for the sales order header as
well as a billing plan and one billing plan item for one sales order item.

 Note
Be aware of the following:

If you do not provide a BillingPlanBillingDate, the system doesn't create the respective billing plan item.

You can only change the properties for the item billing plan and its respective subentities if you provide the value false
for BillingPlanIsInHeader or if you leave it empty.

POST <host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrder
X-CSRF-Token: abc
Content-Type: application/json
Accept: */*

This is custom documentation. For more information, please visit SAP Help Portal. 109
1/18/25, 8:45 PM

{
"SalesOrderType": "OR",
"SalesOrganization": "1010",
"DistributionChannel": "10",
"OrganizationDivision": "00",
"SoldToParty": "10100001",
"PurchaseOrderByCustomer": "BP_Full_CreateDeep",
"to_BillingPlan": {
"BillingPlanStartDate": "2021-12-01T00:00:00",
"BillingPlanStartDateRule": "",
"to_BillingPlanItem": [
{
"BillingPlanBillingDate": "2022-08-12T00:00:00",
"BillingPlanDateCategory": "01",
"CustomerPaymentTerms": "0001",
"ProposedBillingDocumentType": "FAZ",
"BillingPlanDateDescriptionCode": "Y009",
"BillingPlanAmountPercent": "10",
"BillingBlockReason": "06"
}
]
},
"to_Item": [
{
"SalesOrderItem": "10",
"SalesOrderItemCategory": "CBAO",
"Material": "TG0012",
"RequestedQuantity": "500",
"to_BillingPlan": {
"BillingPlanIsInHeader": false,
"BillingPlanStartDate": "2022-01-01T00:00:00",
"BillingPlanStartDateRule": "",
"to_BillingPlanItem": [
{
"BillingPlanBillingDate": "2030-01-01T00:00:00",
"BillingPlanDateCategory": "01",
"CustomerPaymentTerms": "0002",
"ProposedBillingDocumentType": "",
"BillingPlanDateDescriptionCode": "Y001",
"BillingPlanAmount": "5",
"BillingBlockReason": "Y2"
},
]
}
}
]
}

Create Sales Order Item


Check sample requests to learn how to create sales order items with the Sales Order (A2X, OData V2) API.

To create a new item for an existing sales order, you use the POST HTTP method on the A_SalesOrderItem entity.

For creating sales order items with reference to another sales document, see Create Sales Orders with Reference.

Request

You can include the properties listed under Sales Order Item in the payload of the request.

You can create a sales order item in two ways:

You can use deep insert requests, meaning that you don't create an item on its own, but together with at least one related
entity (for example, the item partner).

This is custom documentation. For more information, please visit SAP Help Portal. 110
1/18/25, 8:45 PM
You can create an item as a single entity.

For more information about deep insert requests, see Deep Insert.

Examples

Creating One Item for One Sales Order

To create an item with pricing and partner information for sales order 50214, use the following example:

POST <host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrderItem
X-CSRF-Token: abc
Content-Type: application/json
Accept: */*

{
"SalesOrder": "50214",
"Material": "TG12",
"MaterialByCustomer": "TG12 Material",
"RequestedQuantity": "20",
"RequestedQuantityUnit": "EA",
"MaterialGroup": "A001",
"MaterialPricingGroup": "M2",
"Batch": "",
"ProductionPlant": "1010",
"StorageLocation": "101A",
"ShippingPoint": "1010",
"ShippingType": "01",
"IncotermsClassification": "EXW",
"IncotermsTransferLocation": "Darmstadt",
"IncotermsLocation1": "Darmstadt",
"CustomerPaymentTerms": "0004",
"DeliveryGroup": "001",
"WBSElement": "",
"to_Partner": [
{
"PartnerFunction": "SH",
"Customer": "S10103276"
}
],
"to_Text": [
{
"Language": "EN",
"LongTextID": "TX05",
"LongText": "Text for text ID TX05"
}
],
"to_PricingElement": [
{
"ConditionType": "DRN1",
"ConditionRateValue": "10"
}
]
}

Creating Multiple Items for One Sales Order

If you want to create more than one item for an existing sales order, you can do so in a $batch OData request.

For more information about $batch requests, see $batch Processing.

To create two new items for sales order 50214, use the following example:

--batch_dca6-74d2-d53f
Content-Type: multipart/mixed; boundary=changeset_01

This is custom documentation. For more information, please visit SAP Help Portal. 111
1/18/25, 8:45 PM
--changeset_01
Content-Type: application/http
Content-Transfer-Encoding: binary

POST A_SalesOrderItem HTTP/1.1


x-csrf-token: {{token}}
Content-Type: application/json

{
"SalesOrder": "50214",
"Material": "TG11",
"RequestedQuantity": "1000"
}

--changeset_01
Content-Type: application/http
Content-Transfer-Encoding: binary

POST A_SalesOrderItem HTTP/1.1


x-csrf-token: {{token}}
Content-Type: application/json

{
"SalesOrder": "50214",
"Material": "TG11",
"RequestedQuantity": "1000"
}

--changeset_01--
--batch_dca6-74d2-d53f--

Response

The operation returns all the properties of the A_SalesOrderItem entity.

Create Schedule Line for Sales Order Item (Create Single Entity)
Check sample requests to learn how to create schedules lines for existing sales order items with the Sales Order (A2X, OData V2)
API.

Request
You can include the properties listed under Item Schedule Line in the payload of the request.

To create a new schedule line for an existing sales order item, you can use one of the following options:

Create a schedule line using the entity

Example URL for creating a schedule line for sales order 50214, item 10:

POST <host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/API_SALES_ORDER_SRV/A_SalesOrderScheduleLin

Example request for creating a schedule line for sales order 50214, item 10:

{
"SalesOrder": "{{50214}}",
"SalesOrderItem": "10",
"ScheduleLineOrderQuantity": "35",
"OrderQuantityUnit": "PC",
"OrderQuantitySAPUnit": "ST",
"OrderQuantityISOUnit": "PCE",

This is custom documentation. For more information, please visit SAP Help Portal. 112
1/18/25, 8:45 PM
"RequestedDeliveryDate": "2020-10-01T00:00:00"
}

Create a schedule line using the association

Example URL for creating a schedule line for sales order 50214, item 10:

POST <host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/API_SALES_ORDER_SRV/A_SalesOrderItem(SalesO

Example request for creating a schedule line for sales order 50214, item 10:

{
"ScheduleLineOrderQuantity": "11",
"OrderQuantityUnit": "PC",
"OrderQuantitySAPUnit": "ST",
"OrderQuantityISOUnit": "PCE",
"RequestedDeliveryDate": "2020-08-01T00:00:00"
}

Response

The operation returns all the properties of the A_SalesOrderScheduleLine entity.

Deleting and Updating Schedule Lines


To find out the schedule line number, use a read request to find all the schedule lines for a specific sales order item.

Example for sales order 50214, item 10:

GET <host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/API_SALES_ORDER_SRV/A_SalesOrderItem(SalesOrder='{

Update Sales Order Item


Check sample requests to learn how to update sales order items with the Sales Order (A2X, OData V2) API.

To update an item of an existing sales order, you use the PATCH HTTP method on the A_SalesOrderItem entity.

Request
You can include the following properties in the URL of the request:

Property Necessity Comment

SalesOrder Mandatory Must be unique in the database and not


archived.

SalesOrderItem Mandatory Must be unique in the database and not


archived.

You can include the properties listed under Sales Order Item in the payload of the request.

Response

This is custom documentation. For more information, please visit SAP Help Portal. 113
1/18/25, 8:45 PM
The operation returns all the properties of the A_SalesOrderItem entity.

Example

Request

To change item 10 of sales order 50214, use the following example:

PATCH <host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrderItem(SalesOrder='50214',SalesOrderIt
X-CSRF-Token: xyz
Content-Type: application/json
Accept: */*

{
"RequestedQuantity": "2",
"PurchaseOrderByCustomer": "Update quantity"
}

ETag Handling
Learn how to ensure that you process the latest version of the sales order when you use the Sales Order (A2X, OData V2) API.

ETag Handling

To ensure that you process the latest version of the sales order, you have to use entity tags (ETags) for optimistic concurrency
control.

If a client requests a modification of a sales order on the back-end server, the ETags of the sales order on the client and on the
back-end server are compared to determine whether any changes have been made to the sales order on the back-end server.

ETag handling is supported for the following operations:

Create (sales order item) (POST)

Update (PATCH)

Delete (DELETE)

The Etag handling feature is implemented on the A_SalesOrder node with the LastChangeDateTime property. If you want to
use ETag handling for other entities (for example, A_SalesOrderItem), proceed as follows:

1. Perform a GET operation to retrieve the content for the LastChangeDateTime property.

2. Create a $batch request containing one changeset.

3. As first operation of the changeset, include a PATCH A_SalesOrder with the LastChangeDateTime property. Provide
the LastChangeDateTime content also in the request header in the If-Match field.

4. As second operation of the changeset, include the desired payload (for example, POST A_SalesOrderItem or PATCH
A_SalesOrderItem) with the relevant data.

If you don’t want to use the ETag handling feature, you can perform a single operation (for example, POST A_SalesOrderItem
to create a new item for an existing sales order). In this case, you need to be aware that the sales order might have been changed
since the last time it was retrieved by your application. You might, for example, create an item that’s not necessary because it has
already been created in a prior call.

This is custom documentation. For more information, please visit SAP Help Portal. 114
1/18/25, 8:45 PM

Example: How to Use ETag Handling


1. Fetch the token for the Sales Order (A2X) API.

<host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/$metadata

The token is stored as {{token}}.

2. Send a $batch POST request to create two sales orders using the stored token.

<host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/$batch

--batch_dca6-74d2-d53f
Content-Type: multipart/mixed; boundary=changeset_21cc-1e7e-0001

--changeset_21cc-1e7e-0001
Content-Type: application/http
Content-Transfer-Encoding: binary

POST A_SalesOrder HTTP/1.1


x-csrf-token: {{token}}
Accept-Language: en
Accept: application/json
MaxDataServiceVersion: 2.0
DataServiceVersion: 2.0
Content-Type: application/json
Content-Length: 9999

{
"SalesOrderType" : "OR",
"SalesOrganization" : "1010",
"DistributionChannel" : "10",
"OrganizationDivision" : "00",
"SoldToParty" : "10100003",
"PurchaseOrderByCustomer" : "ETag Handling",
"to_Item":[
{ "SalesOrderItem" : "10",
"Material" : "TG11",
"RequestedQuantity" : "2"
}]
}

--changeset_21cc-1e7e-0001--

--batch_dca6-74d2-d53f
Content-Type: multipart/mixed; boundary=changeset_21cc-1e7e-0002

--changeset_21cc-1e7e-0002
Content-Type: application/http
Content-Transfer-Encoding: binary

POST A_SalesOrder HTTP/1.1


x-csrf-token: {{token}}
Accept-Language: en
Accept: application/json
MaxDataServiceVersion: 2.0
DataServiceVersion: 2.0
Content-Type: application/json
Content-Length: 9999

{
"SalesOrderType" : "OR",
"SalesOrganization" : "1010",
"DistributionChannel" : "10",
"OrganizationDivision" : "00",
"SoldToParty" : "10100003",
"PurchaseOrderByCustomer" : "ETag Handling",
"to_Item":[
{ "SalesOrderItem" : "10",
"Material" : "TG11",
"RequestedQuantity" : "2"
This is custom documentation. For more information, please visit SAP Help Portal. 115
1/18/25, 8:45 PM
}]
}

--changeset_21cc-1e7e-0002--

--batch_dca6-74d2-d53f--

3. Interpret the results. Note that you must save the sales order IDs and ETags from the POST request correctly.

Sales Order 1:

SalesOrder: 8122
etag: W/"datetimeoffset'2021-02-05T16%3A38%3A52.0701210Z'"

Sales Order 2:

SalesOrder: 8123
etag: W/"datetimeoffset'2021-02-05T16%3A38%3A54.8681360Z'"

The following is a response example:

--3D9A54ADB390AA20220954A400C8F0CE0
Content-Type: multipart/mixed; boundary=3D9A54ADB390AA20220954A400C8F0CE1
Content-Length: 3923

--3D9A54ADB390AA20220954A400C8F0CE1
Content-Type: application/http
Content-Length: 3754
content-transfer-encoding: binary

HTTP/1.1 201 Created


Content-Type: application/json
Content-Length: 3202
dataserviceversion: 2.0
sap-message: {
"code": "V1/311",
"message": "Standard Order 8122 has been saved.",
"target": "",
"severity": "success",
"transition": false
}
location: <host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrder('8122')
etag: W/"datetimeoffset'2021-02-05T16%3A38%3A52.0701210Z'"

<Note that the entire sales order response is provided, it is shortened in this example.>

--3D9A54ADB390AA20220954A400C8F0CE1--
--3D9A54ADB390AA20220954A400C8F0CE0
Content-Type: multipart/mixed; boundary=3D9A54ADB390AA20220954A400C8F0CE1
Content-Length: 3923

--3D9A54ADB390AA20220954A400C8F0CE1
Content-Type: application/http
Content-Length: 3754
content-transfer-encoding: binary

This is custom documentation. For more information, please visit SAP Help Portal. 116
1/18/25, 8:45 PM
HTTP/1.1 201 Created
Content-Type: application/json
Content-Length: 3202
dataserviceversion: 2.0
sap-message: {
"code": "V1/311",
"message": "Standard Order 8123 has been saved.",
"target": "",
"severity": "success",
"transition": false
}
location: <host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrder('8123')
etag: W/"datetimeoffset'2021-02-05T16%3A38%3A54.8681360Z'"

<Note that the entire sales order response is provided, it is shortened in this example.>

--3D9A54ADB390AA20220954A400C8F0CE1--
--3D9A54ADB390AA20220954A400C8F0CE0--

4. Change both sales orders and create a new sales order in a single $batch request.

<host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/$batch

 Note
In $batch requests, you must use POST requests only.

This request uses the sales order IDs and the ETag from the previous response.

--batch_dca6-74d2-d53f
Content-Type: multipart/mixed; boundary=changeset_21cc-1e7e-0001

--changeset_21cc-1e7e-0001
Content-Type: application/http
Content-Transfer-Encoding: binary

PATCH A_SalesOrder('8122') HTTP/1.1


x-csrf-token: {{token}}
If-Match: W/"datetimeoffset'2021-02-05T16%3A38%3A52.0701210Z'"
Accept-Language: en
Accept: application/json
MaxDataServiceVersion: 2.0
DataServiceVersion: 2.0
Content-Type: application/json
Content-Length: 9999

{
"PurchaseOrderByCustomer" : "ETag Handling - Patch SO 1"
}

--changeset_21cc-1e7e-0001--

--batch_dca6-74d2-d53f
Content-Type: multipart/mixed; boundary=changeset_21cc-1e7e-0002

--changeset_21cc-1e7e-0002
Content-Type: application/http
Content-Transfer-Encoding: binary

PATCH A_SalesOrder('8123') HTTP/1.1


x-csrf-token: {{token}}
If-Match: W/"datetimeoffset'2021-02-05T16%3A38%3A54.8681360Z'"
Accept-Language: en
Accept: application/json

This is custom documentation. For more information, please visit SAP Help Portal. 117
1/18/25, 8:45 PM
MaxDataServiceVersion: 2.0
DataServiceVersion: 2.0
Content-Type: application/json
Content-Length: 9999

{
"PurchaseOrderByCustomer" : "ETag Handling - Patch SO 2"
}

--changeset_21cc-1e7e-0002--

--batch_dca6-74d2-d53f
Content-Type: multipart/mixed; boundary=changeset_21cc-1e7e-0003

--changeset_21cc-1e7e-0003
Content-Type: application/http
Content-Transfer-Encoding: binary

POST A_SalesOrder HTTP/1.1


x-csrf-token: {{token}}
Accept-Language: en
Accept: application/json
MaxDataServiceVersion: 2.0
DataServiceVersion: 2.0
Content-Type: application/json
Content-Length: 9999

{
"SalesOrderType" : "OR",
"SalesOrganization" : "1010",
"DistributionChannel" : "10",
"OrganizationDivision" : "00",
"SoldToParty" : "10100003",
"PurchaseOrderByCustomer" : "ETag Handling – New SO",
"to_Item":[
{ "SalesOrderItem" : "10",
"Material" : "TG11",
"RequestedQuantity" : "2"
}]
}

--changeset_21cc-1e7e-0003--

--batch_dca6-74d2-d53f--

Related Information

ETag Handling

Sample Scenarios in the SAP Extensibility Explorer


Learn more about sample scenarios using the Sales Order (A2X, OData V2) API.

In the SAP Extensibility Explorer for SAP S/4HANA Cloud , you can find various sample scenarios. These scenarios illustrate how
you can adapt standard software to your business needs.

The following sample scenarios use the Sales Order (A2X, OData V2) API:

SAP S/4HANA Cloud Product Web Ordering and Reporting

Using standard and custom APIs as well as custom apps created with SAP Cloud SDK, this sample scenario shows how you
can build an app for ordering products and analyze the created sales orders in another app.

You can find this scenario in the SAP Extensibility Explorer by searching the sample scenarios for SAP S/4HANA Cloud
Product Web Ordering and Reporting. For more information, see the linked set-up guide.

This is custom documentation. For more information, please visit SAP Help Portal. 118
1/18/25, 8:45 PM
Display Created or Changed Sales Orders Using Business Event Handling

Using standard APIs, a custom app that is created with SAP Web IDE and deployed on SAP Business Technology Platform
(SAP BTP), as well as business events, this sample scenario shows how you can read sales order events in an app and show
details for selected sales orders.

You can find this scenario in the SAP Extensibility Explorer by searching the sample scenarios for Display Created or
Changed Sales Orders Using Business Event Handling. For more information, see the linked set-up guide.

Release or Reject Sales Orders in Approval


Learn how to accept or deny approval requests for sales orders that cannot be processed without the consent of an approver with
the Sales Order (A2X, OData V2) API.

Prerequisites

To release or reject sales orders using this service, the following conditions must be met:

At least one approval request reason must be defined and assigned for sales orders. In your configuration environment, use
the search function to open the following activities:

Define Reasons for Approval Requests

Assign Reasons for Approval Requests

In the same configuration activities, you must indicate that you want to use one or more approval request reasons with an
external workflow.

 Note
In this case, you cannot configure any internal workflow for this reason, and no internal workflow defined in the Manage
Sales Document Workflows app is triggered.

For more information about the configuration environment, see Configuration Environment of SAP S/4HANA Cloud Public
Edition.

To determine whether a sales order needs to be sent to an approver and, if so, to set an approval request reason on sales
order header level, you can use the Business Add-In (BAdI) Set Approval Request Reasons for Sales Documents
(SD_APM_SET_APPROVAL_REASON). This BAdI is called whenever a sales order is saved by a business user. It must be set
up so it returns an approval request reason for which you chose to use an external workflow.

You can find this BAdI in the Custom Logic app, using the Sales: Sales Document business context.

Actions

Release sales orders

Use this action to approve a sales order.

 Example
To release sales order 1234, use the following URL:

/sap/opu/odata/sap/API_SALES_ORDER_SRV/releaseApprovalRequest?SalesOrder='1234'

Reject sales orders

This is custom documentation. For more information, please visit SAP Help Portal. 119
1/18/25, 8:45 PM
Use this action to reject the approval of a sales order.

 Example
To reject sales order 1234, use the following URL:

/sap/opu/odata/sap/API_SALES_ORDER_SRV/rejectApprovalRequest?SalesOrder='1234'

 Note
You cannot combine actions related to approvals with other operations (for example, the change of an item text) in one
changeset. This will trigger the following error message: Technical problems (common part).

To send both approval-related changes and other changes, use two separate $batch OData requests.

Properties

You can find the approval reasons defined in the configuration activity mentioned above and the approval status of the sales order
in the following properties on the A_SalesOrder node:

SalesOrderApprovalReason

SalesDocApprovalStatus

Constraints

This service doesn't allow you to send sales orders back to the internal sales representative for rework. It is also not possible to
withdraw an approval request.

Related Information
Custom Logic

Create Sales Orders with Reference


Learn how to create a sales order with reference to another sales document with the Sales Order (A2X, OData V2) API.

You can either create an independent sales order or create a sales order with reference to a preceding document (for example, a
sales order with reference to a sales quotation). When you create a sales order with reference, the relevant data from the preceding
document is copied into the new document (including any custom fields).

In this service, you can use the following fields for creating sales orders with reference to a preceding document:

ReferenceSDDocument (in A_SalesOrder)

ReferenceSDDocument (in A_SalesOrderItem)

ReferenceSDDocumentItem (in A_SalesOrderItem)

 Note
All the checks and constraints regarding the copying of data that are implemented in your system are valid for the API as well.
For example, you cannot copy an item from a reference document when the item is already completely referenced.

This is custom documentation. For more information, please visit SAP Help Portal. 120
1/18/25, 8:45 PM

Supported Use Cases


Depending on your use case, you need to include specific fields in your payload. The following examples illustrate the supported
use cases.

You copy all the items from the reference document, keeping the quantity unchanged.

Your reference document, sales quotation 20000011, has two items:

10 with material 1, quantity 1

20 with material 2, quantity 1

For every item that you want to copy, you include both ReferenceSDDocument and ReferenceSDDocumentItem.

You don't include quantities that are copied unchanged.

JSON

{
"SalesOrderType" : "OR",
"ReferenceSDDocument" : "20000011",
"to_Item":[
{
"ReferenceSDDocument" : "20000011",
"ReferenceSDDocumentItem" : "10"
},
{
"ReferenceSDDocument" : "20000011",
"ReferenceSDDocumentItem" : "20"
}
]
}

XML

<entry xml:base="<URL>"
xmlns="http://www.w3.org/2005/Atom"
xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices">
<content type="application/xml">
<m:properties>
<d:SalesOrderType>OR</d:SalesOrderType>
<d:ReferenceSDDocument>20000011</d:ReferenceSDDocument>
</m:properties>
</content>
<link href="A_SalesOrder"
rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/to_Item"
type="application/atom+xml;type=feed"
title="to_Item">
<m:inline>
<feed xml:base="<URL>">
<entry>
<content type="application/xml">
<m:properties>
<d:ReferenceSDDocument>20000011</d:ReferenceSDDocument>
<d:ReferenceSDDocumentItem>10</d:ReferenceSDDocumentItem>
</m:properties>
</content>
</entry>
<entry>
<content type="application/xml">
<m:properties>
<d:ReferenceSDDocument>20000011</d:ReferenceSDDocument>
<d:ReferenceSDDocumentItem>20</d:ReferenceSDDocumentItem>
</m:properties>

This is custom documentation. For more information, please visit SAP Help Portal. 121
1/18/25, 8:45 PM
</content>
</entry>
</feed>
</m:inline>
</link>
</entry>

You copy some items from the reference document, partially changing the quantity.

Your reference document, sales quotation 20000011, has three items:

10 with material 1, quantity 10

20 with material 2, quantity 20

30 with material 3, quantity 10

For every item that you want to copy unchanged, you include both ReferenceSDDocument and
ReferenceSDDocumentItem.

Items that you don't want to copy are not part of the payload.

For every item that you want to copy with a different quantity, you include ReferenceSDDocument,
ReferenceSDDocumentItem, and RequestedQuantity.

JSON

{
"SalesOrderType" : "OR",
"ReferenceSDDocument" : "20000011",
"to_Item":[
{
"ReferenceSDDocument" : "20000011",
"ReferenceSDDocumentItem" : "10"
},
{
"ReferenceSDDocument" : "20000011",
"ReferenceSDDocumentItem" : "30",
"RequestedQuantity" : "2"
}
]
}

XML

<entry xml:base="<URL>"
xmlns="http://www.w3.org/2005/Atom"
xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices">
<content type="application/xml">
<m:properties>
<d:SalesOrderType>OR</d:SalesOrderType>
<d:ReferenceSDDocument>20000011</d:ReferenceSDDocument>
</m:properties>
</content>
<link href="A_SalesOrder"
rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/to_Item"
type="application/atom+xml;type=feed"
title="to_Item">
<m:inline>
<feed xml:base="<URL>">
<entry>
<content type="application/xml">
<m:properties>
<d:ReferenceSDDocument>20000011</d:ReferenceSDDocument>
<d:ReferenceSDDocumentItem>10</d:ReferenceSDDocumentItem>
This is custom documentation. For more information, please visit SAP Help Portal. 122
1/18/25, 8:45 PM
</m:properties>
</content>
</entry>
<entry>
<content type="application/xml">
<m:properties>
<d:ReferenceSDDocument>20000011</d:ReferenceSDDocument>
<d:ReferenceSDDocumentItem>30</d:ReferenceSDDocumentItem>
<d:RequestedQuantity>2</d:RequestedQuantity>
</m:properties>
</content>
</entry>
</feed>
</m:inline>
</link>
</entry>

You copy items from different reference documents, partially changing the quantity.

Your reference document 1, sales quotation 20000011, has two items:

10 with material 1, quantity 1

20 with material 2, quantity 1

Your reference document 2, sales quotation 20000012, has three items:

10 with material 1, quantity 10

20 with material 2, quantity 20

30 with material 3, quantity 10

For every item that you want to copy unchanged, you include both ReferenceSDDocument and
ReferenceSDDocumentItem.

Items from any reference document that you don't want to copy are not part of the payload.

For every item that you want to copy with a different quantity from any reference document, you include
ReferenceSDDocument, ReferenceSDDocumentItem, and RequestedQuantity.

JSON

{
"SalesOrderType" : "OR",
"ReferenceSDDocument" : "20000011",
"to_Item":[
{
"ReferenceSDDocument" : "20000011",
"ReferenceSDDocumentItem" : "10"
},
{
"ReferenceSDDocument" : "20000012",
"ReferenceSDDocumentItem" : "30",
"RequestedQuantity" : "2"
}
]
}

XML

<entry xml:base="<URL>"
xmlns="http://www.w3.org/2005/Atom"
xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"

This is custom documentation. For more information, please visit SAP Help Portal. 123
1/18/25, 8:45 PM
xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices">
<content type="application/xml">
<m:properties>
<d:SalesOrderType>OR</d:SalesOrderType>
<d:ReferenceSDDocument>20000011</d:ReferenceSDDocument>
</m:properties>
</content>
<link href="A_SalesOrder"
rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/to_Item"
type="application/atom+xml;type=feed"
title="to_Item">
<m:inline>
<feed xml:base="<URL>">
<entry>
<content type="application/xml">
<m:properties>
<d:ReferenceSDDocument>20000011</d:ReferenceSDDocument>
<d:ReferenceSDDocumentItem>10</d:ReferenceSDDocumentItem>
</m:properties>
</content>
</entry>
<entry>
<content type="application/xml">
<m:properties>
<d:ReferenceSDDocument>20000012</d:ReferenceSDDocument>
<d:ReferenceSDDocumentItem

You copy an item from a reference document, changing the quantity, and create an item without reference.

Your reference document, sales quotation 20000011, has three items:

10 with material 1, quantity 10

20 with material 2, quantity 20

30 with material 3, quantity 10

Items that you don't want to copy are not part of the payload.

For every item that you want to copy with a different quantity, you include ReferenceSDDocument,
ReferenceSDDocumentItem, and RequestedQuantity.

For every additional item, you include the relevant fields.

JSON

{
"SalesOrderType" : "OR",
"SalesOrganization" : "0001",
"DistributionChannel" : "01",
"OrganizationDivision" : "01",
"SoldToParty" : "MY_CUST_01",

"to_Item":[
{
"Material" : "MY_MTRL_01",
"RequestedQuantity" : "10"
},
{
"ReferenceSDDocument" : "20000011",
"ReferenceSDDocumentItem" : "30",
"RequestedQuantity" : "2"
}
]
}

XML

This is custom documentation. For more information, please visit SAP Help Portal. 124
1/18/25, 8:45 PM

<entry xml:base="<URL>"
xmlns="http://www.w3.org/2005/Atom"
xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices">
<content type="application/xml">
<m:properties>
<d:SalesOrderType>OR</d:SalesOrderType>
<d:SalesOrganization>0001</d:SalesOrganization>
<d:DistributionChannel>01</d:DistributionChannel>
<d:OrganizationDivision>01</d:OrganizationDivision>
<d:SoldToParty>MY_CUST_01</d:SoldToParty>
</m:properties>
</content>
<link href="A_SalesOrder"
rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/to_Item"
type="application/atom+xml;type=feed"
title="to_Item">
<m:inline>
<feed xml:base="<URL>"
<entry>
<content type="application/xml">
<m:properties>
<d:Material>MY_MTRL_01</d:Material>
<d:RequestedQuantity>10</d:RequestedQuantity>
</m:properties>
</content>
</entry>
<entry>
<content type="application/xml">
<m:properties>
<d:ReferenceSDDocument>20000011</d:ReferenceSDDocument>
<d:ReferenceSDDocumentItem>30</d:ReferenceSDDocumentItem>
<d:RequestedQuantity>2</d:RequestedQuantity>
</m:properties>
</content>
</entry>
</feed>
</m:inline>
</link>
</entry>

You copy an item from the reference document, changing the quantity and the item number, and create an item
without reference with a specific item number.

Your reference document, sales quotation 20000011, has three items:

10 with material 1, quantity 10

20 with material 2, quantity 20

30 with material 3, quantity 10

Items that you don't want to copy are not part of the payload.

For every item that you want to copy with a different quantity and a different item number, you include
ReferenceSDDocument, ReferenceSDDocumentItem, RequestedQuantity, and SalesOrderItem.

For every additional item, you include the relevant fields.

JSON

{
"SalesOrderType" : "OR",
"SalesOrganization" : "0001",
"DistributionChannel" : "01",
"OrganizationDivision" : "01",
"SoldToParty" : "MY_CUST_01",

This is custom documentation. For more information, please visit SAP Help Portal. 125
1/18/25, 8:45 PM

"to_Item":[
{
"SalesOrderItem" : "10",
"Material" : "MY_MTRL_01",
"RequestedQuantity" : "10"
},
{
"ReferenceSDDocument" : "20000011",
"ReferenceSDDocumentItem" : "30",
"RequestedQuantity" : "2",
"SalesOrderItem" : "20"
}
]
}

XML

<entry xml:base="<URL>"
xmlns="http://www.w3.org/2005/Atom"
xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices">
<content type="application/xml">
<m:properties>
<d:SalesOrderType>OR</d:SalesOrderType>
<d:SalesOrganization>0001</d:SalesOrganization>
<d:DistributionChannel>01</d:DistributionChannel>
<d:OrganizationDivision>01</d:OrganizationDivision>
<d:SoldToParty>MY_CUST_01</d:SoldToParty>
</m:properties>
</content>
<link href="A_SalesOrder"
rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/to_Item"
type="application/atom+xml;type=feed"
title="to_Item">
<m:inline>
<feed xml:base="<URL>">
<entry>
<content type="application/xml">
<m:properties>
<d:SalesOrderItem>10</d:SalesOrderItem>
<d:Material>MY_MTRL_01</d:Material>
<d:RequestedQuantity>10</d:RequestedQuantity>
</m:properties>
</content>
</entry>
<entry>
<content type="application/xml">
<m:properties>
<d:ReferenceSDDocument>20000011</d:ReferenceSDDocument>
<d:ReferenceSDDocumentItem>30</d:ReferenceSDDocumentItem>
<d:RequestedQuantity>2</d:RequestedQuantity>
<d:SalesOrderItem>20</d:SalesOrderItem>
</m:properties>
</content>
</entry>
</feed>
</m:inline>
</link>
</entry>

You copy an item from the reference document, changing the quantity and adding a discount.

Your reference document, sales quotation 20000011, has three items:

10 with material 1, quantity 10

20 with material 2, quantity 20

This is custom documentation. For more information, please visit SAP Help Portal. 126
1/18/25, 8:45 PM
30 with material 3, quantity 10

Items that you don't want to copy are not part of the payload.

For every item that you want to copy with a different quantity and a discount, you include ReferenceSDDocument,
ReferenceSDDocumentItem, RequestedQuantity. For the pricing element, you add ConditionType and
ConditionRateValue.

JSON

{
"SalesOrderType" : "OR",
"ReferenceSDDocument" : "20000011",
"to_Item":[
{
"ReferenceSDDocument" : "20000011",
"ReferenceSDDocumentItem" : "10",
"RequestedQuantity" : "2",
"to_PricingElement" : [
{
"ConditionType" : "RA00",
"ConditionRateValue" : "10"
}
]
}
]
}

XML

<entry xml:base="<Your URL>"


xmlns="http://www.w3.org/2005/Atom"
xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices">
<content type="application/xml">
<m:properties>
<d:SalesOrderType>OR</d:SalesOrderType>
<d:ReferenceSDDocument>20000011</d:ReferenceSDDocument>
</m:properties>
</content>
<link href="A_SalesOrder"
rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/to_Item"
type="application/atom+xml;type=feed"
title="to_Item">
<m:inline>
<feed xml:base="<URL>">
<entry>
<content type="a pplication/xml">
<m:properties>
<d:ReferenceSDDocument>20000011</d:ReferenceSDDocument>
<d:ReferenceSDDocumentItem>10</d:ReferenceSDDocumentItem>
<d:RequestedQuantity>2</d:RequestedQuantity>
</m:properties>
</content>
</entry>
<link href="A_SalesOrderItem"
rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/to_PricingElement"
type="application/atom+xml;type=feed"
title="to_PricingElement">
<m:inline>
<feed xml:base="<URL>">
<entry>
<content type="application/xml">
<m:properties>
<d:ConditionType>RA00</d:ConditionType>
<d:ConditionRateValue>10</d:ConditionRateValue>
</m:properties>
</content>
</entry>
This is custom documentation. For more information, please visit SAP Help Portal. 127
1/18/25, 8:45 PM
</feed>
</m:inline>
</link>
</feed>
</m:inline>
</link>
</entry>

Create Sales Orders with Reference in $batch Requests


You can also use $batch requests to create sales orders with reference to another document. The following example shows how to
create a sales contract and then a sales order referencing the sales contract.

1. Fetch the token for the Sales Contract (A2X) API.

<host>/sap/opu/odata/sap/API_SALES_CONTRACT_SRV/$metadata

2. Send a POST request to create a sales contract.

<host>/sap/opu/odata/sap/API_SALES_CONTRACT_SRV/A_SalesContract

{
"SalesContractType" : "CQ",
"SalesOrganization" : "4210",
"DistributionChannel" : "10",
"OrganizationDivision" : "00",
"SalesGroup" : "420",
"SalesOffice" : "420",
"SalesDistrict" : "ACT",
"SoldToParty" : "42100001",
"PurchaseOrderByCustomer" : "API Create w. Ref",
"SalesContractDate" : "2018-07-01T00:00:00",
"TransactionCurrency" : "EUR",
"PricingDate" : "2018-07-01T00:00:00",
"SalesContractValidityStartDate" : "2020-05-01T00:00:00",
"SalesContractValidityEndDate" : "2022-01-01T00:00:00",
"to_Item":[
{ "SalesContractItem" : "10",
"Material" : "R-311",
"MaterialByCustomer" : "Source Item for Refs.",
"RequestedQuantity" : "400",
"RequestedQuantityUnit" : "PC"
},
{ "SalesContractItem" : "20",
"Material" : "R-412",
"RequestedQuantity" : "10"
}]
}

The sales contract ID is stored as {{SalesContractID}}.

3. Fetch the token for the Sales Order (A2X) API.

<host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/$metadata

The token is stored as {{token}}.

4. Send a POST request to create a sales order with reference to the sales contract.

<host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrder

{
"SalesOrderType" : "OR",
"ReferenceSDDocument" : "{{SalesContractID}}",
"PurchaseOrderByCustomer" : "API Create w. Ref",
This is custom documentation. For more information, please visit SAP Help Portal. 128
1/18/25, 8:45 PM
"to_Item":[
{ "SalesOrderItem" : "10",
"MaterialByCustomer" : "Reference First Item",
"ReferenceSDDocument" : "{{SalesContractID}}",
"ReferenceSDDocumentItem": "10",
"RequestedQuantity" : "10"
}]
}

The sales order ID is stored as {{SalesOrderID}}.

5. Send a $batch POST request to create four new sales order items that reference the sales contract items.

<host>/sap/opu/odata/sap/API_SALES_ORDER_SRV/$batch

 Note
The sales contract ID is saved from the first POST request and then used for the creation of the sales order.

--batch_dca6-74d2-d53f
Content-Type: multipart/mixed; boundary=changeset_21cc-1e7e-0001

--changeset_21cc-1e7e-0001
Content-Type: application/http
Content-Transfer-Encoding: binary

POST A_SalesOrderItem HTTP/1.1


x-csrf-token: {{token}}
Accept-Language: en
Accept: application/json
MaxDataServiceVersion: 2.0
DataServiceVersion: 2.0
Content-Type: application/json
Conent-Length: 9999

{
"SalesOrder" : "{{SalesOrderID}}",
"MaterialByCustomer" : "Reference Second Item",
"RequestedQuantity" : "20",
"ReferenceSDDocument" : "{{SalesContractID}}",
"ReferenceSDDocumentItem" : "10",
"to_Text":[
{ "Language" : "EN",
"LongTextID" : "TX12",
"LongText" : "This should be a deep request"
}]
}

--changeset_21cc-1e7e-0001--

--batch_dca6-74d2-d53f
Content-Type: multipart/mixed; boundary=changeset_21cc-1e7e-0002

--changeset_21cc-1e7e-0002
Content-Type: application/http
Content-Transfer-Encoding: binary

POST A_SalesOrderItem HTTP/1.1


x-csrf-token: {{token}}
Accept-Language: en
Accept: application/json
MaxDataServiceVersion: 2.0
DataServiceVersion: 2.0
Content-Type: application/json
Conent-Length: 9999

{
"SalesOrder" : "{{SalesOrderID}}",
"MaterialByCustomer" : "Reference Third Item",
"RequestedQuantity" : "30",
"ReferenceSDDocument" : "{{SalesContractID}}",

This is custom documentation. For more information, please visit SAP Help Portal. 129
1/18/25, 8:45 PM
"ReferenceSDDocumentItem" : "10",
"to_Text":[
{ "Language" : "EN",
"LongTextID" : "TX12",
"LongText" : "This should be a deep request"
}]
}

--changeset_21cc-1e7e-0002--

--batch_dca6-74d2-d53f
Content-Type: multipart/mixed; boundary=changeset_21cc-1e7e-0003

--changeset_21cc-1e7e-0003
Content-Type: application/http
Content-Transfer-Encoding: binary

POST A_SalesOrderItem HTTP/1.1


x-csrf-token: {{token}}
Accept-Language: en
Accept: application/json
MaxDataServiceVersion: 2.0
DataServiceVersion: 2.0
Content-Type: application/json
Conent-Length: 9999

{
"SalesOrder" : "{{SalesOrderID}}",
"MaterialByCustomer" : "Reference Fourth Item",
"RequestedQuantity" : "40",
"ReferenceSDDocument" : "{{SalesContractID}}",
"ReferenceSDDocumentItem" : "10",
"to_Text":[
{ "Language" : "EN",
"LongTextID" : "TX12",
"LongText" : "This should be a deep request"
}]
}

--changeset_21cc-1e7e-0003--

--batch_dca6-74d2-d53f
Content-Type: multipart/mixed; boundary=changeset_21cc-1e7e-0004

--changeset_21cc-1e7e-0004
Content-Type: application/http
Content-Transfer-Encoding: binary

POST A_SalesOrderItem HTTP/1.1


x-csrf-token: {{token}}
Accept-Language: en
Accept: application/json
MaxDataServiceVersion: 2.0
DataServiceVersion: 2.0
Content-Type: application/json
Conent-Length: 9999

{
"SalesOrder" : "{{SalesOrderID}}",
"MaterialByCustomer" : "Reference Fifth Item",
"RequestedQuantity" : "50",
"ReferenceSDDocument" : "{{SalesContractID}}",
"ReferenceSDDocumentItem" : "10",
"to_Text":[
{ "Language" : "EN",
"LongTextID" : "TX12",
"LongText" : "This should be a deep request"
}]
}

--changeset_21cc-1e7e-0004--

--batch_dca6-74d2-d53f--

This is custom documentation. For more information, please visit SAP Help Portal. 130
1/18/25, 8:45 PM

Create, Read, or Delete Attachments for Sales Orders


Learn how to create, read, or delete documents that are attached to sales orders when you process sales order with APIs.

You can use the Attachments API (API_CV_ATTACHMENT_SRV) to create new attachments for existing sales orders, or delete
existing attachments.

If you want to create an attachment, you first create the sales order, and then, in a second step, you attach the relevant document.

You must include the following properties that are specific for sales orders:

Property Value

MimeType MIME type of the document that you want to attach. You can find a
list of the supported values here: MIME Types Supported by
Attachment Service.

BusinessObjectTypeName BUS2032 (sales order)

LinkedSAPObjectKey The ID of your sales order

If you want to delete an attachment, you must also include the following property that is specific for sales orders:

Property Value

DocumentInfoRecordDocType GOS

Sample Code

To create an attachment in JPEG format (file name Sample code for attachments.jpg) for sales order 50214, you can use
the following code:

 Code Syntax
Content-Type:image/jpeg
Slug:Sample code for attachments.jpg
BusinessObjectTypeName:BUS2032
LinkedSAPObjectKey:00000{{50214}}
x-csrf-token:{{token}}

Related Information
Attachments

Extensibility: Sales Order (A2X, OData V2)


Learn how a key user can extend the Sales Order (A2X, OData V2) API.

As a key user, you can extend the OData service API_SALES_ORDER_SRV according to your business needs.

Features

This is custom documentation. For more information, please visit SAP Help Portal. 131
1/18/25, 8:45 PM
In the Custom Fields app, you can add custom fields using the following business contexts:

Service Entity Business Context

A_SalesOrder (header) Sales: Sales Document

A_SalesOrderItem (item) Sales: Sales Document Item

Related Information
Key User Extensibility
Custom Fields

Sales Order - Simulate (A2X, OData V2)


The Sales Order - Simulate (A2X, OData V2) API allows you to simulate the creation of sales orders.

Technical name: API_SALES_ORDER_SIMULATION_SRV

With this synchronous inbound OData service, you can simulate the creation of a sales order. This gives you information about
pricing, material availability, and the customer's credit limit. The response is provided synchronously. The simulated sales order is
not saved.

Add the following associations to your request to retrieve specific information:

to_Pricing

To trigger the calculation of prices, add this association to the request. If you send the requestion without the association,
you won't get any pricing pricing information.

to_ScheduleLine

To trigger the available-to-promise (ATP) check, add this association to the request on item level. Note that it is sufficient to
add the association to a single item. The check is triggered for the other items automatically.

to_Credit

To trigger the credit limit check, add this association to the request on header level. You must add the empty association to
enable the credit limit check.

This service is published on the SAP Business Accelerator Hub. For more information about APIs, see APIs on SAP Business
Accelerator Hub.

Service Structure
The service metadata file can be retrieved through /sap/opu/odata/SAP/API_SALES_ORDER_SIMULATION_SRV/$metadata

Service Message Header (optional)

The service message header contains information about the service, the involved sender and receiver, as well as date and time.

Service Entities

The entities contain the business data of the service.

This is custom documentation. For more information, please visit SAP Help Portal. 132
1/18/25, 8:45 PM

Service Entity Description Link to details

A_SalesOrderSimulation Sales order header simulation Sales Order Header Simulation

A_SalesOrderPartnerSimulation Sales order partner simulation Header Partner Simulation

A_SalesOrderPrcgElmntSimln Sales order price element simulation Header Pricing Element Simulation

A_SalesOrderItemSimulation Sales order item simulation Sales Order Item Simulation

A_SalesOrderItemPartnerSimln Sales order item partner simulation Item Partner Simulation

A_SalesOrderItmPrcgElmntSimln Sales order item price element simulation Item Pricing Element Simulation

A_SalesOrderScheduleLineSimln Sales order schedule line simulation Item Schedule Line Simulation

A_SalesOrderCreditSimulation Sales order credit simulation Credit Limit Check Simulation

A_SalesOrderPricingSimulation Sales order pricing simulation. To enable Pricing Simulation


price calculation, you must include an
empty association in the request

Note that for technical reasons, only 20 messages that don't lead to an abortion (that is, success messages, info messages, and
warnings) can be transmitted. If there are more messages, the last of those 20 messages will let you know that additional
messages exist.

Required Communication Scenario

To use this service, you have to configure the following communication scenario: SAP_COM_0109.

Constraints
With this service, it is not possible to:

Process sales orders with sales order processing type P (sales orders for project-based services (PBS))

Process sales orders with SD document category I (sales order without charge)

Create or process multiple sales orders in a single change set of a $batch OData request

For more information about $batch requests, see $batch Processing.

Related Events
Sales Order Events

Additional Information

Sales Order - Simulate (A2X)

 Note
For more details about Communication Management, see Communication Management.

This is custom documentation. For more information, please visit SAP Help Portal. 133
1/18/25, 8:45 PM

Sales Order Header Simulation


Technical name: A_SalesOrderSimulation

This entity contains the data that correspond to the sales order header data. It's designed to be used when creating a sales order
through the API Sales Order (A2X).

If the request of the simulated sales order is successful, you can use it to create a sales order with the API Sales Order (A2X). In
this case, you must remove the following associations from the request:

to_Pricing

to_Credit

to_ScheduleLine

Properties

Property Description Necessity

DistributionChannel The way in which products or services Optional


reach the customer. Typical examples of
distribution channels are wholesale, retail,
or direct sales.

OrganizationDivision A way of grouping materials, products, or Optional


services. The system uses divisions to
determine the sales areas and the business
areas for a material, product, or service.

SalesOrderType A classification that distinguishes between Mandatory


different types of sales documents

SalesOrganization An organizational unit responsible for the Optional


sale of certain products or services. The
responsibility of a sales organization may
include legal liability for products and
customer claims.

SoldToParty The customer who orders the goods or Mandatory


services. The sold-to party is contractually
responsible for sales orders.

CompleteDeliveryIsDefined Indicates whether a sales order must be Optional


delivered completely in a single delivery or
whether the order can be partially delivered
and completed over a number of deliveries

CustomerPaymentTerms Key for defining payment terms composed Optional


of cash discount percentages and payment
periods

 Note
If you use deep insert requests, the
entities are processed sequentially. That
means, if you provide both the header
and the header partner entity in one
request and you provide a value for this
property, it might be overwritten if it is
determined from the partner master
This is custom documentation. For more information, please visit SAP Help Portal. 134
1/18/25, 8:45 PM

Property Description Necessity

data in the same request when the


header partner entity is processed. To
change the value when you actually
create a sales order, send a separate
Update request.

CustomerPriceGroup A grouping of customers who share the Optional


same pricing requirements

CustomerPurchaseOrderDate The reference date that is shown on the Optional


customer's purchase order. This date can
be, for example, the date on which the
customer created the purchase order.

CustomerPurchaseOrderType The way in which the sales order arrives Optional


from the customer, for example, by
telephone or e-mail

IncotermsClassification Commonly used trading terms that comply Optional


with the standards established by the
International Chamber of Commerce (ICC)

IncotermsLocation1 Provides additional information for the Optional


primary Incoterms

IncotermsLocation2 Provides additional information for the Optional


Incoterms

IncotermsTransferLocation Additional information for the primary Optional


Incoterm

IncotermsVersion Edition containing a list of international Optional


terms for transportation that is defined by
the International Chamber of Commerce
(ICC)

PaymentMethod Specifies how an item is to be paid Optional

PriceListType Identifies a price list or other condition type Optional


(for example, a surcharge or discount)

PricingDate The date that determines date-related Optional


pricing elements, such as conditions and
foreign exchange rate

PurchaseOrderByCustomer Customer reference number that the Optional


customer uses to uniquely identify a
purchasing document (for example, a sales
inquiry or a purchase order)

RequestedDeliveryDate The date that the system automatically Optional


suggests as the delivery date for schedule
lines when you create further items in the
sales order

SalesDistrict A geographical sales district or region Optional

SalesGroup A group of sales people who are responsible Optional


for processing sales of certain products or

This is custom documentation. For more information, please visit SAP Help Portal. 135
1/18/25, 8:45 PM

Property Description Necessity

services

SalesOffice A physical location (for example, a branch Optional


office) that has responsibility for the sale of
certain products or services within a given
geographical area

SalesOrderDate The date on which you want the sales order Optional
to become effective for sales management
purposes

SDDocumentReason Indicates the reason for creating the sales Optional


order

ShippingCondition General shipping strategy for the delivery of Optional


goods from the supplier to the customer

ShippingType Shipping type (for example, by road or rail) Optional


that has been selected for the
transportation of the goods for the
shipment legs

TransactionCurrency The currency that applies to the sales order Optional

SalesOrder (key) Specifies the sales order ID Read-only

AccountingDocExternalReference The reference document number contains Optional


the document number with the business
partner. It serves as a search criterion when
displaying or changing documents.

CustomerAccountAssignmentGroup The account assignment group to which the Optional


system automatically posts the sales
document. The system uses the account
assignment group as one of the criteria
during the automatic determination of
revenue accounts.

CustomerTaxClassification1 The alternative tax classification indicates Optional


whether the system takes account of
customer-specific taxes for pricing (such as
value-added tax). The system copies the tax
classification from the tax information
stored in the customer master record of the
goods recipient. During pricing, the system
uses the tax classification and the country
or region key (which identifies the customer
location) to determine the relevant taxes.
You can enter a different (alternative) tax
classification in the order.

CustomerTaxClassification2 The alternative tax classification indicates Optional


whether the system takes account of
customer-specific taxes for pricing (such as
value-added tax). The system copies the tax
classification from the tax information
stored in the customer master record of the
goods recipient. During pricing, the system
uses the tax classification and the country
This is custom documentation. For more information, please visit SAP Help Portal. 136
1/18/25, 8:45 PM

Property Description Necessity

or region key (which identifies the customer


location) to determine the relevant taxes.
You can enter a different (alternative) tax
classification in the order.

CustomerTaxClassification3 The alternative tax classification indicates Optional


whether the system takes account of
customer-specific taxes for pricing (such as
value-added tax). The system copies the tax
classification from the tax information
stored in the customer master record of the
goods recipient. During pricing, the system
uses the tax classification and the country
or region key (which identifies the customer
location) to determine the relevant taxes.
You can enter a different (alternative) tax
classification in the order.

CustomerTaxClassification4 The alternative tax classification indicates Optional


whether the system takes account of
customer-specific taxes for pricing (such as
value-added tax). The system copies the tax
classification from the tax information
stored in the customer master record of the
goods recipient. During pricing, the system
uses the tax classification and the country
or region key (which identifies the customer
location) to determine the relevant taxes.
You can enter a different (alternative) tax
classification in the order.

CustomerTaxClassification5 The alternative tax classification indicates Optional


whether the system takes account of
customer-specific taxes for pricing (such as
value-added tax). The system copies the tax
classification from the tax information
stored in the customer master record of the
goods recipient. During pricing, the system
uses the tax classification and the country
or region key (which identifies the customer
location) to determine the relevant taxes.
You can enter a different (alternative) tax
classification in the order.

CustomerTaxClassification6 The alternative tax classification indicates Optional


whether the system takes account of
customer-specific taxes for pricing (such as
value-added tax). The system copies the tax
classification from the tax information
stored in the customer master record of the
goods recipient. During pricing, the system
uses the tax classification and the country
or region key (which identifies the customer
location) to determine the relevant taxes.
You can enter a different (alternative) tax
classification in the order.

This is custom documentation. For more information, please visit SAP Help Portal. 137
1/18/25, 8:45 PM

Property Description Necessity

CustomerTaxClassification7 The alternative tax classification indicates Optional


whether the system takes account of
customer-specific taxes for pricing (such as
value-added tax). The system copies the tax
classification from the tax information
stored in the customer master record of the
goods recipient. During pricing, the system
uses the tax classification and the country
or region key (which identifies the customer
location) to determine the relevant taxes.
You can enter a different (alternative) tax
classification in the order.

CustomerTaxClassification8 The alternative tax classification indicates Optional


whether the system takes account of
customer-specific taxes for pricing (such as
value-added tax). The system copies the tax
classification from the tax information
stored in the customer master record of the
goods recipient. During pricing, the system
uses the tax classification and the country
or region key (which identifies the customer
location) to determine the relevant taxes.
You can enter a different (alternative) tax
classification in the order.

CustomerTaxClassification9 The alternative tax classification indicates Optional


whether the system takes account of
customer-specific taxes for pricing (such as
value-added tax). The system copies the tax
classification from the tax information
stored in the customer master record of the
goods recipient. During pricing, the system
uses the tax classification and the country
or region key (which identifies the customer
location) to determine the relevant taxes.
You can enter a different (alternative) tax
classification in the order.

ReferenceSDDocument Specifies the document to which the sales Optional


order refers (a preceding document, such
as a sales quotation)

For more information, see Simulate


Creation of Sales Order with Reference

CustomerGroup Identifies a particular group of customers Optional


(for example, wholesale or retail) for the
purpose of pricing or generating statistics

AdditionalCustomerGroup1 Specifies a customer-defined group of Optional


customers. You can define up to five
different groups of customers, according to
the needs of your organization.

AdditionalCustomerGroup2 Specifies a customer-defined group of Optional


customers. You can define up to five

This is custom documentation. For more information, please visit SAP Help Portal. 138
1/18/25, 8:45 PM

Property Description Necessity

different groups of customers, according to


the needs of your organization.

AdditionalCustomerGroup3 Specifies a customer-defined group of Optional


customers. You can define up to five
different groups of customers, according to
the needs of your organization.

AdditionalCustomerGroup4 Specifies a customer-defined group of Optional


customers. You can define up to five
different groups of customers, according to
the needs of your organization.

AdditionalCustomerGroup5 Specifies a customer-defined group of Optional


customers. You can define up to five
different groups of customers, according to
the needs of your organization.

TaxDepartureCountry For tax determination, the country or region Optional


of departure is used as the plant country or
region

VATRegistrationCountry For tax determination, the country or region Optional


of the ship-to party is used as the tax
country or region of destination.

Related Information
Simulate Creation of Sales Order
Simulate Creation of Sales Order with Reference
Simulate ATP

Header Partner Simulation


Technical name: A_SalesOrderPartnerSimulation

With this entity you can change the automatically derived partners for the simulation. For example, you can change the ship-to
party. If you enter the association empty, the derived partners are used for the simulation and returned in the service response.

For more information about partners, see Customer and Business Partner.

Properties

Property Description Necessity

PartnerFunction (key) The abbreviated form of the name that Mandatory


identifies the partner function. The ship-to
party in your system could be abbreviated,
for example, to SH.

 Note
You cannot use this property to provide
the sold-to party. The sold-to party is

This is custom documentation. For more information, please visit SAP Help Portal. 139
1/18/25, 8:45 PM

Property Description Necessity

determined from the


A_SalesOrderSimulation entity.

PartnerFunctionInternalCode The abbreviated form of the name that Read-only


identifies the partner function in a
language-independent format used in the
database. The ship-to party, for example, is
identified as WE.

ContactPerson The number that uniquely identifies the Depending on the partner function chosen,
contact person the corresponding parameter (one of the
four listed) is mandatory
Customer An alphanumeric key that uniquely
identifies the customer or supplier

Personnel The number that uniquely identifies an


employee. See also the
WorkAssignmentExternalID property.

Supplier An alphanumeric key that uniquely


identifies the supplier

WorkAssignmentExternalID Alternative way to provide the number that Optional


uniquely identifies an employee in an
external system instead of using the
Personnel property.

If you provide this property, note that you


must not provide any of the following
properties:

ContactPerson

Customer

Personnel

Supplier

SalesOrder (key) Specifies the sales order ID Optional

VATRegistration Specifies the VAT registration number of Optional


the customer, supplier, or your company
Only relevant for ship-to parties (partner
code
function SH)

Header Pricing Element Simulation


Technical name: A_SalesOrderPrcgElmntSimln

This entity contains the price elements. If this entity is included in the request and you want to retrieve the price elements, you
must provide at least an empty entity set in the request. This empty set does not influence the pricing result but will provide all
price elements in the service response.

Additionally, if you need the price elements in the response, you must generally enable pricing by adding the association to the
A_SalesOrderPricingSimulation entity. Note that the association can be empty.

This is custom documentation. For more information, please visit SAP Help Portal. 140
1/18/25, 8:45 PM

Properties

Property Description Necessity

ConditionType The key that uniquely identifies the Mandatory


condition

ConditionCurrency The currency key for amounts in the system Optional

ConditionQuantity The quantity on which the amount or Optional


percentage is based. The quantity is
expressed in sales units (for example,
bottles).

ConditionQuantityUnit The quantity unit to which the condition Optional


amount or percentage refers. You can use
either the language-dependent unit code,
the ISO code, the SAP code (the format
found in the database without conversions).

ConditionQuantitySAPUnit The quantity unit to which the condition Optional


amount or percentage refers. You can use
either the language-dependent unit code,
the ISO code, the SAP code (the format
found in the database without conversions).

ConditionQuantityISOUnit The quantity unit to which the condition Optional


amount or percentage refers. You can use
either the language-dependent unit code,
the ISO code, the SAP code (the format
found in the database without conversions).

ConditionRateValue Determines how the system calculates Optional


pricing using this condition. Depending on
the condition type, the rate can be an
amount or a percentage. If the condition
includes a pricing scale, the rate displays
the first line of the scale.

ConditionAmount The value, resulting from pricing, for a Read-only


particular condition, total, or subtotal in a
sales order

ConditionInactiveReason Indicates whether the condition is active Read-only

ConditionIsForStatistics Indicates whether a surcharge or discount Read-only


is to be set in the sales order statistically
(that is, without altering the value)

ConditionIsManuallyChanged Indicates whether the condition has been Read-only


manually or automatically changed or
created (by entry on the condition screen)

PricingProcedureCounter (key) Access number of the conditions within a Read-only


step in the pricing procedure

PricingProcedureStep (key) Number that determines the sequence of Read-only


the condition within a procedure

TransactionCurrency The currency that applies to the sales order Read-only

This is custom documentation. For more information, please visit SAP Help Portal. 141
1/18/25, 8:45 PM

Property Description Necessity

SalesOrder (key) Specifies the sales order ID Read-only

ConditionCalculationType Determines how the system calculates Read-only


prices, discounts, or surcharges in a
condition

ConditionBaseValue Defines the value in a sales order that the Read-only


system uses together with the condition
amount to calculate the condition value for
the price condition

IsGroupCondition Indicates whether the system calculates the Read-only


scale base value or the condition value
taking all related items of the sales order
into account

PriceConditionDeterminationDte Gives the date for which this condition is Read-only


calculated. Which date is used here is
controlled by the condition category.

ConditionClass Preliminary structuring of condition types, Read-only


for example, in surcharges and discounts or
prices

ConditionOrigin Indicates where the condition originated Read-only


(for example, whether you entered the
condition manually or whether the system
determined it automatically)

PricingScaleBasis Determines how the system interprets a Read-only


pricing scale in a condition. For example,
the scale can be based on quantity, weight,
or volume.

ConditionScaleBasisValue A value or quantity that the system uses to Read-only


access a pricing scale to determine a scale
level. The scale base value can be a
condition value or the value of a quantity,
weight, and so on that has been entered in
the document.

Sales Order Item Simulation


Technical name: A_SalesOrderItemSimulation

This entity contains the data that corresponds to the sales order item data, for example, for the material. If you enabled the pricing
information, the pricing-relevant fields are populated. Otherwise they remain empty in the response.

Properties

Property Description Necessity

Material Alphanumeric key uniquely identifying the Mandatory


material

This is custom documentation. For more information, please visit SAP Help Portal. 142
1/18/25, 8:45 PM

Property Description Necessity

Batch Assigns a material that is manufactured in Optional


batches or production lots to a specific
batch

CustomerPaymentTerms Key for defining payment terms composed Optional


of cash discount percentages and payment
periods

DeliveryGroup A combination of items that should be Optional


delivered together

DeliveryPriority The delivery priority assigned to an item Optional

HigherLevelItem The number of the higher-level item to Optional


which this item belongs in a hierarchy

IncotermsClassification Commonly used trading terms that comply Optional


with the standards established by the
International Chamber of Commerce (ICC)

IncotermsLocation1 Provides additional information for the Optional


primary Incoterm

IncotermsLocation2 Provides additional information for the Optional


Incoterms

IncotermsTransferLocation Provides additional information for the Optional


primary Incoterm

MaterialByCustomer Uniquely identifies the material from the Optional


customer's point of view

MaterialGroup Key that you use to group together several Optional


materials or services with the same
attributes, and to assign them to a
particular material group

MaterialPricingGroup A way of grouping materials to which you Optional


want to apply the same condition

PricingDate The date that determines date-related Optional


pricing elements, such as conditions and
foreign exchange rate

PricingReferenceMaterial Material master record that the system Optional


uses as a reference for pricing purposes

Plant Key that uniquely identifies a plant Optional

ProductTaxClassification1 Specifies the tax classification for the Optional


material

ProductTaxClassification2 Specifies the tax classification for the Optional


material

ProductTaxClassification3 Specifies the tax classification for the Optional


material

This is custom documentation. For more information, please visit SAP Help Portal. 143
1/18/25, 8:45 PM

Property Description Necessity

ProductTaxClassification4 Specifies the tax classification for the Optional


material

ProductTaxClassification5 Specifies the tax classification for the Optional


material

ProductTaxClassification6 Specifies the tax classification for the Optional


material

ProductTaxClassification7 Specifies the tax classification for the Optional


material

ProductTaxClassification8 Specifies the tax classification for the Optional


material

ProductTaxClassification9 Specifies the tax classification for the Optional


material

PurchaseOrderByCustomer Customer reference number that the Optional


customer uses to uniquely identify a
purchasing document (for example, a sales
inquiry or a purchase order)

RequestedQuantity The number or volume of materials Optional


specified in an item

RequestedQuantityUnit Unit in which the requested quantity is Optional


specified. You can use either the language-
dependent unit code, the ISO code, the SAP
code (the format found in the database
without conversions).

RequestedQuantitySAPUnit Unit in which the requested quantity is Optional


specified. You can use either the language-
dependent unit code, the ISO code, the SAP
code (the format found in the database
without conversions).

RequestedQuantityISOUnit Unit in which the requested quantity is Optional


specified. You can use either the language-
dependent unit code, the ISO code, the SAP
code (the format found in the database
without conversions).

SalesDocumentRjcnReason The reason for rejecting a sales order Optional

SalesOrderItem (key) Specifies the sales order item number Optional

SalesOrderItemCategory A classification that distinguishes between Optional


different types of item (for example, free of
charge items and text items) and
determines how the system processes the
item

SalesOrderItemText A short description of the item Optional

ShippingPoint The physical location (for example, a Optional


warehouse or collection of loading ramps)
from which you ship the item

This is custom documentation. For more information, please visit SAP Help Portal. 144
1/18/25, 8:45 PM

Property Description Necessity

ShippingType Shipping type (for example, by road or rail) Optional


that has been selected for the
transportation of the goods for the
shipment legs

StorageLocation Number of the storage location in which the Optional


material is stored. A plant may contain one
or more storage locations.

NetAmount The net value of the item, after any Read-only


discounts and surcharges are taken into
account. Sales taxes are not included. The
value is expressed in the document
currency.

SalesOrder (key) Specifies the sales order ID Read-only

TransactionCurrency The currency that applies to the sales order Read-only

TaxAmount Tax amount in document currency Read-only

CostAmount Cost in document currency Read-only

Subtotal1Amount Subtotal 1 from pricing procedure for Read-only


condition

Subtotal2Amount Subtotal 2 from pricing procedure for Read-only


condition

Subtotal3Amount Subtotal 3 from pricing procedure for Read-only


condition

Subtotal4Amount Subtotal 4 from pricing procedure for Read-only


condition

Subtotal5Amount Subtotal 5 from pricing procedure for Read-only


condition

Subtotal6Amount Subtotal 6 from pricing procedure for Read-only


condition

ConfdDelivQtyInOrderQtyUnit The cumulative item quantity that the Read-only


system confirms for delivery after checking
the availability of inventory. The quantity is
expressed in sales units.

ItemGrossWeight The total gross weight of the item. The Read-only


gross weight represents the net weight plus
the weight of packaging.

ItemNetWeight The total net weight for the item. The net Read-only
weight represents the gross weight less the
weight of packaging.

ItemVolume The total volume for the item Read-only

HigherLevelItemUsage ID for higher-level item usage Read-only

MaterialSubstitutionReason Specifies the reason why the system Read-only


automatically carried out material
This is custom documentation. For more information, please visit SAP Help Portal. 145
1/18/25, 8:45 PM

Property Description Necessity

substitution

ReferenceSDDocument Specifies the document to which the sales Optional


order refers (a preceding document, such
as a sales quotation)

For more information, see Simulate


Creation of Sales Order with Reference

ReferenceSDDocumentItem Specifies the number of the sales Optional


document item to which the sales order
item refers

For more information, see Simulate


Creation of Sales Order with Reference

OriginallyRequestedMaterial Specifies the product that was originally Read-only


requested by the customer, if the product
was substituted by another one

Item Partner Simulation


Technical name: A_SalesOrderItemPartnerSimln

This entity contains all partner-relevant data for the corresponding item if there are deviating partners maintained for the item.

You must only provide an empty entity set for one item. This enables returning the deviating partners for all items implicitly. Please
keep in mind that returning partner data for a high amount of items will increase the run time of the simulation.

For more information about partners, see Customer and Business Partner.

Properties

Property Description Necessity

PartnerFunction (key) The abbreviated form of the name that Mandatory


identifies the partner function. The ship-to
party in your system could be abbreviated,
for example, to SH.

PartnerFunctionInternalCode The abbreviated form of the name that Read-only


identifies the partner function in a
language-independent format used in the
database. The ship-to party, for example, is
identified as WE.

ContactPerson The number that uniquely identifies the Depending on the partner function chosen,
contact person the corresponding parameter (one of the
four listed) is mandatory
Customer An alphanumeric key that uniquely
identifies the customer or supplier

Personnel The number that uniquely identifies an


employee. See also the
WorkAssignmentExternalID property.

This is custom documentation. For more information, please visit SAP Help Portal. 146
1/18/25, 8:45 PM

Property Description Necessity

Supplier An alphanumeric key that uniquely


identifies the supplier

WorkAssignmentExternalID Alternative way to provide the number that Optional


uniquely identifies an employee in an
external system instead of using the
Personnel property.

If you provide this property, note that you


must not provide any of the following
properties:

ContactPerson

Customer

Personnel

Supplier

SalesOrder (key) Specifies the sales order ID Optional

VATRegistration Specifies the VAT registration number of Optional


the customer, supplier, or your company
Only relevant for ship-to parties (partner
code
function SH)

SalesOrderItem (key) Specifies the sales order item number Read-only

Item Pricing Element Simulation


Technical name: A_SalesOrderItmPrcgElmntSimln

This entity includes detailed pricing information on the item level of a sales order. If you do not want the detailed pricing
information, you must not include this association. In this case, the pricing information is not retrieved, which reduces the service
run time.

You must provide an empty entity set for only one item. This enables returning the pricing information for all items implicitly.

Properties

Property Description Necessity

ConditionType The key that uniquely identifies the Mandatory


condition

ConditionCurrency The currency key for amounts in the system Optional

ConditionQuantity The quantity on which the amount or Optional


percentage is based. The quantity is
expressed in sales units (for example,
bottles).

ConditionQuantityUnit The quantity unit to which the condition Optional


amount or percentage refers. You can use
either the language-dependent unit code,
This is custom documentation. For more information, please visit SAP Help Portal. 147
1/18/25, 8:45 PM

Property Description Necessity

the ISO code, the SAP code (the format


found in the database without conversions).

ConditionQuantitySAPUnit The quantity unit to which the condition Optional


amount or percentage refers. You can use
either the language-dependent unit code,
the ISO code, the SAP code (the format
found in the database without conversions).

ConditionQuantityISOUnit The quantity unit to which the condition Optional


amount or percentage refers. You can use
either the language-dependent unit code,
the ISO code, the SAP code (the format
found in the database without conversions).

ConditionRateValue Determines how the system calculates Optional


pricing using this condition. Depending on
the condition type, the rate can be an
amount or a percentage. If the condition
includes a pricing scale, the rate displays
the first line of the scale.

ConditionAmount The value, resulting from pricing, for a Read-only


particular condition, total, or subtotal in a
sales order

ConditionInactiveReason Indicates whether the condition is active Read-only

ConditionIsForStatistics Indicates whether a surcharge or discount Read-only


is to be set in the sales order statistically
(that is, without altering the value)

ConditionIsManuallyChanged Indicates whether the condition has been Read-only


manually or automatically changed or
created (by entry on the condition screen)

PricingProcedureCounter (key) Access number of the conditions within a Read-only


step in the pricing procedure

PricingProcedureStep (key) Number that determines the sequence of Read-only


the condition within a procedure

TransactionCurrency The currency that applies to the sales order Read-only

SalesOrder (key) Specifies the sales order ID Read-only

SalesOrderItem (key) Specifies the sales order item number Read-only

ConditionCalculationType Determines how the system calculates Read-only


prices, discounts, or surcharges in a
condition

ConditionBaseValue Defines the value in a sales order that the Read-only


system uses together with the condition
amount to calculate the condition value for
the price condition

IsGroupCondition Indicates whether the system calculates the Read-only


scale base value or the condition value

This is custom documentation. For more information, please visit SAP Help Portal. 148
1/18/25, 8:45 PM

Property Description Necessity

taking all related items of the sales order


into account

PriceConditionDeterminationDte Gives the date for which this condition is Read-only


calculated. Which date is used here is
controlled by the condition category.

ConditionClass Preliminary structuring of condition types, Read-only


for example, in surcharges and discounts or
prices

ConditionOrigin Indicates where the condition originated Read-only


(for example, whether you entered the
condition manually or whether the system
determined it automatically)

PricingScaleBasis Determines how the system interprets a Read-only


pricing scale in a condition. For example,
the scale can be based on quantity, weight,
or volume.

ConditionScaleBasisValue A value or quantity that the system uses to Read-only


access a pricing scale to determine a scale
level. The scale base value can be a
condition value or the value of a quantity,
weight, and so on that has been entered in
the document.

Item Schedule Line Simulation


Technical name: A_SalesOrderScheduleLineSimln

This entity contains information about the schedule line and only contains read-only fields. Thus, adding the association to the
request enables the availability check and returns all schedule lines for all items including the requested and confirmed dates (if
available).

Properties

Property Description Necessity

SalesOrder (key) Specifies the sales order ID Read-only

SalesOrderItem (key) Specifies the sales order item number Read-only

ScheduleLine (key) Specifies the Schedule Line ID Read-only

RequestedDeliveryDate The date that the system automatically Optional


suggests as the delivery date for schedule
lines when you create further items in the
sales order

ConfirmedDeliveryDate Confirmed delivery date Optional

OrderQuantityUnit The unit of measure in which the material is Read-only


sold. You can use either the language-

This is custom documentation. For more information, please visit SAP Help Portal. 149
1/18/25, 8:45 PM

Property Description Necessity

dependent unit code, the ISO code, the SAP


code (the format found in the database
without conversions).

OrderQuantitySAPUnit The unit of measure in which the material is Read-only


sold. You can use either the language-
dependent unit code, the ISO code, the SAP
code (the format found in the database
without conversions).

OrderQuantityISOUnit The unit of measure in which the material is Read-only


sold. You can use either the language-
dependent unit code, the ISO code, the SAP
code (the format found in the database
without conversions).

ScheduleLineOrderQuantity Order quantity of schedule line Optional

ConfdOrderQtyByMatlAvailCheck The item quantity that the system confirms Read-only


for shipping after checking inventory
availability

OpenConfdDelivQtyInOrdQtyUnit Open confirmed delivery quantity Read-only

CorrectedQtyInOrderQtyUnit Corrected quantity in order quantity unit Optional

Credit Limit Check Simulation


Technical name: A_SalesOrderCreditSimulation

This entity enables the credit limit check. An empty response indicates that the credit limit check did not set a block for the sales
order. Even though the entity only contains read-only fields, you must include the following associations in the request:

to_Credit

This association enables the credit limit check itself.

to_Pricing

This association is necessary because the credit limit check is performed based on the price.

to_ScheduleLine

This association is necessary because the credit limit check is performed based on the confirmed quantity.

If the associations are not included in the request, the check is skipped, which can reduce the runtime of the service.

For a credit limit check, the TotalNetAmount of the sales order is necessary. Therefore, if you enable the credit limit check, the
pricing simulation is enabled implicitly.

Properties

Property Description Necessity

SalesOrder (key) Specifies the sales order ID Read-only

This is custom documentation. For more information, please visit SAP Help Portal. 150
1/18/25, 8:45 PM

Property Description Necessity

TotalCreditCheckStatus Specifies the overall status of credit checks Read-only

Related Information
Simulate Credit Limit Check

Pricing Simulation
Technical name: A_SalesOrderPricingSimulation

This entity provides information about the pricing-relevant data, such as the TotalNetAmount and the
TransactionCurrency, as the response. You can use the property TransactionCurrency to simulate a specific document
currency.

The association to_Pricing is mandatory if you want to to run pricing as part of the simulation. Even if the transaction currency
is not provided, an empty association in the request is necessary, otherwise pricing is not run and no TotalNetAmount is
returned. This entity controls whether the value fields on item level, for example Condition Value, are populated and any other
pricing feature, such as free goods, is executed.

Properties

Property Description Necessity

SalesOrder (key) Specifies the sales order ID Read-only

TotalNetAmount The total value of all items in the sales Read-only


order, after any discounts and surcharges
are taken into account. The value is
expressed in the document currency.

TransactionCurrency The currency that applies to the sales order Optional

Related Information
Simulate Pricing

Examples for Sales Order - Simulate (A2X, OData V2)


The Sales Order - Simulate (A2X, OData V2) API offers the following simulated create operations:

Operation HTTP Sample URL


Method

Simulate POST To simulate the creation of a new sales order, use the following URL:
the
creation of POST <host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrderSimulation
sales
orders

This is custom documentation. For more information, please visit SAP Help Portal. 151
1/18/25, 8:45 PM

Operation HTTP Sample URL


Method

Example:

Simulate
Creation of
Sales
Order

Simulate a POST To simulate the creation of a new sales order, use the following URL:
credit limit
check for a POST <host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrderSimulation
sales order

Example:

Simulate
Credit
Limit
Check

Simulate POST To simulate the creation of a new sales order, use the following URL:
pricing for
a sales POST <host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrderSimulation
order

Example:

Simulate
Pricing

Simulate POST To simulate the creation of a new sales order, use the following URL:
an
available- POST <host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrderSimulation
to-promise
(ATP)
check for a
sales order

Example:

Simulate
ATP

 Note
You can also simulate the creation of any other entities of the API which are not listed above.

Change Sets
You can only simulate the creation of a single sales order per changeset of a $batch OData request.

For more information about $batch requests, see $batch Processing.

Simulate Creation of Sales Order


To simulate the creation a new sales order, you use the POST HTTP method and the A_SalesOrderSimulation entity.

This is custom documentation. For more information, please visit SAP Help Portal. 152
1/18/25, 8:45 PM

Request

You can include the properties listed under Sales Order Header in the payload of the request.

Response

The operation returns all the properties of the A_SalesOrderSimulation entity.

Example

Request

POST <host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrderSimulation
X-CSRF-Token: abc
Content-Type: application/json
Accept: application/json

{
"SalesOrderType": "OR",
"SalesOrganization": "1010",
"DistributionChannel": "10",
"OrganizationDivision": "00",
"SoldToParty": "10100001",
"PurchaseOrderByCustomer": "Simulated via OData API",
"CustomerPaymentTerms": "",
"to_Item": [
{
"SalesOrderItem": "10",
"HigherLevelItem": "0",
"SalesOrderItemCategory": "TAN",
"PurchaseOrderByCustomer": "Simulated via OData API",
"Material": "TG11",
"RequestedQuantity": "1.000",
"DeliveryPriority": "2",
"to_ScheduleLine": [],
"to_Partner": [
{
"PartnerFunction": "SH",
"Customer": "10100002"
}
],
"to_PricingElement": []
}
],
"to_Pricing": {},
"to_PricingElement": [
{
"ConditionType": "DRN1",
"ConditionRateValue": "5"
}
],
"to_Partner": [],
"to_Credit": {}
}

 Note
Any properties whose values are determined automatically (for example, based on configuration settings or master data)
cannot be cleared in Create requests. If you provide an empty property, it is ignored. In the above example, this would be true
for the CustomerPaymentTerms property.

To clear these properties, send an Update request after the Create request.

This is custom documentation. For more information, please visit SAP Help Portal. 153
1/18/25, 8:45 PM

Simulate Creation of Sales Order with Reference


Simulate the creation of a sales order with reference to another sales document.

You can simulate either the creation of an independent sales order or the creation of a sales order with reference to a preceding
document (for example, a sales order with reference to a sales quotation). When you simulate the creation of a sales order with
reference, the relevant data from the preceding document is copied into the new document (including any custom fields).

In this service, you can use the following fields for simulating the creation of sales orders with reference to a preceding document:

ReferenceSDDocument (in A_SalesOrderSimulation)

ReferenceSDDocument (in A_SalesOrderItemSimulation)

ReferenceSDDocumentItem (in A_SalesOrderItemSimulation)

 Caution
To improve performance, the system only checks if the properties that are included in requests can be changed in a technical
sense. When you simulate the creation of a sales order, all values are copied from the reference document. You cannot change
any of these values, with the exception of the requested quantity (RequestedQuantity). If you do provide a value for another
property (for example, the material), this value is overwritten with the value from the reference document.

Supported Use Cases

Depending on your use case, you need to include specific fields in your payload. The following examples illustrate the supported
use cases.

You simulate copying all the items from the reference document, keeping the quantity unchanged.

Your reference document, sales quotation 20000011, has two items:

10 with material 1, quantity 1

20 with material 2, quantity 1

JSON

{
"SalesOrderType" : "OR",
"ReferenceSDDocument" : "20000011",
"to_Item":[
{
"ReferenceSDDocument" : "20000011",
"ReferenceSDDocumentItem" : "10"
},
{
"ReferenceSDDocument" : "20000011",
"ReferenceSDDocumentItem" : "20"
}
]
}

XML

<entry xml:base="<URL>"
xmlns="http://www.w3.org/2005/Atom"
xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"

This is custom documentation. For more information, please visit SAP Help Portal. 154
1/18/25, 8:45 PM
xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices">
<content type="application/xml">
<m:properties>
<d:SalesOrderType>OR</d:SalesOrderType>
<d:ReferenceSDDocument>20000011</d:ReferenceSDDocument>
</m:properties>
</content>
<link href="A_SalesOrderSimulation"
rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/to_Item"
type="application/atom+xml;type=feed"
title="to_Item">
<m:inline>
<feed xml:base="<URL>">
<entry>
<content type="application/xml">
<m:properties>
<d:ReferenceSDDocument>20000011</d:ReferenceSDDocument>
<d:ReferenceSDDocumentItem>10</d:ReferenceSDDocumentItem>
</m:properties>
</content>
</entry>
<entry>
<content type="application/xml">
<m:properties>
<d:ReferenceSDDocument>20000011</d:ReferenceSDDocument>
<d:ReferenceSDDocumentItem>20</d:ReferenceSDDocumentItem>
</m:properties>
</content>
</entry>
</feed>
</m:inline>
</link>
</entry>

For every item that you want to copy, you include both ReferenceSDDocument and ReferenceSDDocumentItem.

You don't include quantities that are copied unchanged.

You simulate copying some items from the reference document, partially changing the quantity.

Your reference document, sales quotation 20000011, has three items:

10 with material 1, quantity 10

20 with material 2, quantity 20

30 with material 3, quantity 10

JSON

{
"SalesOrderType" : "OR",
"ReferenceSDDocument" : "20000011",
"to_Item":[
{
"ReferenceSDDocument" : "20000011",
"ReferenceSDDocumentItem" : "10"
},
{
"ReferenceSDDocument" : "20000011",
"ReferenceSDDocumentItem" : "30",
"RequestedQuantity" : "2"
}
]
}

XML

This is custom documentation. For more information, please visit SAP Help Portal. 155
1/18/25, 8:45 PM

<entry xml:base="<URL>"
xmlns="http://www.w3.org/2005/Atom"
xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices">
<content type="application/xml">
<m:properties>
<d:SalesOrderType>OR</d:SalesOrderType>
<d:ReferenceSDDocument>20000011</d:ReferenceSDDocument>
</m:properties>
</content>
<link href="A_SalesOrderSimulation"
rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/to_Item"
type="application/atom+xml;type=feed"
title="to_Item">
<m:inline>
<feed xml:base="<URL>">
<entry>
<content type="application/xml">
<m:properties>
<d:ReferenceSDDocument>20000011</d:ReferenceSDDocument>
<d:ReferenceSDDocumentItem>10</d:ReferenceSDDocumentItem>
</m:properties>
</content>
</entry>
<entry>
<content type="application/xml">
<m:properties>
<d:ReferenceSDDocument>20000011</d:ReferenceSDDocument>
<d:ReferenceSDDocumentItem>30</d:ReferenceSDDocumentItem>
<d:RequestedQuantity>2</d:RequestedQuantity>
</m:properties>
</content>
</entry>
</feed>
</m:inline>
</link>
</entry>

For every item that you want to copy unchanged, you include both ReferenceSDDocument and
ReferenceSDDocumentItem.

Items that you don't want to copy are not part of the payload.

For every item that you want to copy with a different quantity, you include ReferenceSDDocument,
ReferenceSDDocumentItem, and RequestedQuantity.

You simulate copying items from different reference documents, partially changing the quantity.

Your reference document 1, sales quotation 20000011, has two items:

10 with material 1, quantity 1

20 with material 2, quantity 1

Your reference document 2, sales quotation 20000012, has three items:

10 with material 1, quantity 10

20 with material 2, quantity 20

30 with material 3, quantity 10

JSON

{
"SalesOrderType" : "OR",
This is custom documentation. For more information, please visit SAP Help Portal. 156
1/18/25, 8:45 PM
"ReferenceSDDocument" : "20000011",
"to_Item":[
{
"ReferenceSDDocument" : "20000011",
"ReferenceSDDocumentItem" : "10"
},
{
"ReferenceSDDocument" : "20000012",
"ReferenceSDDocumentItem" : "30",
"RequestedQuantity" : "2"
}
]
}

XML

<entry xml:base="<URL>"
xmlns="http://www.w3.org/2005/Atom"
xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices">
<content type="application/xml">
<m:properties>
<d:SalesOrderType>OR</d:SalesOrderType>
<d:ReferenceSDDocument>20000011</d:ReferenceSDDocument>
</m:properties>
</content>
<link href="A_SalesOrderSimulation"
rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/to_Item"
type="application/atom+xml;type=feed"
title="to_Item">
<m:inline>
<feed xml:base="<URL>">
<entry>
<content type="application/xml">
<m:properties>
<d:ReferenceSDDocument>20000011</d:ReferenceSDDocument>
<d:ReferenceSDDocumentItem>10</d:ReferenceSDDocumentItem>
</m:properties>
</content>
</entry>
<entry>
<content type="application/xml">
<m:properties>
<d:ReferenceSDDocument>20000012</d:ReferenceSDDocument>
<d:ReferenceSDDocumentItem

For every item that you want to copy unchanged, you include both ReferenceSDDocument and
ReferenceSDDocumentItem.

Items from any reference document that you don't want to copy are not part of the payload.

For every item that you want to copy with a different quantity from any reference document, you include
ReferenceSDDocument, ReferenceSDDocumentItem, and RequestedQuantity.

You simulate copying an item from a reference document, changing the quantity, and create an item without
reference.

Your reference document, sales quotation 20000011, has three items:

10 with material 1, quantity 10

20 with material 2, quantity 20

30 with material 3, quantity 10

JSON

This is custom documentation. For more information, please visit SAP Help Portal. 157
1/18/25, 8:45 PM

{
"SalesOrderType" : "OR",
"SalesOrganization" : "0001",
"DistributionChannel" : "01",
"OrganizationDivision" : "01",
"SoldToParty" : "MY_CUST_01",

"to_Item":[
{
"Material" : "MY_MTRL_01",
"RequestedQuantity" : "10"
},
{
"ReferenceSDDocument" : "20000011",
"ReferenceSDDocumentItem" : "30",
"RequestedQuantity" : "2"
}
]
}

XML

<entry xml:base="<URL>"
xmlns="http://www.w3.org/2005/Atom"
xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices">
<content type="application/xml">
<m:properties>
<d:SalesOrderType>OR</d:SalesOrderType>
<d:SalesOrganization>0001</d:SalesOrganization>
<d:DistributionChannel>01</d:DistributionChannel>
<d:OrganizationDivision>01</d:OrganizationDivision>
<d:SoldToParty>MY_CUST_01</d:SoldToParty>
</m:properties>
</content>
<link href="A_SalesOrderSimulation"
rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/to_Item"
type="application/atom+xml;type=feed"
title="to_Item">
<m:inline>
<feed xml:base="<URL>"
<entry>
<content type="application/xml">
<m:properties>
<d:Material>MY_MTRL_01</d:Material>
<d:RequestedQuantity>10</d:RequestedQuantity>
</m:properties>
</content>
</entry>
<entry>
<content type="application/xml">
<m:properties>
<d:ReferenceSDDocument>20000011</d:ReferenceSDDocument>
<d:ReferenceSDDocumentItem>30</d:ReferenceSDDocumentItem>
<d:RequestedQuantity>2</d:RequestedQuantity>
</m:properties>
</content>
</entry>
</feed>
</m:inline>
</link>
</entry>

Items that you don't want to copy are not part of the payload.

For every item that you want to copy with a different quantity, you include ReferenceSDDocument,
ReferenceSDDocumentItemRequestedQuantity.

For every additional item, you include the relevant fields., and

This is custom documentation. For more information, please visit SAP Help Portal. 158
1/18/25, 8:45 PM
You simulate copying an item from the reference document, changing the quantity and the item number, and create
an item without reference with a specific item number.

Your reference document, sales quotation 20000011, has three items:

10 with material 1, quantity 10

20 with material 2, quantity 20

30 with material 3, quantity 10

JSON

,{
"SalesOrderType" : "OR",
"SalesOrganization" : "0001",
"DistributionChannel" : "01",
"OrganizationDivision" : "01",
"SoldToParty" : "MY_CUST_01",

"to_Item":[
{
"SalesOrderItem" : "10",
"Material" : "MY_MTRL_01",
"RequestedQuantity" : "10"
},
{
"ReferenceSDDocument" : "20000011",
"ReferenceSDDocumentItem" : "30",
"RequestedQuantity" : "2",
"SalesOrderItem" : "20"
}
]
}

XML

<entry xml:base="<URL>"
xmlns="http://www.w3.org/2005/Atom"
xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices">
<content type="application/xml">
<m:properties>
<d:SalesOrderType>OR</d:SalesOrderType>
<d:SalesOrganization>0001</d:SalesOrganization>
<d:DistributionChannel>01</d:DistributionChannel>
<d:OrganizationDivision>01</d:OrganizationDivision>
<d:SoldToParty>MY_CUST_01</d:SoldToParty>
</m:properties>
</content>
<link href="A_SalesOrderSimulation"
rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/to_Item"
type="application/atom+xml;type=feed"
title="to_Item">
<m:inline>
<feed xml:base="<URL>">
<entry>
<content type="application/xml">
<m:properties>
<d:SalesOrderItem>10</d:SalesOrderItem>
<d:Material>MY_MTRL_01</d:Material>
<d:RequestedQuantity>10</d:RequestedQuantity>
</m:properties>
</content>
</entry>
<entry>
<content type="application/xml">
<m:properties>

This is custom documentation. For more information, please visit SAP Help Portal. 159
1/18/25, 8:45 PM
<d:ReferenceSDDocument>20000011</d:ReferenceSDDocument>
<d:ReferenceSDDocumentItem>30</d:ReferenceSDDocumentItem>
<d:RequestedQuantity>2</d:RequestedQuantity>
<d:SalesOrderItem>20</d:SalesOrderItem>
</m:properties>
</content>
</entry>
</feed>
</m:inline>
</link>
</entry>

Items that you don't want to copy are not part of the payload.

For every item that you want to copy with a different quantity and a different item number, you include
ReferenceSDDocument, ReferenceSDDocumentItem, RequestedQuantity, and SalesOrderItem.

For every additional item, you include the relevant fields.

You simulate copying an item from the reference document, changing the quantity and adding a discount.

Your reference document, sales quotation 20000011, has three items:

10 with material 1, quantity 10

20 with material 2, quantity 20

30 with material 3, quantity 10

JSON

{
"SalesOrderType" : "OR",
"ReferenceSDDocument" : "20000011",
"to_Item":[
{
"ReferenceSDDocument" : "20000011",
"ReferenceSDDocumentItem" : "10",
"RequestedQuantity" : "2",
"to_PricingElement" : [
{
"ConditionType" : "RA00",
"ConditionRateValue" : "10"
}
]
}
]
}

XML

<entry xml:base="<Your URL>"


xmlns="http://www.w3.org/2005/Atom"
xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices">
<content type="application/xml">
<m:properties>
<d:SalesOrderType>OR</d:SalesOrderType>
<d:ReferenceSDDocument>20000011</d:ReferenceSDDocument>
</m:properties>
</content>
<link href="A_SalesOrderSimulation"
rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/to_Item"
type="application/atom+xml;type=feed"
title="to_Item">
<m:inline>

This is custom documentation. For more information, please visit SAP Help Portal. 160
1/18/25, 8:45 PM
<feed xml:base="<URL>">
<entry>
<content type="a pplication/xml">
<m:properties>
<d:ReferenceSDDocument>20000011</d:ReferenceSDDocument>
<d:ReferenceSDDocumentItem>10</d:ReferenceSDDocumentItem>
<d:RequestedQuantity>2</d:RequestedQuantity>
</m:properties>
</content>
</entry>
<link href="A_SalesOrderItemSimulation"
rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/to_PricingElement"
type="application/atom+xml;type=feed"
title="to_PricingElement">
<m:inline>
<feed xml:base="<URL>">
<entry>
<content type="application/xml">
<m:properties>
<d:ConditionType>RA00</d:ConditionType>
<d:ConditionRateValue>10</d:ConditionRateValue>
</m:properties>
</content>
</entry>
</feed>
</m:inline>
</link>
</feed>
</m:inline>
</link>
</entry>

Items that you don't want to copy are not part of the payload.

For every item that you want to copy with a different quantity and a discount, you include ReferenceSDDocument,
ReferenceSDDocumentItem, RequestedQuantity. For the pricing element, you add ConditionType and
ConditionRateValue.

 Note
All the checks and constraints regarding the copying of data that are implemented in your system are valid for the service as
well. For example, you cannot copy an item from a reference document when the item is already completely referenced.

Simulate Credit Limit Check


To simulate the credit check for a new sales order, you use the POST HTTP method on the A_SalesOrderSimulation entity
and provide the to_Credit association in the payload. Note that you must also provide the to_Pricing association.

Response

The operation returns all the properties of the A_SalesOrderCreditSimulation entity.

Example

Request

POST <host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrderSimulation
X-CSRF-Token: xyz
Content-Type: application/json
Accept: application/json

This is custom documentation. For more information, please visit SAP Help Portal. 161
1/18/25, 8:45 PM
{
"SalesOrderType": "OR",
"SalesOrganization": "1010",
"DistributionChannel": "10",
"OrganizationDivision": "00",
"SoldToParty": "10100001",
"PurchaseOrderByCustomer": "SalesOrder Simulation",
"to_Pricing": {},
"to_Credit": {},
"to_Item": [
{
"SalesOrderItem": "10",
"Material": "TG11",
"RequestedQuantity": "1"
}
]
}

Response

{
"d": {
"__metadata": {
"id": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrderSimulation(
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrderSimulation(
"type": "API_SALES_ORDER_SIMULATION_SRV.A_SalesOrderSimulationType"
},
"SalesOrder": "",
"SalesOrderType": "OR",
"SalesOrganization": "1010",
"DistributionChannel": "10",
"OrganizationDivision": "00",
"SalesGroup": "",
"SalesOffice": "",
"SalesDistrict": "",
"SoldToParty": "10100001",
"PurchaseOrderByCustomer": "SalesOrder Simulation",
"CustomerPurchaseOrderType": "",
"CustomerPurchaseOrderDate": null,
"SalesOrderDate": "/Date(1569974400000)/",
"TransactionCurrency": "EUR",
"SDDocumentReason": "",
"PricingDate": "/Date(1569974400000)/",
"RequestedDeliveryDate": "/Date(1569974400000)/",
"ShippingCondition": "01",
"CompleteDeliveryIsDefined": false,
"ShippingType": "",
"IncotermsClassification": "EXW",
"IncotermsTransferLocation": "Walldorf",
"IncotermsLocation1": "Walldorf",
"IncotermsLocation2": "",
"IncotermsVersion": "",
"CustomerPaymentTerms": "0004",
"PaymentMethod": "",
"to_Credit": null,
"to_Item": {
"results": [
{
"__metadata": {
"id": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrder
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrde
"type": "API_SALES_ORDER_SIMULATION_SRV.A_SalesOrderItemSimulationType"
},
"SalesOrder": "",
"SalesOrderItem": "10",
"HigherLevelItem": "0",
"SalesOrderItemCategory": "TAN",
"SalesOrderItemText": "XC test",
"PurchaseOrderByCustomer": "SalesOrder Simulation",
"Material": "TG11",
"MaterialByCustomer": "XC123",
"PricingDate": "/Date(1569974400000)/",

This is custom documentation. For more information, please visit SAP Help Portal. 162
1/18/25, 8:45 PM
"RequestedQuantity": "1",
"RequestedQuantityUnit": "PC",
"TransactionCurrency": "EUR",
"NetAmount": "-82.07",
"TaxAmount": "-15.59",
"CostAmount": "12.01",
"Subtotal1Amount": "3.86",
"Subtotal2Amount": "-82.07",
"Subtotal3Amount": "-82.07",
"Subtotal4Amount": "0.00",
"Subtotal5Amount": "0.00",
"Subtotal6Amount": "0.00",
"MaterialGroup": "L001",
"MaterialPricingGroup": "",
"Batch": "",
"Plant": "1010",
"StorageLocation": "",
"DeliveryGroup": "0",
"ShippingPoint": "1010",
"ShippingType": "",
"DeliveryPriority": "0",
"IncotermsClassification": "EXW",
"IncotermsTransferLocation": "Walldorf",
"IncotermsLocation1": "Walldorf",
"IncotermsLocation2": "",
"CustomerPaymentTerms": "0004",
"SalesDocumentRjcnReason": "",
"to_Partner": {
"__deferred": {
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_Sales
}
},
"to_PricingElement": {
"__deferred": {
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_Sales
}
},
"to_SalesOrder": {
"__deferred": {
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_Sales
}
},
"to_ScheduleLine": {
"__deferred": {
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_Sales
}
}
}
]
},
"to_Partner": {
"__deferred": {
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrderSimulat
}
},
"to_Pricing": {
"__metadata": {
"id": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrderPricingS
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrderPricing
"type": "API_SALES_ORDER_SIMULATION_SRV.A_SalesOrderPricingSimulationType"
},
"SalesOrder": "",
"TotalNetAmount": "-82.07",
"TransactionCurrency": "EUR",
"to_SalesOrder": {
"__deferred": {
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrderPri
}
}
},
"to_PricingElement": {
"__deferred": {
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrderSimulat
}

This is custom documentation. For more information, please visit SAP Help Portal. 163
1/18/25, 8:45 PM
}
}
}

Simulate Pricing
To simulate the credit check for a new sales order, you use the POST HTTP method on the A_SalesOrderSimulation entity. To
get a pricing simulation, provide the to_Pricing association. For information on pricing elements, use the
to_PricingElement association. You can use this association on both header and item level.

Response

The operation returns all the properties of the A_SalesOrderPricingSimulation and the
A_SalesOrderPrcgElmntSimln entities.

Example

Request

POST <host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrderSimulation
X-CSRF-Token: xyz
Content-Type: application/json
Accept: application/json

{
"SalesOrderType": "OR",
"SalesOrganization": "1010",
"DistributionChannel": "10",
"OrganizationDivision": "00",
"SoldToParty": "10100001",
"PurchaseOrderByCustomer": "SalesOrder Simulation",
"to_Pricing": {},
"to_PricingElement": [],
"to_Item": [
{
"SalesOrderItem": "10",
"Material": "TG11",
"RequestedQuantity": "1"
}
]
}

Response

{
"d": {
"__metadata": {
"id": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrderSimulation(
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrderSimulation(
"type": "API_SALES_ORDER_SIMULATION_SRV.A_SalesOrderSimulationType"
},
"SalesOrder": "",
"SalesOrderType": "OR",
"SalesOrganization": "1010",
"DistributionChannel": "10",
"OrganizationDivision": "00",
"SalesGroup": "",
"SalesOffice": "",
"SalesDistrict": "",
"SoldToParty": "10100001",
"PurchaseOrderByCustomer": "SalesOrder Simulation",
"CustomerPurchaseOrderType": "",
This is custom documentation. For more information, please visit SAP Help Portal. 164
1/18/25, 8:45 PM
"CustomerPurchaseOrderDate": null,
"SalesOrderDate": "/Date(1569974400000)/",
"TransactionCurrency": "EUR",
"SDDocumentReason": "",
"PricingDate": "/Date(1569974400000)/",
"RequestedDeliveryDate": "/Date(1569974400000)/",
"ShippingCondition": "01",
"CompleteDeliveryIsDefined": false,
"ShippingType": "",
"IncotermsClassification": "EXW",
"IncotermsTransferLocation": "Walldorf",
"IncotermsLocation1": "Walldorf",
"IncotermsLocation2": "",
"IncotermsVersion": "",
"CustomerPaymentTerms": "0004",
"PaymentMethod": "",
"to_Credit": {
"__deferred": {
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrderSimulat
}
},
"to_Item": {
"results": [
{
"__metadata": {
"id": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrder
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrde
"type": "API_SALES_ORDER_SIMULATION_SRV.A_SalesOrderItemSimulationType"
},
"SalesOrder": "",
"SalesOrderItem": "10",
"HigherLevelItem": "0",
"SalesOrderItemCategory": "TAN",
"SalesOrderItemText": "XC test",
"PurchaseOrderByCustomer": "SalesOrder Simulation",
"Material": "TG11",
"MaterialByCustomer": "XC123",
"PricingDate": "/Date(1569974400000)/",
"RequestedQuantity": "1",
"RequestedQuantityUnit": "PC",
"TransactionCurrency": "EUR",
"NetAmount": "-82.07",
"TaxAmount": "-15.59",
"CostAmount": "12.01",
"Subtotal1Amount": "3.86",
"Subtotal2Amount": "-82.07",
"Subtotal3Amount": "-82.07",
"Subtotal4Amount": "0.00",
"Subtotal5Amount": "0.00",
"Subtotal6Amount": "0.00",
"MaterialGroup": "L001",
"MaterialPricingGroup": "",
"Batch": "",
"Plant": "1010",
"StorageLocation": "",
"DeliveryGroup": "0",
"ShippingPoint": "1010",
"ShippingType": "",
"DeliveryPriority": "0",
"IncotermsClassification": "EXW",
"IncotermsTransferLocation": "Walldorf",
"IncotermsLocation1": "Walldorf",
"IncotermsLocation2": "",
"CustomerPaymentTerms": "0004",
"SalesDocumentRjcnReason": "",
"to_Partner": {
"__deferred": {
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_Sales
}
},
"to_PricingElement": {
"__deferred": {
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_Sales
}

This is custom documentation. For more information, please visit SAP Help Portal. 165
1/18/25, 8:45 PM
},
"to_SalesOrder": {
"__deferred": {
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_Sales
}
},
"to_ScheduleLine": {
"__deferred": {
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_Sales
}
}
}
]
},
"to_Partner": {
"__deferred": {
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrderSimulat
}
},
"to_Pricing": {
"__metadata": {
"id": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrderPricingS
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrderPricing
"type": "API_SALES_ORDER_SIMULATION_SRV.A_SalesOrderPricingSimulationType"
},
"SalesOrder": "",
"TotalNetAmount": "-82.07",
"TransactionCurrency": "EUR",
"to_SalesOrder": {
"__deferred": {
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrderPri
}
}
},
"to_PricingElement": {
"results": [
{
"__metadata": {
"id": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrder
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrde
"type": "API_SALES_ORDER_SIMULATION_SRV.A_SalesOrderPrcgElmntSimlnType"
},
"SalesOrder": "",
"PricingProcedureStep": "20",
"PricingProcedureCounter": "1",
"ConditionType": "PPR0",
"ConditionCalculationType": "C",
"ConditionRateValue": "456.000000000",
"ConditionCurrency": "JPY",
"ConditionQuantity": "1",
"ConditionQuantityUnit": "PC",
"ConditionIsForStatistics": false,
"ConditionAmount": "386.00",
"TransactionCurrency": "EUR",
"ConditionInactiveReason": "",
"ConditionIsManuallyChanged": false,
"to_SalesOrder": {
"__deferred": {
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_Sales
}
}
},
{
"__metadata": {
"id": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrder
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrde
"type": "API_SALES_ORDER_SIMULATION_SRV.A_SalesOrderPrcgElmntSimlnType"
},
"SalesOrder": "",
"PricingProcedureStep": "100",
"PricingProcedureCounter": "1",
"ConditionType": "",
"ConditionCalculationType": "",
"ConditionRateValue": "0.000000000",

This is custom documentation. For more information, please visit SAP Help Portal. 166
1/18/25, 8:45 PM
"ConditionCurrency": "EUR",
"ConditionQuantity": "0",
"ConditionQuantityUnit": "",
"ConditionIsForStatistics": false,
"ConditionAmount": "3.86",
"TransactionCurrency": "EUR",
"ConditionInactiveReason": "",
"ConditionIsManuallyChanged": false,
"to_SalesOrder": {
"__deferred": {
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_Sales
}
}
},
{
"__metadata": {
"id": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrder
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrde
"type": "API_SALES_ORDER_SIMULATION_SRV.A_SalesOrderPrcgElmntSimlnType"
},
"SalesOrder": "",
"PricingProcedureStep": "130",
"PricingProcedureCounter": "1",
"ConditionType": "DCM1",
"ConditionCalculationType": "C",
"ConditionRateValue": "-111.000000000",
"ConditionCurrency": "EUR",
"ConditionQuantity": "1",
"ConditionQuantityUnit": "PC",
"ConditionIsForStatistics": false,
"ConditionAmount": "-111.00",
"TransactionCurrency": "EUR",
"ConditionInactiveReason": "",
"ConditionIsManuallyChanged": false,
"to_SalesOrder": {
"__deferred": {
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_Sales
}
}
},
{
"__metadata": {
"id": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrder
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrde
"type": "API_SALES_ORDER_SIMULATION_SRV.A_SalesOrderPrcgElmntSimlnType"
},
"SalesOrder": "",
"PricingProcedureStep": "140",
"PricingProcedureCounter": "1",
"ConditionType": "DC01",
"ConditionCalculationType": "A",
"ConditionRateValue": "-3.500000000",
"ConditionCurrency": "",
"ConditionQuantity": "0",
"ConditionQuantityUnit": "",
"ConditionIsForStatistics": false,
"ConditionAmount": "3.75",
"TransactionCurrency": "EUR",
"ConditionInactiveReason": "",
"ConditionIsManuallyChanged": false,
"to_SalesOrder": {
"__deferred": {
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_Sales
}
}
},
{
"__metadata": {
"id": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrder
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrde
"type": "API_SALES_ORDER_SIMULATION_SRV.A_SalesOrderPrcgElmntSimlnType"
},
"SalesOrder": "",
"PricingProcedureStep": "150",

This is custom documentation. For more information, please visit SAP Help Portal. 167
1/18/25, 8:45 PM
"PricingProcedureCounter": "1",
"ConditionType": "DM01",
"ConditionCalculationType": "A",
"ConditionRateValue": "-19.000000000",
"ConditionCurrency": "",
"ConditionQuantity": "0",
"ConditionQuantityUnit": "",
"ConditionIsForStatistics": false,
"ConditionAmount": "19.64",
"TransactionCurrency": "EUR",
"ConditionInactiveReason": "",
"ConditionIsManuallyChanged": false,
"to_SalesOrder": {
"__deferred": {
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_Sales
}
}
},
{
"__metadata": {
"id": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrder
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrde
"type": "API_SALES_ORDER_SIMULATION_SRV.A_SalesOrderPrcgElmntSimlnType"
},
"SalesOrder": "",
"PricingProcedureStep": "195",
"PricingProcedureCounter": "1",
"ConditionType": "DPH1",
"ConditionCalculationType": "A",
"ConditionRateValue": "-2.000000000",
"ConditionCurrency": "",
"ConditionQuantity": "0",
"ConditionQuantityUnit": "",
"ConditionIsForStatistics": false,
"ConditionAmount": "1.68",
"TransactionCurrency": "EUR",
"ConditionInactiveReason": "",
"ConditionIsManuallyChanged": false,
"to_SalesOrder": {
"__deferred": {
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_Sales
}
}
},
{
"__metadata": {
"id": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrder
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrde
"type": "API_SALES_ORDER_SIMULATION_SRV.A_SalesOrderPrcgElmntSimlnType"
},
"SalesOrder": "",
"PricingProcedureStep": "300",
"PricingProcedureCounter": "2",
"ConditionType": "",
"ConditionCalculationType": "",
"ConditionRateValue": "0.000000000",
"ConditionCurrency": "EUR",
"ConditionQuantity": "0",
"ConditionQuantityUnit": "",
"ConditionIsForStatistics": false,
"ConditionAmount": "-85.93",
"TransactionCurrency": "EUR",
"ConditionInactiveReason": "",
"ConditionIsManuallyChanged": false,
"to_SalesOrder": {
"__deferred": {
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_Sales
}
}
},
{
"__metadata": {
"id": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrder
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrde

This is custom documentation. For more information, please visit SAP Help Portal. 168
1/18/25, 8:45 PM
"type": "API_SALES_ORDER_SIMULATION_SRV.A_SalesOrderPrcgElmntSimlnType"
},
"SalesOrder": "",
"PricingProcedureStep": "700",
"PricingProcedureCounter": "3",
"ConditionType": "",
"ConditionCalculationType": "",
"ConditionRateValue": "0.000000000",
"ConditionCurrency": "EUR",
"ConditionQuantity": "0",
"ConditionQuantityUnit": "",
"ConditionIsForStatistics": false,
"ConditionAmount": "-82.07",
"TransactionCurrency": "EUR",
"ConditionInactiveReason": "",
"ConditionIsManuallyChanged": false,
"to_SalesOrder": {
"__deferred": {
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_Sales
}
}
},
{
"__metadata": {
"id": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrder
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrde
"type": "API_SALES_ORDER_SIMULATION_SRV.A_SalesOrderPrcgElmntSimlnType"
},
"SalesOrder": "",
"PricingProcedureStep": "740",
"PricingProcedureCounter": "4",
"ConditionType": "",
"ConditionCalculationType": "",
"ConditionRateValue": "0.000000000",
"ConditionCurrency": "EUR",
"ConditionQuantity": "0",
"ConditionQuantityUnit": "",
"ConditionIsForStatistics": false,
"ConditionAmount": "-82.07",
"TransactionCurrency": "EUR",
"ConditionInactiveReason": "",
"ConditionIsManuallyChanged": false,
"to_SalesOrder": {
"__deferred": {
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_Sales
}
}
},
{
"__metadata": {
"id": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrder
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrde
"type": "API_SALES_ORDER_SIMULATION_SRV.A_SalesOrderPrcgElmntSimlnType"
},
"SalesOrder": "",
"PricingProcedureStep": "800",
"PricingProcedureCounter": "5",
"ConditionType": "",
"ConditionCalculationType": "",
"ConditionRateValue": "0.000000000",
"ConditionCurrency": "EUR",
"ConditionQuantity": "0",
"ConditionQuantityUnit": "",
"ConditionIsForStatistics": false,
"ConditionAmount": "-82.07",
"TransactionCurrency": "EUR",
"ConditionInactiveReason": "",
"ConditionIsManuallyChanged": false,
"to_SalesOrder": {
"__deferred": {
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_Sales
}
}
},

This is custom documentation. For more information, please visit SAP Help Portal. 169
1/18/25, 8:45 PM
{
"__metadata": {
"id": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrder
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrde
"type": "API_SALES_ORDER_SIMULATION_SRV.A_SalesOrderPrcgElmntSimlnType"
},
"SalesOrder": "",
"PricingProcedureStep": "840",
"PricingProcedureCounter": "1",
"ConditionType": "YZWR",
"ConditionCalculationType": "B",
"ConditionRateValue": "0.000000000",
"ConditionCurrency": "EUR",
"ConditionQuantity": "0",
"ConditionQuantityUnit": "",
"ConditionIsForStatistics": false,
"ConditionAmount": "0.00",
"TransactionCurrency": "EUR",
"ConditionInactiveReason": "",
"ConditionIsManuallyChanged": false,
"to_SalesOrder": {
"__deferred": {
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_Sales
}
}
},
{
"__metadata": {
"id": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrder
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrde
"type": "API_SALES_ORDER_SIMULATION_SRV.A_SalesOrderPrcgElmntSimlnType"
},
"SalesOrder": "",
"PricingProcedureStep": "850",
"PricingProcedureCounter": "1",
"ConditionType": "TTX1",
"ConditionCalculationType": "A",
"ConditionRateValue": "19.000000000",
"ConditionCurrency": "",
"ConditionQuantity": "0",
"ConditionQuantityUnit": "",
"ConditionIsForStatistics": false,
"ConditionAmount": "-15.59",
"TransactionCurrency": "EUR",
"ConditionInactiveReason": "",
"ConditionIsManuallyChanged": false,
"to_SalesOrder": {
"__deferred": {
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_Sales
}
}
},
{
"__metadata": {
"id": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrder
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrde
"type": "API_SALES_ORDER_SIMULATION_SRV.A_SalesOrderPrcgElmntSimlnType"
},
"SalesOrder": "",
"PricingProcedureStep": "900",
"PricingProcedureCounter": "6",
"ConditionType": "",
"ConditionCalculationType": "",
"ConditionRateValue": "0.000000000",
"ConditionCurrency": "EUR",
"ConditionQuantity": "0",
"ConditionQuantityUnit": "",
"ConditionIsForStatistics": false,
"ConditionAmount": "-97.66",
"TransactionCurrency": "EUR",
"ConditionInactiveReason": "",
"ConditionIsManuallyChanged": false,
"to_SalesOrder": {
"__deferred": {

This is custom documentation. For more information, please visit SAP Help Portal. 170
1/18/25, 8:45 PM
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_Sales
}
}
},
{
"__metadata": {
"id": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrder
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrde
"type": "API_SALES_ORDER_SIMULATION_SRV.A_SalesOrderPrcgElmntSimlnType"
},
"SalesOrder": "",
"PricingProcedureStep": "930",
"PricingProcedureCounter": "1",
"ConditionType": "PCIP",
"ConditionCalculationType": "C",
"ConditionRateValue": "12.010000000",
"ConditionCurrency": "EUR",
"ConditionQuantity": "1",
"ConditionQuantityUnit": "PC",
"ConditionIsForStatistics": true,
"ConditionAmount": "12.01",
"TransactionCurrency": "EUR",
"ConditionInactiveReason": "",
"ConditionIsManuallyChanged": false,
"to_SalesOrder": {
"__deferred": {
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_Sales
}
}
},
{
"__metadata": {
"id": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrder
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrde
"type": "API_SALES_ORDER_SIMULATION_SRV.A_SalesOrderPrcgElmntSimlnType"
},
"SalesOrder": "",
"PricingProcedureStep": "950",
"PricingProcedureCounter": "7",
"ConditionType": "",
"ConditionCalculationType": "",
"ConditionRateValue": "0.000000000",
"ConditionCurrency": "EUR",
"ConditionQuantity": "0",
"ConditionQuantityUnit": "",
"ConditionIsForStatistics": false,
"ConditionAmount": "-94.08",
"TransactionCurrency": "EUR",
"ConditionInactiveReason": "",
"ConditionIsManuallyChanged": false,
"to_SalesOrder": {
"__deferred": {
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_Sales
}
}
}
]
}
}
}

Simulate ATP
To simulate the available-to-promise (ATP) check for a new sales order, you use the POST HTTP method on the
A_SalesOrderSimulation entity and provide the to_ScheduleLine association on item level.

Response

This is custom documentation. For more information, please visit SAP Help Portal. 171
1/18/25, 8:45 PM
The operation returns all the properties of the A_SalesOrderPricingSimulation and the
A_SalesOrderScheduleLineSimln entities.

Example

Request

POST <host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrderSimulation
X-CSRF-Token: xyz
Content-Type: application/json
Accept: application/json

{
"SalesOrderType": "OR",
"SalesOrganization": "1010",
"DistributionChannel": "10",
"OrganizationDivision": "00",
"SoldToParty": "10100001",
"PurchaseOrderByCustomer": "SalesOrder Simulation",
"to_Item": [
{
"SalesOrderItem": "10",
"Material": "TG11",
"RequestedQuantity": "1",
"to_ScheduleLine": []
}
]
}

Response

{
"d": {
"__metadata": {
"id": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrderSimulation(
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrderSimulation(
"type": "API_SALES_ORDER_SIMULATION_SRV.A_SalesOrderSimulationType"
},
"SalesOrder": "",
"SalesOrderType": "OR",
"SalesOrganization": "1010",
"DistributionChannel": "10",
"OrganizationDivision": "00",
"SalesGroup": "",
"SalesOffice": "",
"SalesDistrict": "",
"SoldToParty": "10100001",
"PurchaseOrderByCustomer": "SalesOrder Simulation",
"CustomerPurchaseOrderType": "",
"CustomerPurchaseOrderDate": null,
"SalesOrderDate": "/Date(1569974400000)/",
"TransactionCurrency": "EUR",
"SDDocumentReason": "",
"PricingDate": "/Date(1569974400000)/",
"RequestedDeliveryDate": "/Date(1569974400000)/",
"ShippingCondition": "01",
"CompleteDeliveryIsDefined": false,
"ShippingType": "",
"IncotermsClassification": "EXW",
"IncotermsTransferLocation": "Walldorf",
"IncotermsLocation1": "Walldorf",
"IncotermsLocation2": "",
"IncotermsVersion": "",
"CustomerPaymentTerms": "0004",
"PaymentMethod": "",
"to_Credit": {
"__deferred": {
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrderSimulat

This is custom documentation. For more information, please visit SAP Help Portal. 172
1/18/25, 8:45 PM
}
},
"to_Item": {
"results": [
{
"__metadata": {
"id": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrder
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrde
"type": "API_SALES_ORDER_SIMULATION_SRV.A_SalesOrderItemSimulationType"
},
"SalesOrder": "",
"SalesOrderItem": "10",
"HigherLevelItem": "0",
"SalesOrderItemCategory": "TAN",
"SalesOrderItemText": "XC test",
"PurchaseOrderByCustomer": "SalesOrder Simulation",
"Material": "TG11",
"MaterialByCustomer": "XC123",
"PricingDate": "/Date(1569974400000)/",
"RequestedQuantity": "1",
"RequestedQuantityUnit": "PC",
"TransactionCurrency": "EUR",
"NetAmount": "-82.07",
"TaxAmount": "-15.59",
"CostAmount": "12.01",
"Subtotal1Amount": "3.86",
"Subtotal2Amount": "-82.07",
"Subtotal3Amount": "-82.07",
"Subtotal4Amount": "0.00",
"Subtotal5Amount": "0.00",
"Subtotal6Amount": "0.00",
"MaterialGroup": "L001",
"MaterialPricingGroup": "",
"Batch": "",
"Plant": "1010",
"StorageLocation": "",
"DeliveryGroup": "0",
"ShippingPoint": "1010",
"ShippingType": "",
"DeliveryPriority": "0",
"IncotermsClassification": "EXW",
"IncotermsTransferLocation": "Walldorf",
"IncotermsLocation1": "Walldorf",
"IncotermsLocation2": "",
"CustomerPaymentTerms": "0004",
"SalesDocumentRjcnReason": "",
"to_Partner": {
"__deferred": {
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_Sales
}
},
"to_PricingElement": {
"__deferred": {
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_Sales
}
},
"to_SalesOrder": {
"__deferred": {
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_Sales
}
},
"to_ScheduleLine": {
"results": [
{
"__metadata": {
"id": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV
"type": "API_SALES_ORDER_SIMULATION_SRV.A_SalesOrderScheduleLin
},
"SalesOrder": "",
"SalesOrderItem": "10",
"ScheduleLine": "1",
"RequestedDeliveryDate": "/Date(1569974400000)/",
"ConfirmedDeliveryDate": null,

This is custom documentation. For more information, please visit SAP Help Portal. 173
1/18/25, 8:45 PM
"OrderQuantityUnit": "PC",
"ScheduleLineOrderQuantity": "1",
"ConfdOrderQtyByMatlAvailCheck": "0",
"OpenConfdDelivQtyInOrdQtyUnit": "0",
"CorrectedQtyInOrderQtyUnit": "1",
"to_SalesOrder": {
"__deferred": {
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION
}
},
"to_SalesOrderItem": {
"__deferred": {
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION
}
}
}
]
}
}
]
},
"to_Partner": {
"__deferred": {
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrderSimulat
}
},
"to_Pricing": {
"__metadata": {
"id": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrderPricingS
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrderPricing
"type": "API_SALES_ORDER_SIMULATION_SRV.A_SalesOrderPricingSimulationType"
},
"SalesOrder": "",
"TotalNetAmount": "-82.07",
"TransactionCurrency": "EUR",
"to_SalesOrder": {
"__deferred": {
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrderPri
}
}
},
"to_PricingElement": {
"__deferred": {
"uri": "<host>/sap/opu/odata/sap/API_SALES_ORDER_SIMULATION_SRV/A_SalesOrderSimulat
}
}
}
}

Extensibility: Sales Order - Simulate (A2X, OData V2)


As a key user, you can extend the API_SALES_ORDER_SIMULATION_SRV OData API according to your business needs.

Features

In the Custom Fields app, you can add custom fields using the following business contexts:

Service Entity Business Context

A_SalesOrderSimulation (header) Sales: Sales Document

A_SalesOrderItemSimulation (item) Sales: Sales Document Item

Related Information

This is custom documentation. For more information, please visit SAP Help Portal. 174
1/18/25, 8:45 PM
Key User Extensibility
Custom Fields

This is custom documentation. For more information, please visit SAP Help Portal. 175

You might also like