Introducing Acumatica Cloud ERP: 2026R2
Technical discussions focused on Web Services and APIs for developers
Recently active
Hello everyone,I’ve been testing Concurrent Requests in Acumatica. Per the license we should have 6 concurrent requests and 500 requests per minute. I put together a contrived example to send off requests concurrently. The program runs through 2 scenarios. 8 Concurrent requests from a single user and then 8 requests each from 3 different users. However, the results were unexpected.It seems for Web API requests, that requests are not processed concurrently in Acumatica for a single user. In the first test the first request takes 600 ms and the second request (exactly the same as the first) takes 1018ms. And the trend continues with around a 400-500 ms delay between each request.In the second test, It looks like there is a little concurrency, but I’m not getting a concurrency of 6.Further, if you switch the request to be an OData call from a GI concurrency does seem to work as expected.I’ve provided code below to try it for yourself.So my question is: Why do the Web API requests not run
Hello community, As you probably know, in 2024R1 we’ve released an ability to retrieve reports in PDF format from the system via API.You can find more about that feature here (page 11). Now, we’d like to add mapping for some reports to allow you to do it via the Default endpoint. Please help us to determine which reports should be mapped. Any suggestions are welcome, but if you also specify what you are going to use it for that’s even more valuable. Thanks in advance!
I am using Microsoft.WindowsAure.Storage DLL to read files from Azure Blobs it was working fine until i upgrade to Acumatica 2023 R2, No w am getting above error. So tried to change the DLL to Azure.Storage.Blobs but still getting error as below Thanks,Arun.
Good day. We have an enquiry regarding the creation of a sales orders with allocations. We query the inventory summary results - expanded by lot/serial number to retrieve a list of serials for an inventory product. We then display these options to the user to choose from when ordering a product ex: a gun. It seems that when we create an order with an allocation it creates/duplicates the lotSerialNbr entry within the inventory summary. Please see attached:- Example of create order call from documentation- Screenshot of our request logs- Screenshot of additional lotSerial entries created Our understanding of allocation on an order is that an existing lot serial number will be assigned to a Details/Product entry. Would appreciate any clarification and guidance on why our request is in fact creating a new lot/serial entry for an inventory item. Kind regards, Alecia
Hello Developers,I hope everything is going well.I'm currently working on implementing a feature to "Hold" a Purchase Order using the Rest API. I've set up the necessary actions in our web services.Here's the rundown: Actions - WebServices This is the Purchase Order I'm attempting to put on "HOLD." Actions - WebServices2- This is Purchase Order I”m trying to “HOLD” I've sent the request using the following endpoint: https://company.acumatica.com/entity/vendorpolineitems/22.200.001/PurchaseOrder/Hold 4- Request Body { "entity": { "Type": { "value": "Normal" }, "OrderNbr": { "value": "PPO05340" } }} Unfortunately, I encountered the following error: "source": "application", "code": 500, "message": "{\"message\":\"An error has occurred.\",\"exceptionMessage\":\"Operation failed\",\"exceptionType\":\"PX.Data.PXInvalidOperationException\",\"stackTrace\":\" at PX.Api.ContractBased.EntityService.Invoke(ISystemContract systemContra
Acumatica Web Service Endpoints says that for Sales Prices I can only make a PUT request to get data.I don’t see anywhere in the docs where it says how to make this PUT request.Any information is greatly appreciated.Thanks!
Hi!, Just wanted to ask on how to create new Vendor Price Worksheet thru API?What Params, Body should I send?
I’m getting this error despite all my addresses being US addresses. Carrier Service returned error. DHL Express:This DHL account is owned by EasyPost and does not support non-US origin shipments. Please link your DHL Express account to continue with the shipment
I am trying to enable Copy Order for QT to SO.It works fine when I copy SO to SO. It seems like once you hit OK parameters dialog and the process finishes, the QT order is still displayed and the Save button doesn’t really do anything and if you cancel your changes are discarded. Hitting copy twice before exiting will result in a new SO. If anyone has done this or has ideas, please share and thank you.update screen SO301000 { update container "OrderSummary" { formActionsToExpand = 2 add recordAction "copyOrder" { redirect = true redirectToDialog = "SO30100D2" } add recordAction "copyOrderQT" { redirect = true redirectToDialog = "SO30100D3" } } add dialog SO30100D2 { add dialogAction "CheckCopyParams" { CloseDialog = true DialogResult = "OK" } openAs = Form add container "CopyTO" { includeDialogActions = True add field "OrderType" add field "OrderNbr" add recordAction "Che
Hello we have a website that syncs in all sorts of data from Acumatica. We sync in StockItems, SalesOrders, Invoices, etc.My struggle is that when data is deleted from Acumatica, how can I get those updates so I can delete on my side?One typical scenario is on Sales Orders. Items are often removed from sales orders. I don’t really have a way to get those updates. I know I can use push notifications to get these deletes in realtime, but we do more of a night batch process.Outside of downloading all of our salesorders and doing a comparision of the nightly download and website list...and delete those items that are not in the nightly download. This process is time consuming unfortunatley. I am hoping to find some sort of query I can call that will give me a list of deleted items, maybe by date?Does anyhow have an insights on how I could approach this? Thanks!
New to Acumatica, we are in early implementation phase. Our iPaaS system is MuleSoft, and our CRM is Salesforce. Currently, we are working to POST new customers to Acumatica via REST API. Receiving an error that we do not appear to have permission to create the SF Price Cls field, so the method fails. When I look at the endpoint in Acumatica, I don’t even see that field as available. Do I need to do the mapping inside Acumatica individually? And do I simply extend the endpoint to do so? Any insight appreciated, thanks!
I am uploading a project via Postman to acumatica. The project is getting created, but the default branch is always coming up as empty. I am sending a valid default branch and it is a part of the webservice endpoint. There is no error message.In the course of setting up the project, I am using a project template. This project template does not have a default branch set. Will the project template’s default branch override the one I am sending via POSTMAN?
I have a scenario with 2023 R2 Construction Edition with standard Equipment (EP208000) whereby I want to utilize a Project Attribute enabled for Equipment in the Web Service for Equipment. I am not understanding how to reference the Attribute in the web service. I have read a similar question on Sales Orders but this does not seem to be the same procedure. I would like for the dev team to be able to evaluate the “Attribute” and the “Value”. In this case, the “Value” will hold a default value that is needed. Thanks in advance!
Hi There,Working with 2023 R1.I am trying to run the following query through PostManhttp://AcumaticaVM/AcumaticaDemoDB/ODatav4/PX_Objects_GL_GLTran?$apply=groupby((AccountID,BranchID,LedgerID,FinPeriodID),aggregate(DebitAmt with sum as SumDebitAmt))And Acumatica is coming back with the following error:"error": { "code": "", "message": "An error has occurred.", "innererror": { "message": "Object reference not set to an instance of an object.", "type": "System.NullReferenceException", "stacktrace": " at PX.Data.SQLTree.SQLinqExecutor.SQLinqExpressionVisitor.VisitDacProperty(Type propertyType, String propertyName, SQLExpression defaultExpression)\r\n at PX.Data.SQLTree.SQLinqExecutor.SQLinqExpressionVisitor.VisitMember(MemberExpression expression)\r\n at Remotion.Linq.Parsing.ThrowingExpressionVisitor.Visit(Expression expression)\r\n at PX.Data.SQLTree.SQLinqExecutor.SQLinqExpressionVisitor.Visit(Expression expression)\r\n at
“CustomerSignedReport” is a GUID field in database and also in FSAppointment class. I am working on an external application that is capturing signature and sending email to customer with pdf report.I have everything sorted, only issue I am facing is that I am unable to update the new file id in the field “CustomerSignedReport” as I am not able to add it in the web service endpoint even by extending it. My requirement is to update this field from REST API or web service SOAP.I need help from the community if I am missing something here.For reference:SQL : Select CustomerSignedReport,* from FsAppointment where refnbr='TMVT000069-1' and CompanyID=3DAC Class:
I have a process in Azure Data Factory that downloads about 55k images and stores them to a storage container for use on an external eCommerce website.Sometimes I have to do a full sync/download, the issue is that it takes forever to download them all due to API limits etc. Are there any tips on how I can overcome it? My download process can take 4-5 days to complete if I have to reseed the data...I am just looking for something that isn’t as long.Thanks!Eric
Related to the topic, I have the following code, but this time I try to obtain the pdf from an api, and save it in Shipment, I show you the code and the error that appears:[PXButton(CommitChanges = true)][PXUIField(DisplayName = "Track")]protected void apiTracking(){ DownloadAndUploadFile();}public void DownloadAndUploadFile(){ try { using (HttpClient client = new HttpClient()) { string url = "http://qaglp.paquetexpress.mx:8083/wsReportPaquetexpress/GenCartaPorte?trackingNoGen=19167736449"; HttpResponseMessage queryResult = client.GetAsync(url).Result; if (queryResult.IsSuccessStatusCode) { byte[] fileContent = queryResult.Content.ReadAsByteArrayAsync().Result; UploadFile(fileContent, "downloadedFile55.pdf"); } else { PXTrace.WriteWarning("HTTP request was not successful."); } } } catch (Exception ex) { PXTrac
Question Where is LocationID field we see in our error message, and how can we stop it being empty? Overview Our system attempts to create Appointments for Service Orders via the Acumatica API. We are having a lot of trouble with the error:LocationID' cannot be empty.; LocationID: 'LocationID' cannot be empty.This error occurs in the API only, we do not see the error when creating appointments using the UI. Our software uses the API tries to take an existing Service Order, add an Appointment for it, and then set the Scheduled and Actual dates/times on the new appointment. The ultimate goal is to enter an appointment log and create time cards automatically. The error occurs when we try and set the dates and times. Technical Detail The working request to create the appointment looks like:{ "ServiceOrderNbr": { "value": "40054" }, "ServiceOrderType": { "value": "TECH" }, "BranchLocation": { "value": "DVM" }, "Customer": { "value": "CSOUTHPAC" }}Which is mapped to t
Hi,I wasn’t able to get and add relationship in sales order. This is what I’m seeing on web Service history
Hi Everyone,Have an issue with filtering a GI through the REST API.Below is the setup for my endpoint filter.And this is my request bodyI’m getting the below error If I send a word like “test” instead of the actual ID then there is no error however if I send a number formatted as a string then it isn’t happy.Has anyone seen this before / know a fix?
Hi everyone,When sending a GET request for the CustomerLocation with a LocationID the API fails with the following error “Operation is not valid due to the current state of the object." However, if the LocationID is removed the request will succeed. Meanwhile, every other object like CustomerPaymentMethod requires an ID or they will fail and report the same error.Why is CustomerLocation different ? Is it possible to detect if a ID is supported in the API ?I am using version 23.200.001 and the Default endpoint.Thank you.
I’m attempting to use the $expand parameter in an OData v4 query. However, anything that I put in the $expand just causes the server to return 404. For example, I can get a PO with POOrder(OrderType='RO',OrderNbr='12345'). And it returns the POLineCollection property, already expanded. But if I explicitly request ?$expand=POLineCollection, I just get a 404. What’s strange to me is that if I set ?$expand= it does not expand the POLineCollection property. So it is definitely reading the $expand parameter.I’ve tried expanding multiple navigation properties, using their names defined in the OData metadata XML. None of them work. I’ve even tried copy-pasting the examples from Exact Session Title (acumatica.com) as well as the URL provided in the answer to this topic, with the same result: 404. I have no idea what I’m doing wrong here.For reference, here’s my full URL: https://myinstance.com/ODatav4/My Tenant Id/POOrder(OrderType='RO',OrderNbr='12345')?$expand=POLineCollection
I’m trying to create an eCommerce connector; deriving a lot of the functionality from the BigCommerce codebase, but I’m having problems with Shipment Exports.My connector has imported a sales order, which I’ve shipped manually (and Confirmed), and see that shipment in the Prepare Data screen. The error suggests that the shipment does not exist in Acumatica,(“The record cannot be synchronised because it does not exist in the ERP and external system”) but it’s definitely there.I’m running build 23.111.0019 locally.The problem appears to be that this line returns null instead of a populated Shipment object.bCShipment.Shipment = cbapi.GetByID<PX.Commerce.Core.API.Shipment>(bCShipment.ShippingNoteID.Value);What might be the cause of this problem?
How can I join the PMProject object with PMTasks? When I use the $expand paramater, I keep getting errors.I have tried PMTask, Task and both are resulting in errors.
I am following this Blog Post to create a REST endpoint for a custom GI.I am doing a PUT, and I did set up the “Results” sub-entityI have set up the endpoint as described. Regardless of what I add as the $expand query value, I get: { "id": "9a25f895-des9-4fe6-bcf4-551f8f5d7a58", "rowNumber": 1, "note": null, "custom": {}}Any suggestions of what I should try?
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.