Skip to main content
Question

Acumatica REST API – Issue with Wildcard (*) in Bill of Material Revision URL

  • Nov 13, 2026 12:29 PM UTC
  • 1 reply
  • 10 views
  • Translate All

Hi Acumatica Support Team,

We are facing an issue while uploading attachments to a Bill of Material (BOM) using the Acumatica REST API.

Scenario:

We need to upload a file to the following BOM record:

  • BOM ID: BOM000023

  • Revision: *

  • File Name: AACOMPUT01.jpg

We are using the following API URL for uploading the attachment:

http://localhost/AcumaticaQMS26R1/entity/ABPManufacturing/25.100.001/BillOfMaterial/BOM000023/*/files/AACOMPUT01.jpg

When we execute the API request, we receive the following error:

A potentially dangerous Request.Path value was detected from the client (*)

Questions:

  1. What is the correct REST API URL and HTTP method (PUT) for uploading an attachment when the BOM Revision value is *?

  2. Does Acumatica support * as a valid Revision key in the attachment upload URL?

  3. Can we use %2A instead of * to avoid the ASP.NET request-path validation error?

  4. Is there any alternative supported approach for uploading attachments to a BOM with Revision *?

Expected Result:

We want to successfully upload AACOMPUT01.jpg as an attachment to BOM BOM000023 with Revision * using the Acumatica REST API.

Please provide the recommended API URL and a working example for this upload scenario.

Thank you for your assistance.

1 reply

Steve Milner
Varsity III
Forum|alt.badge.img+7
  • Varsity III
  • Nov 13, 2026 5:33 PM UTC

My replies are created in part with the help of proprietary AI, built with my AI skills, curated and maintained myself. Most replies are tested on local instances before they go up, and all are reviewed before posted.

@bpatidar72, the request never gets to Acumatica. ASP.NET rejects it first. Its default requestPathInvalidCharacters list blocks * anywhere in the URL path, and a stock Acumatica web.config doesn’t change that list.

%2A won’t get around it, because the path is decoded before the check runs. We tried both forms on a local 2026 R1 site. Each came back 400 with your exact error.

The fix is to keep the revision out of the path. The URL you’re using, with the keys in it, is the older form Acumatica keeps for backward compatibility. The documented route is the record’s own file link. The query string isn’t part of that check, so find the BOM with a filter:

  1. GET http://localhost/AcumaticaQMS26R1/entity/ABPManufacturing/25.100.001/BillOfMaterial?$filter=BOMID eq 'BOM000023' and Revision eq '*'
  2. In the response, read the files:put value under _links. It points at the record by its note ID (a GUID), not by BOM ID and revision, and it ends in {filename}.
  3. Replace {filename} with AACOMPUT01.jpg. Send a PUT to that URL with the file bytes as the body and Content-Type: application/octet-stream.

 

Translate