If you have access to the Acumatica website you can look up the INTran DAC (class INTran) with the Source Code page SM204570.

The DAC indicates primary keys are fields:
- INTran.DocType
- INTran.RefNbr
- INTran.LineNbr
You can also deduce the DB type and length in the DAC attribute from the same INTran DAC.
Example DocType, PXDBString with IsFixed of length 1 maps to DB type char(1) :
#region DocType
public abstract class docType : PX.Data.BQL.BqlString.Field<docType> { }
protected String _DocType;
[PXUIField(DisplayName = INRegister.docType.DisplayName)]
[PXDBString(1, IsFixed = true, IsKey = true)]
[PXDefault(typeof(INRegister.docType))]
[INDocType.List()]
public virtual String DocType
{
get { return this._DocType; }
set { this._DocType = value; }
}
#endregion
PXDBString without IsFixed maps to varchar type.
PXDBString with IsUnicode maps to nvarchar.
PXDBInt maps to int.
DAC attributes should always match the DB type but DB is the final source of truth.
In DB here's how those fields are declared:
[DocType] [char](1) NOT NULL
[RefNbr] [nvarchar](15) NOT NULL
[LineNbr] [int] NOT NULL