---
title: Transaction Fields
slug: netsuite/transaction-fields
description: Learn how to populate standard and custom transaction fields in NetSuite for sales orders, estimates, and invoices. This document provides an example of populating PO and Memo fields with custom fields from Salesforce and explains how to populate various 
docTags: 
createdAt: 2021-10-28T13:04:04.000Z
---

These fields modify the “upper half” of the Sales Order, Estimate, or Invoice. By upper half, we mean anything above the line items.

## Populating Standard Transaction Fields

Many of these fields are optional to NetSuite, meaning they might not have even been enabled in your NetSuite org. And they are optional in the sense that even if they have been enabled in Salesforce, they might not be required. So you will not necessarily need all of these fields.

Here is an example of populating the PO and Memo fields with custom fields from Salesforce.

:::CodeblockTabs
Button URL

```css
&po=sales_order_po_api_field__c
&memo=sales_order_memo_api_field__c
```
:::

To see a full list of the standard fields on a transaction record, please view the page [Summarized Button URLs](docId:4_d2zAKYWEATaNksTIGUP).

## Populating Custom Transaction Fields

(This section does not refer to lookups or picklists which are explained in another section of this document. This section only refers to other data types)

We designate a custom field on a transaction by starting the line of the Custom URL as **\&cf**, which is followed by the **orderNumber (optional)&#x20;**&#x61;nd then the **type&#x20;**&#x6F;f the custom field (i.e. text, date, etc.) followed by the API name of the NetSuite field. Here is the theoretical construction.

:::CodeblockTabs
Button URL

```css
&cf_type_netsuite_api_name=formula_field__c
```
:::

### Add "type" (Required)

The **type** can be decided by checking the **NetSuite Field Type&#x20;**&#x6F;f the line-level custom fields. For more information, please refer to [Custom Fields](docId\:SLAOaVMc9hGhpwuvjK-2w)

| **NetSuite Field Type** | **Type Value** | **Example**                                                       |
| ----------------------- | -------------- | ----------------------------------------------------------------- |
| Date                    | date           | \&cf\_***date***\_netsuite\_api\_name=formula\_field\_\_c         |
| DateTime                | datetime       | \&cf\_***datetime***\_netsuite\_api\_name=formula\_field\_\_c     |
| List Record (Lookup)    | picklist       | \&cf\_***picklist***\_netsuite\_api\_name=formula\_field\_\_c     |
| Integer Number          | integer        | \&cf\_***integer***\_netsuite\_api\_name=formula\_field\_\_c      |
| Decimal Number          | number         | \&cf\_***number***\_netsuite\_api\_name=formula\_field\_\_c       |
| Currency                | number         | \&cf\_***number***\_netsuite\_api\_name=formula\_field\_\_c       |
| Percent                 | number         | \&cf\_***number***\_netsuite\_api\_name=formula\_field\_\_c       |
| Check Box               | checkbox       | \&cf\_***checkbox***\_netsuite\_api\_name=formula\_field\_\_c     |
| Free Form Text          | text           | \&cf\_***text***\_netsuite\_api\_name=formula\_field\_\_c         |
| Text Area               | textarea       | \&cf\_***textarea***\_netsuite\_api\_name=formula\_field\_\_c     |
| Long Text               | longtextarea   | \&cf\_***longtextarea***\_netsuite\_api\_name=formula\_field\_\_c |
| Email Address           | text           | \&cf\_***text***\_netsuite\_api\_name=formula\_field\_\_c         |
| Hyperlink               | text           | \&cf\_***text***\_netsuite\_api\_name=formula\_field\_\_c         |

### Add "orderNumber" (Optional)

:::CodeblockTabs
Button URL (Field Value)

```none
&cf_orderNumber_type_netsuite_api_name=formula_field__c
```
:::

Th&#x65;**&#x20;order number** part in the button URL syntax above determines the order in which the custom fields are displayed on the create transaction pages (UI).

If we have an order number, they will be displayed as per our preferences:

:::CodeblockTabs
Button URL (Field Value)

```none
&cf_02_date_custbody_endDate=formula_field__c
&cf_01_date_custbody_startDate=formula_field__c
```
:::

If no order is given, the custom field columns are added randomly or alphabetically.

