Introducing Acumatica Cloud ERP: 2026R1
Technical discussions focused on Web Services and APIs for developers
Recently active
This past weekend, we just upgraded to Acumatica 2023 R1 (23.111.0019). We have an Excel app that retrieves some information from a Generic Inquiry through an OData request. It uses a specific account we created just for OData, so disregarding who is using it, it ends up submitting the request using this OData account.We’re aware of a known issue related to OData on our new version of Acumatica, but the error mentioned in the post is not exactly what we’re receiving as a response. And OData requests are actually working for some users.Everything has been working fine until after the upgrade, when we realized that the Excel app stopped working only for some users. We haven’t found a cause for this but we’re sure it’s not related to IP filters or individual account rights. For the users not able to use it, it returns the following error:{ "odata.error":{ "code":"","message":{ "lang":"en-US","value":"An error has occurred." },"innererror":{ "message":"en-us\r\nParameter n
Hello Team, We are working on the following APIs and facing the issue as data not getting updated to the screen, even though the status is Success with 200 code. Custom Endpoint created for Endpoint for Restriction Group by Subaccount (GL104030): Requirement is to update groups for Subaccount API to select the Group names and save by passing the Subaccount ID and the Group name via API (Postman) Endpoint for Journal Transaction screen (GL301000):Requirement is to reverse the Journal transaction entry. We have added the action to the standard Endpoint. Same issue here as well, call is success with 204 code but transaction is reversed. (Please confirm if its feasible or not Thanks & Regards,Vidyakeerthi K
I try to connected application and I receive authorization code but when I try to get access token, it show error I follow this document
Hi guys,Any ideas, maybe one of us has had a similar problem to mine.I want to obtain the PDF file that I have uploaded on the Invoices and Notes screen "AR301000" by consulting through postman, the acumatic version is 2019R21.- I was able to insert using postman, here is the result. The postman's query and response failed.I hope I have been clear, maybe my English is not correct.Could you tell me what I'm doing wrong, I would appreciate it, thank you very much.
I need to know the endpoint to get the employee branch field. This endpoint: {{testacuBaseUrl}}/Employee/C15315Just gives these fields:{ "id": "35029378-2110-ec11-89fc-000d3ac574da", "rowNumber": 1, "note": { "value": "" }, "EmployeeID": { "value": "C15315" }, "EmployeeName": { "value": "Jason Olschewski" }, "LastModifiedDateTime": { "value": "2023-10-05T17:28:43.78-06:00" }, "Status": { "value": "Active" }, "custom": {}}I’ve tried to expand the BAccount but it returns an error.I am currently using Build 21.212.0039
HiI exported a customization project with a connected application from version 2022R1and while import it into 2021R1 I got an error “Unknown tag OAuthClient” I assume its an issue with the version difference.Is there any option to export a customization project for an older version ?Do I need to have a customization project for each version ?
Hello All,We have been working on some API connections and whenever i try to build up a connection using my Acumatica credentials, its gets connected and running but then the Acumatica ecosystem logs me out. How can I resolve this issue?Thanks in advance.
Hai, i have issue .The initial alternate was "PP001" and I wanted to change it to PP002, but what happened was not updating but adding a new line.so how do you want to update not add a new line in crossreference with the API?please help me, thank youurl : {{base_url}}/ExtendEndpoint/22.200.001/StockItem?$expand=CrossReferences&$filter=InventoryID eq 'FG34132'body :{ "CrossReferences": [ { "VendorOrCustomer": { "value": "DR00OPPP" }, "AlternateType": { "value": "Customer Part Number" }, "AlternateID": { "value": "PP002" }, "UOM": { "value": "PIECE" }, "Description": { "value": "PP002" } } ]
I’m not sure if this is possible or not. Does anyone know how to get a check copy image via the API? I know Acumatica generates the check copies via batch. But once its done, it does not store the check copy images. I would like to programmatically save each check copy. Has anyone done this before?
Hi all, We’re still in implementation and I’m testing out the creation of Stock Items through the APIs. Back when we had two segment Item Classes, I had no trouble creating Stock Items. However, now that we’re testing out 5 level Item Classes, I’m having trouble finding the right ItemClass to send through the API. I keep getting “...cannot be found” on the Item Class object.For example, here is a class from the Acumatica view: ONS.PIPE____.__REG___.________.___I’ve tried passing multiple combinations of that class. What is odd is when I query the stock item with that class, this is the output: I’ve tried using that string as an input also. Any help is greatly appreciated.
Hi all, I am trying to create a customer using the rest API. I am not sending a CustomerID as I have the auto numbering turned on. It works great in the UI and Auto number works correctly. With the API it seams to just keep editing the same customer and not assigning a new ID. It uses <NEW> for the customer id. Am I missing a setting? Endpoint: http://localhost/AcumaticaERP/entity/Default/22.200.001/Customer Payload:{ // "CustomerID": {"value": "Cust04"}, "CustomerName": {"value": "Jane Dough"}, "CustomerClass": {"value": "Local"}, "SendDunningLettersbyEmail":{"value":false},"MainContact" : { "Email" : {"value" : "demo@gmail3.com" }, "Address" : { "AddressLine1" : {"value" : "40331 Lake Washington Blvd NE" }, "AddressLine2" : {"value" : "Suite 1030" }, "City" : {"value" : "Kirkland" }, "State" : {"value" : "WA" }, "PostalCode" : {"value" : "98033" } } } }
Hello,I’m looking for a way to retrieve the Related Items from the Acumatica APIs. Is there any way to do this? I expected that I would be able to find it on the /entity/Default/20.200.001/StockItem API but it does not appear to exist as a detail object.
I’m writing a script to automatically process electronic invoices that come in through email and perform several actions after parsing up the invoices and extracting information from them. I’m kind of new to REST API (I am very familiar with SQL) and so I was wondering how I could write a query that would return the InventoryID of the item based off 1) UPC (barcode) or 2) vendor and vendor code/alternate ID, which are things that are typically included on invoices. My code is below: Private Sub test() Dim ResponseText As String If RESTQuery("Default/22.200.001/StockItem?$expand=CrossReferences&$select=InventoryID&$filter=CrossReferences/VendorOrCustomer%20eq%20'V000000247'%20and%20CrossReferences/AlternateID%20eq%20'8836'", ResponseText) <> 0 Then Debug.Print "Query failed!" Else Debug.Print "Query successful!" End IfEnd Sub The first part of the error message that is returned is: {"message":"An error has occurred.","exceptionMessage":"The parent value for
I am trying to write an Excel VBA macro to change Inventory IDs. On a stock item’s page, there is a Change ID option, where I can do it manually. I’d like to do something like this: Sub TestChangeInvID(ByRef Cookie1 As String, ByRef Cookie2 As String) Dim Headers(4, 2) As String, Body As String, ResponseHeaders As String, ResponseText As String Headers(1, 1) = "Accept" Headers(1, 2) = "application/json" Headers(2, 1) = "Content-type" Headers(2, 2) = "application/json" Headers(3, 1) = "Cookie" Headers(3, 2) = "ASP.NET_SessionId=" & Cookie1 Headers(4, 1) = "Cookie" Headers(4, 2) = ".ASPXAUTH=" & Cookie2 Body = "{""entity"" : {""InventoryID"" : {""value"":""MYITEM""}},""parameters"" : {""InventoryID"" : {""value"":""MYITEM1""}}}" If SendData("POST", "https://alaskansales.acumatica.com/entity/Default/22.200.001/StockItem/ChangeID", Headers, Body, ResponseHeaders, ResponseText) = 204 Then Debug.Print "Success!" End IfEnd Sub It doesn’t work, I am guessing because
Is there a way to send an array of StockItem properties (including Attributes) so I can update more than one StockItem for each PUT operation? Currently, I’m using the following URL:https://site.com/entity/Default/22.200.001/StockItemThe body that works for a single update consists of just one InventoryID:{ "InventoryID": { "value": "12-3456" }, "Attributes": [ { "AttributeID": { "value": "Color" }, "Value": { "value": "" } } ], "Content": {}, "PriceClass": { "value": "TESTCLASS" }, "custom": { "ItemSettings": { "BaseItemWeight": { "type": "CustomDecimalField", "value": 2.000000 }, "BaseItemVolume": { "type": "CustomDecimalField", "value": 0.000000 } } } }I’ve tried putting an array ([ .. ]) around this one set but I keep getting the follo
Hi Community,I’m trying to add an appointment though PUT from Postman and I’m getting this error where it is saying that the “CustomerID: 'Customer' cannot be empty.; BillingBy: 'Billing By' cannot be empty.” but I have added these fields in the insert record. I’m not sure what this means am Imissing any fields or the query is wrong.This is an example with dummy data.Please let me know if i’m missing any steps Thanks in advance.
For some reason, I am required to pass the AttributeID when updating the value for a StockItem attribute. I’m using this URL:https://site.com/entity/Default/22.200.001/StockItem For example, when I want to update “Color”, I have to pass this in the JSON body "Attributes": [ { "AttributeID": { "value": "A372" }, "Value": { "value": "Black" } } ],Instead of finding all the IDs, I want to be able to just pass this: "Attributes": [ { "Attribute": { "value": "Color" }, "Value": { "value": "Black" } } ],Does anyone know how to do this?
HiI understand Acumatica.RESTClient package (CSharp) is not owned by Acumatica’s As we start to develop an integration projectit will be great if anyone has experience with it.Is it recommended ? Did you have issues while trying to implement some business ?maybe versions support and so ? Thanks a lot
Hello Everyone,I'm having a recurring issue I've been facing while using the Acumatica REST API. I am attempting to delete a payment detail from a sales order, and intermittently, I receive the following error message: "'CustomerID' cannot be empty."The sales order already exists in the system so I shouldn’t need to provide the CustomerID but even if I do I still get the error.On top of this the error response from Acumatica contains the CustomerID populated as it should be.Here's a general structure of my API request for reference :{ "OrderNbr": { "value": "000082" }, "OrderType": { "value": "SO" }, "Payments": [ { "id": "544535ce-2f8f-ee11-991e-90ccdfb7d7ce", "delete": true } ]} As well as a portion of the response{ "id": "e6f8ec91-2b8f-ee11-991e-90ccdfb7d7ce", "rowNumber": 1, "note": { "value": "" }, "error": "'CustomerID' cannot be empty.; CustomerID: 'CustomerID' cannot be empty.", ... "CustomerID": { "value": "2842011255" },...
I am new to Acumatica so please forgive the simplicity of my question. I am trying to create a API request using a GI, but I cannot for the life of me find the GI inside the WS Endpoints. I have followed the process laid out in the training video for REST API’s, and unless I misunderstood using this GI is the proper way to do so. Accordingly I have verified that the ‘make visible on the UI’ and the ‘expose via Odata’ checkboxes are checked in the GI. The GI also seems to be working properly as when I view the inquiry I am getting the expected response. From my understanding when the expose via Odata is checked this creates a WS endpoint that is then used in the endpoint API. However when navigate the endpoints I cannot find this generic inquiry anywhere. I am testing all of this inside our sandbox instance, that wouldn’t be the issue would it? I assume not because I have made successful API calls of other endpoints to test inside of the sandbox instance. Am I missing something? Any dir
In our application we use the Authorization Code Flow.Our connected application runs multiples times a day and automatically uses the Refresh Token to receive new Access Tokens, but after 30 days, the Refresh Token is no longer accepted by Acumatica. The message returned by the server when sending the Refresh Token to get a new Access token is:"error":"invalid_grant"This logic would have been working for the previous 30 days. I see that in 2023 R2, on the SM303010 form, there is “Refresh Tokens” section and an option to configure the Refresh Token lifetime (Absolute, Infinite, Sliding). My question is, in 2023 R1 (and older), where SM303010 does not have the “Refresh Tokens” section, is there a lifetime “policy” implicitly in place for Refresh Tokens?If there was an implicit Refresh Token absolute lifetime of 30 days (could not be configured) then this would explain to me why our logic to exchange the Refresh Token for a new Access Token would stop working after 30 days. But if the im
Previously, I was using SOAP to modify my user defined fields in a StockItem using the StockItemSummary object. After switching to REST, I can’t even see these fields when I view the results of a GET operation using the following URL:https://url.com/entity/Default/22.200.001/StockItem?$filter=InventoryID eq 'XYZ-123456'&$expand=Attributes,ReplenishmentParametersIs there a different object that I need to add to my $expand list?
Hello,How are user credentials passed through an Odata connection in Visual Studio?
Why is the datetime format, send in API responses, depending on system locale of sending server?Our polish developer gets a different format from his local instance.For example LastModifiedDate in Salesorder entity:‘11/27/2023 13:58:55’ instead of ‘2023-11-27T13:58:55+00:00’Is there a way to fix this to a fixed format?
Hi,Our users is asking us to Add “Uber Freight” as new Carrier plug-in. Do you have example/Documentation on how to implement that?
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.