Introducing Acumatica Cloud ERP: 2026R1
Technical discussions focused on Web Services and APIs for developers
Recently active
For any users who have a successful data warehouse extraction pipeline with Acumatica, I’m curious how you’re doing it? We’re running into issues with OData V4 excluding deleted records, so if they’ve previously been extracted from Acumatica into our data warehouse, we have no way of knowing they were deleted using OData V4 and they remain untouched in the data warehouse, which causes inaccurate data. So far, the best solution we’ve been given is to create a customization package to preserve deleted records on the affected DACs (such as SOOrder, ARInvoice, etc.), then create a GI to retrieve the deleted records into their own table in our data warehouse, then join the actual tables in our data warehouse with the deleted records tables to exclude them from downstream data models. This feels really clunky, does anyone else have experience with this issue? And how have you solved it?
I would like to update specific record under processes (Approve Bills for payment) using api endpoint via postman. for example: update the cash account value
Hi community, The system I am creating sales orders on is having some discrepancies between the manually created sales orders and API-created sales orders. When the delivery route assigned to a customer has a trip the next day and you manually create a sales order with a Requested Date of next-day, the sales order auto-fills its Pick On date for today as expected. When doing it via API, it skips the next-day trip and auto-fills the Pick On date for the day before the next trip even if that is next month. I already set the PX-CbApiBusinessDate when creating the sales order and made sure the time zone is correct in my user profile. Is there something I can do like set the Created Date value of the sales order or adjust the date via API after the record is created? Please let me know if I need to clarify anything! Thank you.
Hi there, I am trying to update the status of an inventory issue using the REST API from On Hold to Balanced so that I can then invoke the release action. I am sending just the id and the status as you can see below:url: {{baseurl}}/AcumaticaERP/entity/Default/23.200.001/InventoryIssue { "id": "538ecce5-8c49-ef11-9061-e848b8c82000", "Hold": { "value": false }, "Status": { "value": "Balanced" } }I get a 200 response, but the status of the Issue is still On Hold. Using the same json I am able to update Inventory transfers without an issue. Is there something that I am missing?
Hi All. I am using Post Man to create new records using PUT REST API in Acumatica. I have created new screen (grid view) and new table attach with Screen. I am trying to add new record but its not creating record but updating the existing one I have tried with if-none-match header but still the problem exist. The table have PK and Unique key. Any idea what’s going on? Thanks
Is there a way to “Copy To” using the API? I have a Sales Quote and want to create a sales order from it using the API. Does the sales order has any relation recorded to the sales quote?I tried to use this below without success"OrderType": { "value": "SO" }, "customerId": { "value": "ABAKERY" }, "Details": [ { "OrderNbr": { "value": "000238" }, "OrderType": { "value": "QT" } } ]
Hello,I am experiencing an error ("Index was outside the bounds of the array.") when trying to call multiple $expand items.GET Query:PX_Objects_SO_SOPickingWorksheet?$expand=SOPickerListEntryCollection($expand=InventoryItemByInventoryID,INToteByToteID)&$filter=WorksheetNbr eq '000001'Response: { "error": { "code": "", "message": "An error has occurred.", "innererror": { "message": "Index was outside the bounds of the array.", "type": "System.IndexOutOfRangeException", "stacktrace": " at PX.Data.PXXmlDataRecord.GetBoolean(Int32 i)\r\n at PX.Data.SQLTree.ProjectionConst.GetValue(PXDataRecord data, Int32& position, MergeCacheContext context)\r\n at PX.Data.SQLTree.ProjectionInitNew.GetValue(PXDataRecord data, Int32& position, MergeCacheContext context)\r\n at PX.Data.SQLTree.ProjectionInitNew.GetValue(PXDataRecord data, Int32& position, MergeCacheContext context)\r\n at PX.Data.SQLTree.ProjectionForXmlRefer
Hi All, I have a requirement as given below,We have an API to integrate data from customer website into Acumatica. The API will create new Customer and Sales Order in Acumatica. In addition Payments will be created and attached to the Sales Order if provided. We now have another custom field added called ParentKitID in sales order line which needs to be updated from the API. How do I achieve this, I have already configured the endpoint in Acumatica for the field.Any help would be appreciated, thank you!
Hi there,I'm new to this platform. I've been given the task of exporting data from my third-party C# Winforms application to Acumatica ERP. I believe this can be accomplished using the APIs provided by Acumatica, but I'm not sure where to begin.I would appreciate it if you could provide me with a starting point or some sample code. ThanksRahul
Hello I’ve been reading the Acumatica documentation to understand how the webhook functionality is handled for Authorize.net plugin. We have a cloud based instance of 2023R1 Acumatica that we access via a subdomain. https://businessname.acumatica.comAfter following the integration and setup steps for Authorize.net specific to 223R1 here, I’m still getting basic authentication errors. I verified with Authorize.net that credentials are entered correctly and that there is no API restrictions for our account.The one area of Authorize.net that still remains unclear is if the webhook url is supposed to enabled or made available by our instance. Is the webhook necessary for the native Authorize.net plugin to work in 2023R1? Or can it simple receive the necessary data via the API token and and transaction key?
Currently we are storing the JSON Object Body in a column which is [UsrJsonBody] [nvarchar](MAX) of a custom table. But sometime the whole JSON is not properly storing. That means for quite big JSONs the later part is getting missed. Can I know is there any issue with this approach. Please check the below code snippets. Thank you.//Custom table creationCREATE TABLE [dbo].[XXPOCreateHist]( [ID] [int] IDENTITY(1,1), [CompanyID] [int] NOT NULL, [IntegrateDate] [datetime], [PONumber] [nvarchar](50), [IntegrateStatus] [nvarchar](2), [ErrorDesc] [nvarchar](256) , [IntegrationType] [nvarchar](50), [UsrJsonBody] [nvarchar](MAX) ,....//JSON Storing approach in the Graph filevar options = new JsonSerializerOptions { WriteIndented = true }; var json=JsonSerializer.Serialize(obj,options); PXTrace.WriteInformation(json);....XXPOCreateHist toBeInserted = new XXPOCreateHist(); toBeInserted.PONumber=order.OrderNbr; toBeInserted.IntegrateDate=DateTime.Now;
I’m able to filter on any string mapped field but when I filter on a DateTimeValue mapped field, I get this error:"exceptionMessage": "A binary operator with incompatible types was detected. Found operand types 'Edm.DateTimeOffset' and 'Edm.String' for operator kind 'Equal'." Question: is there a specific way to filter on a datetime field? Here’s the URL I’m using in Postman:https://sandbox.com/entity/INStockItem/22.200.001/POReceiptPackages?$filter=POReceiptLine_lastModifiedDateTime eq '2022-08-30T18:39:55.813+00:00'
I am trying to switch to using the Odatav4 endpoint instead of the REST API for fetching order data. One thing that I noticed that it seems to be missing is the ID of the Purchase order. I am using the following request: http://localhost:40294/AcumaticaERP/ODatav4/MYSTORE/PX_Objects_PO_POOrder?$expand=POLineCollection($expand = InventoryItemByInventoryID($select = InventoryCD,Descr,ItemStatus,BaseUnit))&$filter=OrderNbr eq '000024'This works well but it does not seem to contain the ID of the order which I know to be dee069aa-a63a-ef11-9050-e848b8c82000 from using the REST API: http://localhost:40294/AcumaticaERP/entity/Default/23.200.001/PurchaseOrder?$expand=Details&$filter=OrderNbr eq '000024'Is this not possible or am I missing something.
When you get this error : “Carrier Service returned error. : PHONE.NUMBER.REQUIRED Phone Number is a required field. Please update and try again.” it does not refer to the phone number on the shipment contact. It refers to the phone number on the warehouse record you are shipping from.
If you get a “ACCOUNT.NUMBER.MISMATCH Account Number Mismatch -As the payment Type is SENDER, ShippingChargesPayment Payor AccountNumber should match the shipper account number .Please update and try again.” error there is a mismatch between the account number in the Carrier setup and the account number in the Fedex project setup in the Fedex developer portal.
Hello - We noticed that we have missing numbers in the sequence for our payments for one of our properties. They are creating automatically from the AP suggest next record, and no one has access to modify that setting. The system skips from reference number 7526 to 7528, skipping two reference numbers. The auditors caught this and are wondering the cause, and have deemed it an actionable issue. As far as I am aware, once a payment is created and a reference number assigned, it cannot be deleted, only voided, which still leaves the reference number. My question is, what possible scenarios could cause this, outside of someone changing the Last Reference Number on the payment method?
Hi Team, I am working on creating task in task Screen. But while creating a body it shows me two errors. One in “” Owner cannot be empty even I have mention owner value in body. Second I can see that the "RelatedEntityType" and RelatedEntityNoteID. Can anyone guide me on that. I have attach the screen shots below”my query: http://local/AcumaticaSB/entity/Default/22.200.001/Task?$select=Body,Owner,Summary,RelatedEntityType,RelatedEntityNoteID
Hi There,I have a query which for various reasons has quite a long filter parameter passed in the URL - in fact it exceeds the maximum length for a URL (which is something like a 1000 chars).It seems to be the idea that going forward you should be able to pass this in the body of a POST request (getting around the length limitation) and postfixing the URL with /$queryAs per Passing OData query options in request body - OData | Microsoft LearnHowever - when I do this with Acumatica - I get a “Method Not Allowed” error which smells of - this hasn’t yet been implemented?Is this correct? And if so - are there plans to do so?Many thanks,Daniel Graham
Hi all, I am developing integration with Acumatica for a 3rd party WMS. Currently, I am using the REST API to get all of the documents and stock items.What are the advantages of using OData over using the REST API?I am specifically curious about performance. Thanks
I have a bunch of .NET “jobs” that sync and pull data from Acumatica for use in an external eCommerce website.I often hit the login rate limit error and have been told to make sure I logout after each iteration. I call the /identity/connect/token endpoint and pass in my client_id, secret, API Username and API Password with the grant type of password. Its a typical oAuth flow. In testing via postman, I have logged in, did a simple GET query to return some data...then call the logout endpoint (with my bearer token). It returns a 204 success status code. /entity/auth/logout The issue is, I can go back and call the GET query to return some data. I would expect that my bearer token would be invalidated and that GET call would fail. However, it still works. This leads me to believe that I am not truly being logged out. I am reading that I need to pass in a cookie to the logout call, but I can’t really find out how that works. I am not used to working with cookies in a typical oAuth pattern.
I can delete a row fine if I use RecordId. However, in the case I don’t have the exact RecordId, how do I delete a row using these values:{ "SalesPriceDetails": [ { "InventoryID": { "value": "00000-00002" }, "PriceType": { "value": "Customer Price Class" }, "PriceCode": { "value": "VIP" }, "delete": true } ]} When I try this, it deletes the first InventoryID/PriceType it finds which will delete the wrong row if I have a row with a PriceCode like “WHOLESALE”.
I can create a Sales Price fine using the following PUT method in Postman:https://sandbox.com/AcumaticaERP/entity/Default/20.200.001/SalesPricesInquiry?$expand=SalesPriceDetails However, the Warehouse always shows up blank when I pass in this body:{ "SalesPriceDetails": [ { "InventoryID": { "value": "00099-00098" }, "Warehouse": { "value": "TEST001" }, "PriceType": { "value": "Customer Price Class" }, "PriceCode": { "value": "VIP" }, "UOM": { "value": "EA" }, "Price": { "value": "149.44" }, "Currency": { "value": "USD" }, "EffectiveDate": { "value": "2022-03-01T00:00:00-08:00" } }]}
Hi, I’m trying to delete a log line using the defaultendpoint http://localhost/AcumaticaERP/entity/Default/20.200.002/AppointmentPostman callbut this is not working, is this the right procedure or is there any other way we can achive deleting the logs?Error: business account (00081) cannot be deleted as it is referenced in multiple tables.
I’m not able to access the Acumatica API, through Postman and also Power Automate Tried with both OAuth2.0 and Standard Authentication.I’ll paste the sample below - ++++++++++++++++++++++++++++++++++++++++curl --location 'http://23.19.244.91/AcumaticaERP/entity/Default/20.200.001/Customer?%24select=CustomerName&%24top=10'++++++++++++++++++++++++++++++++++++++++"message": "An error has occurred.", "exceptionMessage": "Execution Timeout Expired. The timeout period elapsed prior to completion of the operation or the server is not responding.", "exceptionType": "PX.Data.PXDatabaseException""innerException": { "message": "An error has occurred.", "exceptionMessage": "The wait operation timed out", "exceptionType": "System.ComponentModel.Win32Exception", "stackTrace": null }++++++++++++++++++++++++++++++++++++++++++I was able to access them before, and It's been above 3 days this issue has started.Also, could you please provide me
Can I get some clarification regarding the point in the below screenshot? Thank you.
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.