Lets consider there is a transaction existed in the system, then how can we identify which type of transaction it is? What is the difference between each three types?
Example: There is a transaction in Oracle Purchasing and by seeing the type we can identify whether it belongs to Internal or Purchase requisition.
PO_REQUISITION_LINES_ALL table, since a requisition can probably have both catalog-items and non-catalog-item lines.
That said, perhaps explore the following columns from PO_REQUISITION_LINES_ALL table:
NONCAT_TEMPLATE_ID - this refers to Non-Catalog Request template identifier
if value = 'EXTERNAL' then it is punchout.
if value = 'NONCATALOG' then it is non-catalog
If value = blank then it is catalog.