Skip to main content
Question

Looking for the rest api to get customer price

  • October 2, 2024
  • 4 replies
  • 66 views

Forum|alt.badge.img+8

In applications 10 I have soap capabilities to retrieve the customer price for an item.   I am looking for the Rest function that I can pass a customer, currency, part list and retrieve the price for the customer. 

4 replies

Forum|alt.badge.img+10
  • Sidekick (Customer)
  • September 8, 2026

Did you find a new way of doing this? 


Forum|alt.badge.img+9
  • Hero (Employee)
  • September 8, 2026

Hi.  I found the following information -

 

In IFS Applications 10, SOAP BizAPIs and SOAP web services are replaced by OData v4 REST Projections.

To retrieve customer prices via REST, IFS exposes the pricing engine (driven under the hood by Customer_Order_Pricing_API.Get_Sales_Part_Price_Info) as OData functions/actions within sales projections such as CustomerOrderHandling, CustomerOrderPriceAnalysisHandling, or SalesPartHandling.

1. REST Function for Single Part Price Retrieval

For retrieving price information for a specific customer, part, and currency, IFS Apps 10 uses an unbound OData Function on the projection.

Endpoint Endpoint Pattern:

 

 

 

GET /main/ifsjson/projection/v1/CustomerOrderHandling.svc/GetSalesPartPriceInfo(CustomerNo='{CustomerNo}',Contract='{Site}',CatalogNo='{PartNo}',CurrencyCode='{Currency}',BuyQty={Quantity})

Key Parameters Passed:

  • CustomerNo: The Customer ID.

  • Contract: The Site code.

  • CatalogNo: The Sales Part Number.

  • CurrencyCode: The requested currency code (e.g., 'USD').

  • BuyQty: The quantity (used for price break / volume discount calculations).

  • Optional Parameters: AgreementId, PriceListNo, ConditionCode.

Response Output:

Returns the calculated sale price, base price, discount %, net amount, currency rate, and source of price (Customer Agreement, Price List, Base Price, etc.).

2. Passing a List of Parts (Multiple Parts)

Because standard OData functions evaluate price line-by-line, there are two standard ways in IFS Applications 10 REST to retrieve prices for a part list in a single call:

Method A: Standard OData $batch Request (No Customization)

You can bundle multiple pricing function calls into a single HTTP POST request using the OData $batch endpoint.

  • Endpoint:

     

     

     

    POST /main/ifsjson/projection/v1/CustomerOrderHandling.svc/$batch Content-Type: multipart/mixed; boundary=batch_boundary
  • Payload Structure:

     

     

     

    --batch_boundary Content-Type: application/http Content-Transfer-Encoding: binary GET GetSalesPartPriceInfo(CustomerNo='C1000',Contract='10',CatalogNo='PART-A',CurrencyCode='USD',BuyQty=1) HTTP/1.1 --batch_boundary Content-Type: application/http Content-Transfer-Encoding: binary GET GetSalesPartPriceInfo(CustomerNo='C1000',Contract='10',CatalogNo='PART-B',CurrencyCode='USD',BuyQty=5) HTTP/1.1 --batch_boundary--

Method B: Custom Integration Projection (For Array Input)

If external callers cannot construct $batch requests and require passing a JSON array of parts in a single POST body, you can create a lightweight custom projection (.projection) in Marble/Developer Studio that exposes an unbound Action taking a list/structure array and calling Customer_Order_Pricing_API:

 

 

 

action GetCustomerPartListPrices Structure(CustomerPriceResultStruct) { initialcheck implementation; parameter CustomerNo Text; parameter CurrencyCode Text; parameter Contract Text; parameter PartList List<Structure(PartItemStruct)>; }

 

I hope this helps.  Thanks!  Jane


Forum|alt.badge.img+10
  • Sidekick (Customer)
  • September 9, 2026

Thanks for coming back.

 

Out REST URL’s have ifsapplications not ifsjson in the address. It does not seem exposed.

Do you have any more infomation?

 

Matt


Forum|alt.badge.img+9
  • Hero (Employee)
  • September 9, 2026

Hi Matthew.  Please advise if the following information helps -

 

In IFS Applications 10, REST APIs are built on OData v4 Projections. Below is the explanation regarding your URL structure, the REST functions for customer pricing, and how to query or expose them.

1. URL Architecture: ifsapplications vs ifsjson

  • ifsapplications (Apps 10 Standard):
    In Apps 10, native REST endpoints are hosted directly under the OData projection framework:
    https://<server>:<port>/main/ifsapplications/projection/v1/<ProjectionName>.svc/<EntitySet_or_Function>
    The presence of ifsapplications in your URLs confirms you are accessing the native Apps 10 OData REST layer.

  • ifsjson (Legacy Gateway):
    ifsjson was used in older REST/JSON adapters (Apps 8/9). In Apps 10, OData Projections under ifsapplications replace those legacy endpoints.

2. Available Projections & Functions for Customer Pricing

In the ORDER (Customer Order) component, pricing logic considers customer agreements, price lists, volume breaks, currency conversions, and site setup.

Primary Projection: CustomerOrderHandling or CustomerOrderLineHandling

  • Function / Action Name: GetPriceInfo (or GetPriceInfoStruct)

  • Typical Input Parameters:

    • CustomerNo (String)

    • Contract (Site / Branch ID)

    • CatalogNo (Sales Part Number)

    • BuyQtyDue (Quantity)

    • CurrencyCode (e.g., USD)

    • AgreementId (Optional)

    • PriceListNo (Optional)

  • Output: Returns net price, gross price, currency, applied discount percentage, price source, and tax calculation details.

3. Why It Might Not Seem Exposed & How to Access It

If you cannot locate or call the REST endpoint directly:

  1. Check API Explorer:

    • Log into Aurena and navigate to Solution Manager → Integration → API Explorer (or search API Explorer in the search bar).

    • Filter by Component: ORDER or SALES.

    • Look for CustomerOrderHandling or SalesPartPriceHandling.

  2. Grant Projection Permissions:

    • In Apps 10, REST endpoints require explicit security grants.

    • Go to Solution Manager → Security → Permission Sets → Projections.

    • Grant the target projection (e.g., CustomerOrderHandling) to the Permission Set assigned to your REST integration service account.

4. Passing a Part List (Bulk / Multiple Parts)

Standard OData pricing functions in IFS operate on a single part at a time (CatalogNo). If you need to retrieve prices for a list of parts in a single REST request, you have two options:

  1. OData $batch Request:

    • Send a single HTTP POST request to the $batch endpoint:
      https://<server>:<port>/main/ifsapplications/projection/v1/CustomerOrderHandling.svc/$batch

    • Include multiple GetPriceInfo function calls within the multipart batch payload.

  2. Custom Integration Projection (Recommended for heavy integrations):

    • Create a lightweight custom Projection (using IFS Developer Studio) that accepts a JSON array of part numbers, loops through Customer_Order_Prices_API.Get_Price_Info, and returns a consolidated array of customer prices in one response

Thanks!  Jane