NetSuite Sales Order From iPaaS.com Mapping Documentation
NetSuite Sales Orders can be created, updated, cancelled, and deleted from iPaaS.com order transactions. The integration maps the order header (customer, reference number, totals, memo, shipping) and, through child collections, the order lines, billing/shipping address, customer deposits, gift-certificate lines, and gift-card redemptions. The order can also be automatically fulfilled so it can later be returned through the Return Authorization feature. Orders transfer on demand from the iPaaS.com Manual Sync page or automatically when outbound order triggers are enabled.
ID Format
Manual Sync ID Format
Enter the iPaaS.com record ID of the order transaction on the Manual Sync page. The same ID is used for create, update, cancel, and delete — which collection acts is determined by the transaction's data and each collection's filter (see Integration Flow).
External ID Format
On a successful create, the integration stores the NetSuite Sales Order's internal ID back on the iPaaS.com transaction as its external ID. Subsequent transfers for the same order update the existing Sales Order rather than creating a new one. When no external-ID link yet exists, the integration can also recognize an already-existing NetSuite order using the field named by the Sales Order Duplicate Matching Field setting (in the integration's Subscription Settings in iPaaS.com). This setting takes a NetSuite salesorder field id, which the integration matches against the source transaction number ({field} IS "{transaction number}") to find an existing order. Set it to otherRefNum (recommended — the template writes the source transaction number into the order's Other Reference Number) or another queryable Sales Order field such as tranId. If the setting is left blank, this fallback is disabled and only the external-ID link guards against duplicate orders on re-sync. See System Caveats.
Deleted Record Support
Outbound delete is supported. The Delete NetSuite Sales Order FROM iPaaS.com collection removes the matching NetSuite Sales Order when the corresponding order is deleted in iPaaS.com. The deletion is driven entirely by the order's external-ID link to its NetSuite Sales Order — there are no field mappings on the delete collection. If no linked NetSuite order is found, there is nothing to delete. Automatic delete transfers run only when the order delete trigger is enabled in the subscription's Outbound Data Flows.
Custom Field Support
The Sales Order template ships several example custom-field mappings that demonstrate how NetSuite custom fields are populated from iPaaS.com (for example, a Multi-Select demonstration field, a List/Record demonstration field, and a discount item). Each custom field used by the integration requires two setup steps before it will carry data:
In NetSuite — create the custom field under Customization → Lists, Records & Fields (a Transaction Body Field for header-level fields or a Transaction Column Field for line-level fields), with Applies To set to the Sales transaction.
In iPaaS.com — create a matching custom field with the same NetSuite Field ID (NetSuite Subscription → Custom Fields → Add Custom Field).
List/Record and Multi-Select custom-field values are formatted by the integration's FormatCustomFields conversion function, which accepts each value as "id" or "id|RefName" (the NetSuite internal id, optionally with its display value). Supplying Multi-Select values replaces the existing set, and the function cannot clear a field to empty (add/update only).
The shipped example custom-field values are placeholders and must be replaced with your own (see Control Fields and Required Configuration).
Mapping Collection Status
Status: Enabled.
Trigger Events: Create (Add Sales Order), Update (Update Sales Order, and the cancellation memo), Delete (Delete Sales Order). Automatic transfers fire on the iPaaS.com order outbound triggers subscribed in Outbound Data Flows; all four operations are also available on demand from the Manual Sync page.
Duplicate or Conflicting Mappings
Several collections process iPaaS.com transactions, and which one acts on a given transaction is determined by each collection's filter. Review the filters and each collection's Add/Update settings before enabling, and confirm the intended source of truth for each transaction type:
Add / Update / Cancel / Delete NetSuite Sales Order FROM iPaaS.com — the four operations documented here; the filters are mutually exclusive (status and transaction-number suffix route a transaction to exactly one of create, update, or cancel).
Add NetSuite Cash Sale FROM iPaaS.com — fully paid sales recorded as a cash sale.
Add NetSuite Cash Refund FROM iPaaS.com — refunds.
Add NetSuite RMA FROM iPaaS.com — returns.
Collision handling
The integration does not use iPaaS.com collision handling for these collections; it prevents duplicate orders through the external-ID link plus the Sales Order Duplicate Matching Field fallback described in ID Format. Because that fallback is a matching key, changing or un-mapping it after orders exist can cause incoming orders to stop matching their NetSuite records and create duplicate orders. Keep the matching-key mapping stable once live and coordinate any change with your implementation partner.
Supported Child Collections
The parent Add / Update NetSuite Sales Order FROM iPaaS.com collections transfer the following children as part of the order:
Sales Order Line FROM iPaaS.com (Add / Update) — the order line items (at least one line is required to create the order).
Sales Order Address FROM iPaaS.com (Add / Update) — the billing/shipping address.
Sales Order Customer Deposit FROM iPaaS.com (Add / Update) — a customer deposit/payment recorded against the order.
Sales Order Gift Card Line FROM iPaaS.com (Add / Update) — gift-certificate line items.
Sales Order Gift Redemption FROM iPaaS.com (Add / Update) — a gift-card redemption applied as payment.
The Cancel NetSuite Sales Order FROM iPaaS.com collection has no children; line-level cancellations are handled by Cancel NetSuite Sales Order Line FROM iPaaS.com.
System Caveats
NetSuite Caveats
NetSuite calculates tax. NetSuite computes its own tax amounts from the customer, item, and shipping configuration; tax amounts cannot be set directly through the API. The template carries the iPaaS.com tax amount in the order memo and can also write it to transaction custom fields for a post-create override applied by the integration's Tax Override customization (see Control Fields and Required Configuration). The NetSuite SuiteTax feature is not required.
Subsidiary is required on OneWorld accounts. The order's subsidiary resolves from a subsidiary name and must match a subsidiary in your account.
Posting period must be open. The transaction date must fall in an open NetSuite posting period.
Gift certificates must already exist in NetSuite — matched by SKU for sale lines and by gift-card code for redemptions. A gift-certificate line must have a quantity of 1.
iPaaS.com Caveats
Customer handling. You don't need to sync the customer first. The integration checks whether the order's customer is already linked in NetSuite, matches an existing one by email if possible, and otherwise attempts to create it as a prerequisite. If the customer cannot be created, the order transfer is blocked with "Unable to create customer. This will prevent the transfer of the order." — resolve the underlying customer error and re-sync.
Duplicate-order matching key. The integration matches an existing NetSuite order by its external-ID link, falling back to the Sales Order Duplicate Matching Field when that setting is configured (it names the NetSuite field — for example
otherRefNum— matched against the source transaction number; if the setting is blank, no field match is attempted). Keep the chosen field's mapping stable once live — see Collision handling above.One order routes to one operation. A transaction is created, updated, or cancelled based on its status and transaction-number suffix; the filters are written to be mutually exclusive so an order is not double-processed.
Integration-Specific Caveats
Automatic fulfillment is the fulfill-before-return mechanism. The order line collection can trigger automatic item fulfillment; a fulfilled order is the precondition for returning it through the Return Authorization feature. See NetSuite Return Authorization From iPaaS.com Mapping Documentation.
Totals are computed by NetSuite from the lines. The order's subtotal, tax, and total are computed by NetSuite from the line items; header total values are carried for reference (memo) and reconciliation, not as authoritative totals.
Discounts must be reflected in the line unit price to be honored on the order (each line amount is quantity × unit price). A source that keeps the full unit price and carries the discount separately is mapped to a discount line item instead (see the DiscountItem_Id control field).
Setup Requirements
Control Fields and Required Configuration
Several mappings are control fields — they are implemented as NetSuite custom fields or static/formula values but they gate a feature and are required only if you want that feature. They are distinct from the optional example detail custom fields. Configure the ones whose feature you intend to use, and replace every shipped placeholder value before going live.
Mapping | Collection | Enables | Action | Required? |
custbody_otg_ipaas_tax_code | Add / Update (header) | Header tax-override | Set a valid NetSuite tax code id for your account. Placeholder — replace: ships as | Control — required for tax override |
custbody_otg_ipaas_tax_rate | Add / Update (header) | Header tax-rate override | Confirm the rate logic matches how your source supplies tax. | Control — required for tax-rate override |
custcol_otg_ipaas_tax_code | Line | Line tax-override | Set a valid NetSuite line tax code id. Placeholder — replace: ships as | Control — required for line tax |
custcol_otg_ipaas_tax_rate | Line | Line tax-rate override | Confirm/replace the rate logic; falls back to header totals when the source has no line tax. | Control — required for line tax-rate override |
custbody_es_bt_auth_by_external_pnref | Add / Update (header) | External payment authorization | Configure your payment-authorization custom field (a Dynamic Formula returning a real boolean is recommended over the static | Control — required for external payment auth |
CreateItemFullfilment | Line | Automatic item fulfillment (fulfill-before-return) | Set to enable auto-fulfillment so a later RMA can reference a fulfilled order. | Control — required for automatic fulfillment |
LocationId_Fullfilment | Line | Automatic item fulfillment | Provide a valid, non-zero NetSuite location the line ships from when fulfillment is on. | Control — required for automatic fulfillment |
ItemRecieved | Line | Automatic item fulfillment | Controls whether the line is included on the fulfillment. | Control — used with automatic fulfillment |
PaymentMethodType | Gift Redemption | Gift-card redemption | Must be exactly | Control — required for redemption |
DiscountItem_Id | Add / Update (header) | Order discount line | Replace with the Internal ID of your NetSuite discount item. Placeholder — replace: ships as | Required when the order has a discount |
Subscription settings (set in the integration's Subscription Settings in iPaaS.com):
Sales Order Duplicate Matching Field — the NetSuite
salesorderfield id the integration matches against the source transaction number ({field} IS "{transaction number}") to recognize an already-existing order. Set it tootherRefNum(recommended — the template writes the transaction number into Other Reference Number) or another queryable field such astranId; if left blank, the fallback is disabled and only the external-ID link prevents duplicates. Treat the chosen field's mapping as stable once live.Outbound Data Flows — subscribe to the iPaaS.com order create / update / delete triggers to enable automatic transfers. Until enabled, only Manual Sync transfers run.
Other placeholders to replace: the Subsidiary name (ships as Parent Company), the posting-period id and transaction date used by the tax/date formulas, and the example Multi-Select / List-Record custom-field values. Each shipped placeholder carries a "Placeholder value — replace during implementation" note on its mapping.
Authentication
The integration authenticates to NetSuite using the connection configured for the integration; no per-collection authentication is required. The Tax Override customization (the custbody_/custcol_otg_ipaas_tax_code/_rate custom fields plus the supporting User Event script) is documented in NetSuite Connections and Settings.
Integration Flow
An iPaaS.com order transfers — on demand from the Manual Sync page (enter the transaction's record ID), or automatically when the order outbound triggers are enabled in Outbound Data Flows.
Each collection's filter decides whether it acts: an active order with at least one line creates or updates the Sales Order; a Cancelled order writes the cancellation memo; a deleted order removes the linked Sales Order. Gift-card-only orders and transactions whose number ends in
-Dor-GC, and Invoice / Return / Validated Return types, are routed elsewhere or skipped.Create (Add). The integration checks for the order's customer in NetSuite — matching by email or otherwise attempting to create it as a prerequisite — then creates the Sales Order header, and transfers the children: order lines (required), the address, any customer deposit, gift-certificate lines, and gift-card redemptions. If automatic fulfillment is configured, the order is fulfilled so it can later be returned.
The NetSuite Sales Order internal ID is stored back on the iPaaS.com transaction as its external ID. The source transaction number is also written to Other Reference Number for visibility and as the duplicate-matching fallback.
Update. Subsequent activity for the same order matches the existing Sales Order (by external ID, then by the matching field) and updates the header and children.
Cancel. A cancelled order updates only the order's Memo with a cancellation summary; it does not change the order's status, lines, or totals.
Delete. A deleted iPaaS.com order removes the linked NetSuite Sales Order.
Mappings
Each mapping collection below shows its live filter (where one applies), a short description, and its field mapping table. Fields marked Control gate a specific feature and are required only if you use that feature; fields flagged with a Placeholder value ship with an example that must be replaced before go-live (see Setup Requirements).
Add NetSuite Sales Order FROM iPaaS.com
iPaaS.com data type: Transaction
Mapping Filter
if (
(
Payments.Count > 0 ||
Payments.All(x =>
!string.IsNullOrWhiteSpace(x.Description) &&
x.Description.Contains("House Account")
)
) &&
Lines.Count > 0 &&
!TransactionNumber.EndsWith("-D") &&
!TransactionNumber.EndsWith("-GC") &&
Type != "Validated Return" &&
Type != "Invoice" &&
Type != "Return" &&
Status != "Cancelled" &&
Status != "Refunded" &&
Status != "Partially Refunded" &&
Total >= 0
)
{
return true;
}return false;Filter Description. A transaction creates a Sales Order only when every clause holds: it has at least one payment, or all of its payments carry a "House Account" description (an order with no payments also satisfies this clause); it has at least one line (Lines.Count > 0); its TransactionNumber does not end in -D or -GC (excluding deposit and gift-card transactions); its Type is not "Validated Return", "Invoice", or "Return"; its Status is not "Cancelled", "Refunded", or "Partially Refunded"; and its Total is zero or greater (Total >= 0). A transaction failing any clause falls through to return false and is skipped (not errored).
This collection creates a new Sales Order in NetSuite from an iPaaS.com order, populating the customer, tax control fields, totals, shipping, discount, and example custom fields.
Mapping Type | Source Field (iPaaS.com) | Destination Field (NetSuite) | Description |
Dynamic Formula |
| Entity_Id | Required. Identifies the customer the order belongs to: company NetSuite ID first (company orders), then customer NetSuite ID, then match by email. The customer or company must exist in NetSuite (or be matchable by email) or the transfer fails. |
Dynamic Formula |
| custbody_otg_ipaas_tax_code | Control — required for tax override. Writes the NetSuite tax code to a header custom field. Placeholder value — replace during implementation: |
Dynamic Formula |
| custbody_otg_ipaas_tax_rate | Control — required for the tax-rate override. Writes the tax percentage to a header custom field used as a tax-rate override. Confirm the formula matches how your order source supplies tax, or replace it before enabling. |
Field | Total | custbodycustbody_otg_ipaas_original_or | Control — required for order-to-invoice total verification. Stores the originating order total in a custom field the integration later reads to confirm a related invoice's total matches. Confirm the custom field exists if you use that feature. |
Static |
| custbody_es_bt_auth_by_external_pnref | Control — required for external payment authorization. Flags the payment as authorized by an external reference so NetSuite does not re-authorize. A Dynamic Formula returning a real boolean is recommended over the static text |
Dynamic Formula |
| custbodymultiselect | Optional. Example Multi-Select custom field. Placeholder value — replace during implementation: the sample values are for demonstration. Requires the custom field created in NetSuite and registered in iPaaS.com. Supplying values overwrites the prior set; clearing all values is not supported. |
Dynamic Formula |
| custbody8921 | Optional. Example List/Record (single-select) custom field. Placeholder value — replace during implementation: the sample value is for demonstration. Requires the custom field created in NetSuite and registered in iPaaS.com. |
Lookup | Lookup Translation: OrderStatus_RefName | OrderStatus_RefName | Optional. Sets the NetSuite order status via a lookup translation you configure (map each source status to a NetSuite status). Until the table is populated, the order status is not set. |
Dynamic Formula |
| Memo | Optional. Builds a short order summary on the Memo field. Does not affect whether the order is created. |
Field | TransactionNumber | OtherRefNum | Recommended. Stores the web order number on Other Reference Number. Also serves as the duplicate-matching key (governed by the Sales Order Duplicate Matching Field setting). Changing or unmapping it after orders exist can break matching and create duplicate orders — keep it stable once live. |
Field | EmailAddress | Recommended. Sets the order email from the customer's email. | |
Field | Subtotal | Subtotal | Optional. Carries the order subtotal; NetSuite normally recalculates totals from the lines, so this is for reference. |
Field | ShippingAmount | ShippingCost | Optional. Sets the order shipping cost; works with |
Field | ShippingAmount | AltShippingCost | Optional. Alternate shipping-cost field populated from the same source shipping amount. |
Static |
| ShippingCostOverridden | Control — required when supplying a shipping cost. Tells NetSuite to use the supplied shipping cost rather than calculating its own. Keep |
Dynamic Formula |
| ShipMethod_RefName | Recommended. Sets the shipping method from the primary shipping address. The name must match a shipping method configured in NetSuite. |
Dynamic Formula |
| DiscountItem_Id | Optional. Sets the NetSuite discount item for an order-level discount when the discount amount is greater than zero. Placeholder value — replace during implementation: |
Dynamic Formula |
| DiscountItem_Rate | Optional. Sets the discount line amount from the order's discount amount when a discount is present. |
Update NetSuite Sales Order FROM iPaaS.com
iPaaS.com data type: Transaction
Mapping Filter
if (
(
Payments.Count > 0 ||
Payments.All(x =>
!string.IsNullOrWhiteSpace(x.Description) &&
x.Description.Contains("House Account")
)
) &&
Lines.Count > 0 &&
!TransactionNumber.EndsWith("-D") &&
!TransactionNumber.EndsWith("-GC") &&
Type != "Validated Return" &&
Type != "Invoice" &&
Type != "Return" &&
Status != "Cancelled" &&
Status != "Refunded" &&
Status != "Partially Refunded" &&
Total >= 0
)
{
return true;
}return false;Filter Description. This collection uses the same guard as the Add collection above: the order must have at least one payment or all-"House Account" payments, at least one line, a TransactionNumber not ending in -D/-GC, a Type other than "Validated Return"/"Invoice"/"Return", a Status other than "Cancelled"/"Refunded"/"Partially Refunded", and Total >= 0. Failing transactions are skipped.
This collection updates an existing Sales Order from an iPaaS.com order, refreshing the customer, tax control fields, totals, shipping, discount, and example custom fields.
Mapping Type | Source Field (iPaaS.com) | Destination Field (NetSuite) | Description |
Dynamic Formula |
| Entity_Id | Required. Identifies the customer the order belongs to (company ID, then customer ID, then email match). Must resolve to an existing NetSuite customer or the transfer fails. |
Dynamic Formula |
| custbody_otg_ipaas_tax_code | Control — required for tax override. Writes the NetSuite tax code to a header custom field. Placeholder value — replace during implementation: |
Dynamic Formula |
| custbody_otg_ipaas_tax_rate | Control — required for the tax-rate override. Writes the tax percentage to a header custom field. Confirm/replace the formula to match how your source supplies tax. |
Field | Total | custbodycustbody_otg_ipaas_original_or | Control — required for order-to-invoice total verification. Stores the original order total for later invoice-total verification. |
Static |
| custbody_es_bt_auth_by_external_pnref | Control — required for external payment authorization. Flags the payment as externally authorized. Prefer a Dynamic Formula returning a real boolean over the static text |
Dynamic Formula |
| custbodymultiselect | Optional. Example Multi-Select custom field. Placeholder value — replace during implementation. Supplying values overwrites the prior set; clearing all values is not supported. |
Dynamic Formula |
| custbody8921 | Optional. Example List/Record custom field. Placeholder value — replace during implementation. |
Lookup | Lookup Translation: OrderStatus_RefName | OrderStatus_RefName | Optional. Sets the NetSuite order status via a lookup translation you configure. |
Dynamic Formula |
| Memo | Optional. Builds a short order summary on the Memo field. |
Field | TransactionNumber | OtherRefNum | Recommended. Stores the web order number and serves as the duplicate-matching fallback key. Keep stable once live. |
Field | EmailAddress | Recommended. Sets the order email from the customer's email. | |
Field | Subtotal | Subtotal | Optional. Carries the subtotal for reference; NetSuite recalculates from the lines. |
Field | ShippingAmount | ShippingCost | Optional. Sets the order shipping cost; pairs with |
Field | ShippingAmount | AltShippingCost | Optional. Alternate shipping-cost field from the same source amount. |
Static |
| ShippingCostOverridden | Control — required when supplying a shipping cost. Keep |
Dynamic Formula |
| ShipMethod_RefName | Recommended. Sets the shipping method from the primary shipping address; must match a NetSuite shipping method. |
Dynamic Formula |
| DiscountItem_Id | Optional. Discount item for an order-level discount. Placeholder value — replace during implementation: |
Dynamic Formula |
| DiscountItem_Rate | Optional. Discount line amount when a discount is present. |
Field | Total | Total | Optional. Carries the order total for reference; NetSuite calculates the total from the lines. |
Dynamic Formula |
| DiscountAmount | Optional. Sets the order-level discount amount when greater than zero. |
Dynamic Formula |
| DiscountRate | Optional. Sets the discount rate as the negative of the discount amount when a discount is present. |
Cancel NetSuite Sales Order FROM iPaaS.com
iPaaS.com data type: Transaction
Mapping Filter
(Lines.Count > 0)
&& !IsGiftCardSaleOnlyOrder(Type, Lines, Payments)
&& !TransactionNumber.EndsWith("-D")
&& !TransactionNumber.EndsWith("-GC")
&& Status == "Cancelled"
&& Type != "Invoice"
&& Type != "Return"Filter Description. A transaction passes only when it has at least one line (Lines.Count > 0); is not a gift-card-only sale (!IsGiftCardSaleOnlyOrder(...)); its TransactionNumber does not end in -D or -GC; its Status is "Cancelled"; and its Type is neither "Invoice" nor "Return". This collection acts only on orders whose status is already Cancelled; everything else is skipped.
This collection writes a cancellation summary to the order's Memo in NetSuite (its lines are closed via the child Cancel Sales Order Line collection). It does not delete the order, change line items, or change totals.
Mapping Type | Source Field (iPaaS.com) | Destination Field (NetSuite) | Description |
Dynamic Formula |
| Memo | Optional. Builds the cancellation summary on the order Memo. Does not affect the cancellation itself; the only mapped field on this collection. |
Add NetSuite Sales Order Line FROM iPaaS.com
iPaaS.com data type: Transaction Line
Mapping Filter
var netsuiteGiftCertificateId = await GetGiftCertificateIdBySkuAsync(Sku);
if(netsuiteGiftCertificateId != null) {
return false;
}
else {
var netSuiteProductId = await GetNetSuiteProductIdBySku(Sku);
if(netSuiteProductId != null){
return true;
}
else{
throw new Exception("Sku "+Sku+" is not linked to a NetSuite item id");
}
}Filter Description. The filter resolves each line's Sku against NetSuite. It first looks up a gift certificate by SKU (GetGiftCertificateIdBySkuAsync); a match returns false so gift-certificate lines are excluded from this collection (they are handled by the Gift Card Line collection). Otherwise it resolves the product item (GetNetSuiteProductIdBySku); a match passes the line. If neither resolves, the filter throws and the line (and order) fails with the verbatim message "Sku [Sku] is not linked to a NetSuite item id".
Maps each source order line to a new NetSuite sales order line, including item, quantity, amount, optional fulfillment, and line-level tax control fields.
Mapping Type | Source Field (iPaaS.com) | Destination Field (NetSuite) | Description |
Dynamic Formula |
| Item_Id | Required. Resolves the NetSuite item from the product SKU. The product must exist and be linked in NetSuite; an unmatched SKU fails the line and order. |
Field | Qty | Quantity | Required. The quantity ordered on this line. |
Dynamic Formula |
| Amount | Recommended. The line amount, computed as quantity × unit price. A discount is honored only when the source folds it into the unit price; a source that keeps the full unit price and carries the discount separately posts at full price × quantity. Validate return/line amounts in a staging environment if your source stores discounts separately. |
Field | Description | Description | Optional. The line description carried to the order line. |
Dynamic Formula |
| CreateItemFullfilment | Control — required for automatic fulfillment. Whether the integration auto-creates an item fulfillment. Works with |
Dynamic Formula |
| LocationId_Fullfilment | Control — required for automatic fulfillment. The NetSuite location the line ships from. Must resolve to a valid, non-zero location when fulfillment is on; |
Dynamic Formula |
| ItemRecieved | Control — used with automatic fulfillment. Whether this line is included on the fulfillment. Leave true to fulfill the line. |
Dynamic Formula |
| custcol_otg_ipaas_tax_code | Control — required for line tax. Line-level NetSuite tax code. Placeholder value — replace during implementation: |
Dynamic Formula |
| custcol_otg_ipaas_tax_rate | Control — required for the line tax-rate override. Line-level tax percentage. Confirm/replace the logic; when the source has no line tax, header totals are used. |
Update NetSuite Sales Order Line FROM iPaaS.com
iPaaS.com data type: Transaction Line
Mapping Filter
var netsuiteGiftCertificateId = await GetGiftCertificateIdBySkuAsync(Sku);
if(netsuiteGiftCertificateId != null) {
return false;
}
else {
var netSuiteProductId = await GetNetSuiteProductIdBySku(Sku);
if(netSuiteProductId != null){
return true;
}
else{
throw new Exception("Sku "+Sku+" is not linked to a NetSuite item id");
}
}Filter Description. Same as the Add Line filter: gift-certificate SKUs are excluded (handled by the Gift Card Line collection), product SKUs pass, and an unmatched SKU throws "Sku [Sku] is not linked to a NetSuite item id".
Maps each source order line to an existing NetSuite sales order line on update.
Mapping Type | Source Field (iPaaS.com) | Destination Field (NetSuite) | Description |
Dynamic Formula |
| Item_Id | Required. Resolves the NetSuite item from the SKU; an unmatched SKU fails the line and order. |
Field | Qty | Quantity | Required. The quantity on this line. |
Dynamic Formula |
| Amount | Recommended. Line amount = quantity × unit price. Discounts are honored only when folded into the unit price (see Add Line). |
Field | Description | Description | Optional. The line description. |
Dynamic Formula |
| CreateItemFullfilment | Control — required for automatic fulfillment. Whether to auto-create an item fulfillment. The fulfill-before-return mechanism. |
Dynamic Formula |
| LocationId_Fullfilment | Control — required for automatic fulfillment. Fulfillment location; must be valid and non-zero when fulfillment is on. |
Dynamic Formula |
| ItemRecieved | Control — used with automatic fulfillment. Whether this line is on the fulfillment. |
Dynamic Formula |
| custcol_otg_ipaas_tax_code | Control — required for line tax. Line tax code. Placeholder value — replace during implementation: |
Dynamic Formula |
| custcol_otg_ipaas_tax_rate | Control — required for the line tax-rate override. Line tax percentage; confirm/replace the logic. |
Cancel NetSuite Sales Order Line FROM iPaaS.com
iPaaS.com data type: Transaction Line
Closes the individual lines of an order being cancelled, matching each line by item and quantity and marking it closed in NetSuite.
Mapping Type | Source Field (iPaaS.com) | Destination Field (NetSuite) | Description |
Dynamic Formula |
| Item_Id | Required. Resolves the NetSuite item on the line being cancelled, from the SKU, so the correct line can be located and closed. |
Field | Qty | Quantity | Required. The quantity on the line being cancelled. |
Dynamic Formula |
| IsClosed | Required. Marks the order line as closed — how a line cancellation is represented in NetSuite. |
Add NetSuite Sales Order Address FROM iPaaS.com
iPaaS.com data type: Transaction Address
This collection writes the order's billing/shipping address onto a newly created NetSuite sales order.
Mapping Type | Source Field (iPaaS.com) | Destination Field (NetSuite) | Description |
Dynamic Formula |
| Addressee | Recommended. The name shown on the address; uses first + last name when both are present, otherwise the company name. |
Field | Address1 | Addr1 | Recommended. The first address line. |
Field | Address2 | Addr2 | Optional. The second address line (suite, unit, etc.). |
Field | Address3 | Addr3 | Optional. The third address line. |
Field | City | City | Recommended. The address city. |
Field | Region | State | Recommended. The state or region. |
Field | PostalCode | Zip | Recommended. The postal/ZIP code. |
Field | IsPrimaryBilling | IsPrimaryBilling | Recommended. Whether this is the order's primary billing address; helps NetSuite apply the address to the correct role. |
Field | IsPrimaryShipping | IsPrimaryShipping | Recommended. Whether this is the order's primary shipping address; the order's shipping method is read from the primary shipping address. |
Update NetSuite Sales Order Address FROM iPaaS.com
iPaaS.com data type: Transaction Address
This collection updates the order's billing/shipping address on an existing NetSuite sales order.
Mapping Type | Source Field (iPaaS.com) | Destination Field (NetSuite) | Description |
Dynamic Formula |
| Addressee | Recommended. The name shown on the address; first + last name when both present, otherwise company name. |
Field | Address1 | Addr1 | Recommended. The first address line. |
Field | Address2 | Addr2 | Optional. The second address line. |
Field | Address3 | Addr3 | Optional. The third address line. |
Field | City | City | Recommended. The address city. |
Field | Region | State | Recommended. The state or region. |
Field | PostalCode | Zip | Recommended. The postal/ZIP code. |
Field | IsPrimaryBilling | IsPrimaryBilling | Recommended. Whether this is the primary billing address. |
Field | IsPrimaryShipping | IsPrimaryShipping | Recommended. Whether this is the primary shipping address; the shipping method is read from it. |
Add NetSuite Sales Order Customer Deposit FROM iPaaS.com
iPaaS.com data type: Transaction Payment
Mapping Filter
if (MethodInfo == null ||
!MethodInfo.TryGetValue("GiftCardId", out var giftCardId) ||
string.IsNullOrEmpty(giftCardId?.ToString()))
{
return true;
}
else if (MethodInfo.ContainsKey("GiftCardId"))
{
return false;
}Filter Description. The deposit is recorded (return true) when the payment is not a gift card — that is, when MethodInfo is null, has no GiftCardId key, or the GiftCardId value is null/empty. When MethodInfo contains a populated GiftCardId, the filter returns false and the row is rejected; gift-card payments are recorded as gift redemptions, not customer deposits.
This collection records a customer deposit (prepayment) against a newly created order.
Mapping Type | Source Field (iPaaS.com) | Destination Field (NetSuite) | Description |
Field | Amount | Payment | Required. The deposit amount applied to the order; without an amount there is no deposit to record. |
Lookup | Lookup Translation: Account_Id | Account_Id | Optional. The NetSuite account the deposit posts to, via a lookup translation. A default ships in the template — confirm it matches your accounts. |
Update NetSuite Sales Order Customer Deposit FROM iPaaS.com
iPaaS.com data type: Transaction Payment
Mapping Filter
if (MethodInfo == null ||
!MethodInfo.TryGetValue("GiftCardId", out var giftCardId) ||
string.IsNullOrEmpty(giftCardId?.ToString()))
{
return true;
}
else if (MethodInfo.ContainsKey("GiftCardId"))
{
return false;
}Filter Description. Same as the Add Customer Deposit filter: non-gift-card payments are recorded as deposits (return true); a populated GiftCardId is rejected (return false).
This collection records a customer deposit (prepayment) against an existing order.
Mapping Type | Source Field (iPaaS.com) | Destination Field (NetSuite) | Description |
Field | Amount | Payment | Required. The deposit amount applied to the order. |
Lookup | Lookup Translation: Account_Id | Account_Id | Optional. The NetSuite account the deposit posts to, via a lookup translation. Confirm the shipped default matches your accounts. |
Add NetSuite Sales Order Gift Card Line FROM iPaaS.com
iPaaS.com data type: Transaction Line
Mapping Filter
var netsuiteGiftCertificateId = await GetGiftCertificateIdBySkuAsync(Sku);
if(netsuiteGiftCertificateId != null) {
if(Qty > 1) {
throw new Exception("Gift card quantity cannot be greater than 1. NetSuite supports only one gift certificate per transaction line");
return false;
}
else {
return true;
}
}
else {
return false;
}Filter Description. The filter resolves the line's Sku to a NetSuite Gift Certificate item (GetGiftCertificateIdBySkuAsync). A SKU that does not resolve to a Gift Certificate item is rejected (handled by the regular Sales Order Line collection instead). A resolved gift-certificate line with Qty greater than 1 throws "Gift card quantity cannot be greater than 1. NetSuite supports only one gift certificate per transaction line"; only quantity 1 passes. Sell multiple certificates as separate lines.
This collection adds an order line that sells a NetSuite Gift Certificate item, populating the certificate's identity, value, recipient, and delivery details.
Mapping Type | Source Field (iPaaS.com) | Destination Field (NetSuite) | Description |
Dynamic Formula |
| Item_Id | Required. The NetSuite Gift Certificate item, resolved from the SKU. The Gift Certificate item must already exist in NetSuite. |
Field | Qty | Quantity | Required. The line quantity — must be 1; a quantity greater than one is rejected. |
Dynamic Formula |
| Amount | Recommended. The face value of the gift certificate line (quantity × unit price). |
Field | Description | Description | Optional. The line description carried to the gift-certificate line. |
Dynamic Formula |
| GiftCertificateFrom | Control — links the certificate to its order. Records which transaction the certificate originated on; leave mapped so the certificate ties to its originating order. |
Field | AssignedIdentification | GiftCertificateMessage | Optional. The message recorded on the gift certificate. |
Dynamic Formula |
| GiftCertificateRecipientEmail | Recommended. The email the certificate is delivered to; company email when present, otherwise the customer's. |
Dynamic Formula |
| GiftCertificateRecipientName | Recommended. The recipient name on the certificate. |
Dynamic Formula |
| custcol_otg_ipaas_tax_code | Control — line tax. Line tax code. Gift-certificate sales are commonly non-taxable and this is often left empty; if taxable, supply a valid tax code (applied by the Tax Override customization, not SuiteTax). |
Dynamic Formula |
| custcol_otg_ipaas_tax_rate | Control — line tax-rate override. Applies only if gift-certificate lines are taxable in your configuration; otherwise left empty. |
Dynamic Formula |
| CreateItemFullfilment | Control. Whether to auto-create an item fulfillment. Gift certificates are usually delivered electronically, so this is normally left off. |
Dynamic Formula |
| ItemRecieved | Control — used with automatic fulfillment. Whether the line is included on a fulfillment when fulfillment is enabled. |
Update NetSuite Sales Order Gift Card Line FROM iPaaS.com
iPaaS.com data type: Transaction Line
Mapping Filter
if(Type == "Gift Card" && LineInfo.ContainsKey("GiftCardId") && LineInfo["GiftCardId"] != null && !string.IsNullOrEmpty(LineInfo["GiftCardId"].ToString())){
var netsuiteGiftCertificateId = await GetGiftCertificateIdBySkuAsync(Sku);
if(netsuiteGiftCertificateId != null) {
if(Qty > 1) {
throw new Exception("Gift card quantity cannot be greater than 1. NetSuite supports only one gift certificate per transaction line");
return false;
}
else {
return true;
}
}
else {
return false;
}
}Filter Description. The line is processed only when its Type is Gift Card and LineInfo carries a non-empty GiftCardId; a line failing those conditions is not processed by this collection. When they hold, the Sku is resolved to a NetSuite Gift Certificate item — an unresolved SKU is rejected, and a resolved line with Qty greater than 1 throws "Gift card quantity cannot be greater than 1. NetSuite supports only one gift certificate per transaction line"; only quantity 1 passes.
This collection updates an existing order line that sells a NetSuite Gift Certificate item.
Mapping Type | Source Field (iPaaS.com) | Destination Field (NetSuite) | Description |
Dynamic Formula |
| Item_Id | Required. The NetSuite Gift Certificate item, resolved from the SKU; must already exist. |
Field | Qty | Quantity | Required. The line quantity — must be 1. |
Dynamic Formula |
| Amount | Recommended. The face value of the gift-certificate line. |
Field | Description | Description | Optional. The line description. |
Dynamic Formula |
| GiftCertificateFrom | Control — links the certificate to its order. Leave mapped so the certificate ties to its originating order. |
Field | AssignedIdentification | GiftCertificateMessage | Optional. The message recorded on the gift certificate. |
Dynamic Formula |
| GiftCertificateRecipientEmail | Recommended. The delivery email; company when present, otherwise the customer's. |
Dynamic Formula |
| GiftCertificateRecipientName | Recommended. The recipient name on the certificate. |
Dynamic Formula |
| custcol_otg_ipaas_tax_code | Control — line tax. Often empty for non-taxable certificate sales; if taxable, supply a valid tax code (Tax Override customization, not SuiteTax). |
Dynamic Formula |
| custcol_otg_ipaas_tax_rate | Control — line tax-rate override. Applies only if certificate lines are taxable; otherwise left empty. |
Dynamic Formula |
| ItemRecieved | Control — used with automatic fulfillment. Whether the line is on a fulfillment when fulfillment is enabled. |
Add NetSuite Sales Order Gift Redemption FROM iPaaS.com
iPaaS.com data type: Transaction Payment
Mapping Filter
if (MethodInfo != null &&
MethodInfo.TryGetValue("GiftCardId", out var giftCardId) &&
!string.IsNullOrEmpty(giftCardId?.ToString()))
{var result = await ValidateNetSuiteGiftCertificateAsync(giftCardId.ToString());
if(result != null) {
return true;
}
else {
return false;
}
}return false;Filter Description. The payment is processed only when MethodInfo is non-null and carries a non-empty GiftCardId; otherwise the final return false rejects it. When a gift card id is present, it is validated against NetSuite (ValidateNetSuiteGiftCertificateAsync): a matched certificate (non-null result) passes, an unmatched one is rejected. This filter does not throw.
This collection applies a gift card as payment on the order, recording it as a NetSuite gift certificate redemption.
Mapping Type | Source Field (iPaaS.com) | Destination Field (NetSuite) | Description |
Static |
| PaymentMethodType | Control — required for gift-card redemption. Routes the payment to gift-certificate redemption rather than a standard payment. Must be exactly |
Dynamic Formula |
| GiftCertRedemption_AuthCode_Id | Required for redemption. Identifies the NetSuite gift certificate being redeemed, matched by the gift card code. The certificate must already exist; an unmatched code cannot be redeemed. |
Field | Amount | GiftCertRedemption_AuthCodeApplied | Required. The amount redeemed against the certificate toward the order. |
Field | Method | GiftCertRedemption_AuthCode_RefName | Recommended. The payment-method reference name for the redemption. |
Update NetSuite Sales Order Gift Redemption FROM iPaaS.com
iPaaS.com data type: Transaction Payment
Mapping Filter
if (MethodInfo != null &&
MethodInfo.TryGetValue("GiftCardId", out var giftCardId) &&
!string.IsNullOrEmpty(giftCardId?.ToString()))
{
var result = await ValidateNetSuiteGiftCertificateAsync(giftCardId.ToString());
if(result != null) {
return true;
}
else {
return false;
}
}return false;Filter Description. Same as the Add Gift Redemption filter: a non-empty, NetSuite-validated GiftCardId passes; a missing or unmatched gift card id is rejected. This filter does not throw.
This collection updates a gift card applied as payment on the order.
Mapping Type | Source Field (iPaaS.com) | Destination Field (NetSuite) | Description |
Static |
| PaymentMethodType | Control — required for gift-card redemption. Must be exactly |
Dynamic Formula |
| GiftCertRedemption_AuthCode_Id | Required for redemption. The NetSuite gift certificate being redeemed, matched by code; must already exist. |
Field | Amount | GiftCertRedemption_AuthCodeApplied | Required. The amount redeemed against the certificate. |
Field | Method | GiftCertRedemption_AuthCode_RefName | Recommended. The payment-method reference name for the redemption. |
Error Handling
"Sku [Sku] is not linked to a NetSuite item id" — an order line's SKU resolved to neither a NetSuite gift certificate nor a product item. Resolution: confirm the SKU and link the corresponding item/product in NetSuite, then re-sync the order.
"Gift card quantity cannot be greater than 1. NetSuite supports only one gift certificate per transaction line" — a gift-certificate line was sent with a quantity greater than 1. Resolution: sell each gift certificate as its own line with quantity 1.
Customer could not be resolved — when
Entity_Idcannot match a NetSuite customer by company ID, customer ID, or email, the order cannot be created. Resolution: confirm the customer (or company) exists in NetSuite or is matchable by email before re-syncing.Subsidiary / posting-period rejections — NetSuite rejects the order when the subsidiary name does not match (OneWorld accounts) or the transaction date falls outside an open posting period. Resolution: confirm the subsidiary name and that the posting period for the transaction date is open.
For broader behavior (tax handling, totals, discounts, the duplicate-matching key), see System Caveats.
Testing & Validation
Test Scenarios
Create an order. Manually sync an iPaaS.com order and confirm a NetSuite Sales Order is created with the correct customer, lines, address, totals, and that the NetSuite internal ID is stored back on the iPaaS.com transaction.
Update an order. Re-sync the same order after a change and confirm the existing Sales Order is updated rather than a duplicate created.
Required-field validation. Sync an order whose line SKU is not linked in NetSuite and confirm the error "Sku [Sku] is not linked to a NetSuite item id".
ID format. Manually sync using the iPaaS.com transaction record ID and confirm success.
Child collections. Create an order with lines, an address, and (if used) a customer deposit, gift-card line, and gift redemption; confirm each child appears correctly on the NetSuite order.
Duplicate matching. With orders already synced, re-send one and confirm it matches the existing NetSuite order via the Sales Order Duplicate Matching Field (no duplicate created).
Cancellation. Sync a cancelled order and confirm the cancellation summary appears on the NetSuite order Memo.
Gift-card quantity guard. Send a gift-certificate line with quantity greater than 1 and confirm the rejection message.
Fulfill-before-return. With automatic fulfillment configured, confirm the order is fulfilled so it can later be returned through the Return Authorization feature.
Validation Checklist
The customer resolves correctly (company ID, customer ID, or email) for representative orders.
Tax control fields carry a valid tax code (not the placeholder
5) and the Tax Override customization applies tax as expected.The discount item is set to your own NetSuite discount item (not the placeholder
241).The subsidiary name and posting period are valid for your account.
The Sales Order Duplicate Matching Field mapping is populated and stable.
Shipping cost and method transfer correctly and
ShippingCostOverriddenis set when a shipping cost is supplied.Gift-certificate lines (quantity 1) and gift redemptions resolve to existing NetSuite certificates.
Additional Notes
Refund and return processing happen in NetSuite. This documentation covers creating, updating, cancelling, and deleting Sales Orders. Returns are handled by the NetSuite Return Authorization From iPaaS.com Mapping Documentation; a fulfilled order (via the automatic-fulfillment control fields) is the precondition for a return.
Tax is applied by the Tax Override customization, documented in NetSuite Connections and Settings. The NetSuite SuiteTax feature is not required.
Known limitations affecting Sales Orders are collected in NetSuite Known Limitations.
