We have a custom publicly available filter.
public PXFilter<ShipperTankFilter> showShipperTanksFilter;
The filter is defined as follows:
[PXHidden]
[Serializable]
public class ShipperTankFilter : IBqlTable
{
#region TankSerialNbr
[PXString(20)]
[PXSelector(typeof(Search<SOShipLineSplit.lotSerialNbr>))]
[PXUIField(DisplayName = "Tank Serial Nbr", Enabled = true)]
public virtual string TankSerialNbr { get; set; }
public abstract class tankSerialNbr : PX.Data.BQL.BqlString.Field<tankSerialNbr> { }
#endregion
}
We have an action called createBoxes. We’ve exposed this action as a REST API endpoint named CreateBoxes, mapping the TankSerialNbr parameter.

When we call the CreateBoxes action via Postman, we receive a 422 Unprocessable Entity error.
By way of troubleshooting, we create another field TankSerialNbr2 on the filter as shown:
[PXHidden]
[Serializable]
public class ShipperTankFilter : IBqlTable
{
#region TankSerialNbr
[PXString(20)]
[PXSelector(typeof(Search<SOShipLineSplit.lotSerialNbr>))]
[PXUIField(DisplayName = "Tank Serial Nbr", Enabled = true)]
public virtual string TankSerialNbr { get; set; }
public abstract class tankSerialNbr : PX.Data.BQL.BqlString.Field<tankSerialNbr> { }
#endregion
#region TankSerialNbr2
[PXString(20)]
public virtual string TankSerialNbr2 { get; set; }
public abstract class tankSerialNbr2 : PX.Data.BQL.BqlString.Field<tankSerialNbr2> { }
#endregion
}
The only difference between TankSerialNbr and TankSerialNbr2 is that the latter does not have the PXSelector line.
We map the new TankSerialNbr2 field as a parameter and the endpoint, and everything works - the value is passed into the filter when executing the action.
Can you help us figure out how to pass the value via TankSerialNbr without getting a 422 Unprocessable Entity error?