Introducing Acumatica Cloud ERP: 2026R1
Technical discussions focused on Web Services and APIs for developers
Recently active
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?
Hi, I added GeneratePaymentLink Action in Web Endpoint Services, so the problem is, in API it is always proceeding but in GUI there’s error: “Amount Due is Required”. How can I catch that error in Web Endpoint Services?
Hi Community. I am writing an Excel VBA macro to chug through invoices and price books to update vendor costs and retail prices for stock items in Acumatica via the REST API. If it finds an item on an invoice that is not currently in Acumatica, it can create it. It sets the vendor costs and retail prices by calling VendorPricesInquiry and SalesPricesInquiry respectively (a sample of the former is given below). All is working fine. If the item already exists and I want to update the vendor cost, say, from an existing vendor, I kind of run into a problem, since that item already has a vendor cost for that vendor. I have found a workaround by deleting the old cost and inserting a new cost. Not pretty, but it works. How exactly would I just do an update? Also, I’m pretty new to REST API, so I haven’t been able to get a date to work (every time I try to include a date, my query fails). I want to set the EffectiveDate to a specific date, when I update an item. How do I do that? I
I’m changing from using SOAP-based API to REST API. Is there an equivalent to the IN209000Export and IN209000Submit? I can’t find the web service endpoint that can either retrieve or add new Item Price Classes (ScreenId=IN209000)
I’m using this nuget in visual studio: https://github.com/Acumatica/AcumaticaRESTAPIClientForCSharp/Trying to set up a very basic bambooHR - Acumatica integration to create leave requests from bamboo as timeEntries in Acumatica.When I log in with just a username and password, everything works and it logs me into our live tenant. When I use my local offline demo vm I have no tenants to test with also.I want to log into our test tenant, but when I specify the test tenant and branch I get a Server error 500 - internal server error. Has anyone else run into this before? In my main program I have: myAcumaticaStuff.Login(AcumaticaBaseUrl, "ApiLogin", "******", "Staging", "Edmonton", "en-CA")The sub in the module:(myauthApi is from: Imports Acumatica.Auth.Api)Public Shared Sub Login(siteURL As String, username As String, password As String, Optional tenant As String = Nothing, Optional branch As String = Nothing, Optional locale As String = Nothing) myauthApi = New AuthApi(siteURL)
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.