Skip to main content

NetSuite Sales Order From iPaaS.com Mapping Documentation

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:

  1. 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.

  2. 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 5.

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 5.

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 true).

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 Gift Card to route the payment to gift-certificate redemption.

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 241.

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 salesorder field id the integration matches against the source transaction number ({field} IS "{transaction number}") to recognize an already-existing order. Set it to otherRefNum (recommended — the template writes the transaction number into Other Reference Number) or another queryable field such as tranId; 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

  1. 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.

  2. 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 -D or -GC, and Invoice / Return / Validated Return types, are routed elsewhere or skipped.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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

Company NetSuite ID, else Customer NetSuite ID, else match by email

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

return "5";

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: 5 is an example and must be set to a valid tax code for your account. Tax is applied by the integration's Tax Override customization; SuiteTax is not required.

Dynamic Formula

var result = (TaxAmount / Subtotal) * 100; return Math.Round(result, 2);

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

"true"

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 true.

Dynamic Formula

FormatCustomFields("Multi-Select", "3\|Google Pixel,2\|Shopware Templates Latest")

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

FormatCustomFields("List/Record", "3\|Google Pixel")

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

Builds "Web Order {TransactionNumber} ${total} ({paymentMethod}) Tax: ${tax}" (omits the total when there are no payments)

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

Email

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 ShippingCostOverridden so NetSuite honors the supplied amount.

Field

ShippingAmount

AltShippingCost

Optional. Alternate shipping-cost field populated from the same source shipping amount.

Static

"true"

ShippingCostOverridden

Control — required when supplying a shipping cost. Tells NetSuite to use the supplied shipping cost rather than calculating its own. Keep true whenever a shipping cost is mapped.

Dynamic Formula

FieldFromFirstMatch(Addresses, "IsPrimaryShipping == true", "ShippingMethod")

ShipMethod_RefName

Recommended. Sets the shipping method from the primary shipping address. The name must match a shipping method configured in NetSuite.

Dynamic Formula

if (DiscountAmount > 0) return "241"; else return null;

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: 241 is an example generic discount item; replace with your discount item's Internal ID.

Dynamic Formula

if (DiscountAmount > 0) return DiscountAmount; else return null;

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

Company NetSuite ID, else Customer NetSuite ID, else match by email

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

return "5";

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: 5. Applied by the Tax Override customization; SuiteTax is not required.

Dynamic Formula

var result = (TaxAmount / Subtotal) * 100; return Math.Round(result, 2);

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

"true"

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 true.

Dynamic Formula

FormatCustomFields("Multi-Select", "3\|Google Pixel,2\|Shopware Templates Latest")

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

FormatCustomFields("List/Record", "3\|Google Pixel")

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

Builds "Web Order {TransactionNumber} ${total} ({paymentMethod}) Tax: ${tax}"

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

Email

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 ShippingCostOverridden.

Field

ShippingAmount

AltShippingCost

Optional. Alternate shipping-cost field from the same source amount.

Static

"true"

ShippingCostOverridden

Control — required when supplying a shipping cost. Keep true whenever a shipping cost is mapped.

Dynamic Formula

FieldFromFirstMatch(Addresses, "IsPrimaryShipping == true", "ShippingMethod")

ShipMethod_RefName

Recommended. Sets the shipping method from the primary shipping address; must match a NetSuite shipping method.

Dynamic Formula

if (DiscountAmount > 0) return "241"; else return null;

DiscountItem_Id

Optional. Discount item for an order-level discount. Placeholder value — replace during implementation: 241.

Dynamic Formula

if (DiscountAmount > 0) return DiscountAmount; else return null;

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

if (DiscountAmount > 0) return DiscountAmount; else return null;

DiscountAmount

Optional. Sets the order-level discount amount when greater than zero.

Dynamic Formula

if (DiscountAmount > 0) return DiscountAmount * -1; else return null;

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

Builds "Web Order {TransactionNumber} ${total} ({paymentMethod}) Tax: ${tax}" (omits the total when there are no payments)

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

await GetNetSuiteProductIdBySku(Sku)

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

quantity × unit price (line extended price)

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

return false;

CreateItemFullfilment

Control — required for automatic fulfillment. Whether the integration auto-creates an item fulfillment. Works with LocationId_Fullfilment and ItemRecieved; this is the fulfill-before-return mechanism. Set true only to have the integration fulfill the line.

Dynamic Formula

return 0;

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; 0 means no location and no fulfillment.

Dynamic Formula

return true;

ItemRecieved

Control — used with automatic fulfillment. Whether this line is included on the fulfillment. Leave true to fulfill the line.

Dynamic Formula

return "5";

custcol_otg_ipaas_tax_code

Control — required for line tax. Line-level NetSuite tax code. Placeholder value — replace during implementation: 5. Applied by the Tax Override customization (not SuiteTax).

Dynamic Formula

Line tax-rate override; falls back to header totals when the source has no line tax

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

await GetNetSuiteProductIdBySku(Sku)

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

quantity × unit price (line extended price)

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

return false;

CreateItemFullfilment

Control — required for automatic fulfillment. Whether to auto-create an item fulfillment. The fulfill-before-return mechanism.

Dynamic Formula

return 0;

LocationId_Fullfilment

Control — required for automatic fulfillment. Fulfillment location; must be valid and non-zero when fulfillment is on.

Dynamic Formula

return true;

ItemRecieved

Control — used with automatic fulfillment. Whether this line is on the fulfillment.

Dynamic Formula

return "5";

custcol_otg_ipaas_tax_code

Control — required for line tax. Line tax code. Placeholder value — replace during implementation: 5. Applied by the Tax Override customization (not SuiteTax).

Dynamic Formula

Line tax-rate override; falls back to header totals when the source has no line tax

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

await GetNetSuiteProductIdBySku(Sku)

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

true

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

"FirstName LastName" when both present, otherwise the Company name

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

"FirstName LastName" when both present, otherwise the Company name

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

await GetGiftCertificateIdBySkuAsync(Sku)

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

quantity × unit price

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

Parent.SystemId

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

Company email if present, otherwise the customer email

GiftCertificateRecipientEmail

Recommended. The email the certificate is delivered to; company email when present, otherwise the customer's.

Dynamic Formula

Company name if present, otherwise the customer name

GiftCertificateRecipientName

Recommended. The recipient name on the certificate.

Dynamic Formula

return null;

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

Line tax-rate override; falls back to header totals when the source has no line tax

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

return false;

CreateItemFullfilment

Control. Whether to auto-create an item fulfillment. Gift certificates are usually delivered electronically, so this is normally left off.

Dynamic Formula

return true;

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

await GetGiftCertificateIdBySkuAsync(Sku)

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

quantity × unit price

Amount

Recommended. The face value of the gift-certificate line.

Field

Description

Description

Optional. The line description.

Dynamic Formula

Parent.SystemId

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

Company email if present, otherwise the customer email

GiftCertificateRecipientEmail

Recommended. The delivery email; company when present, otherwise the customer's.

Dynamic Formula

Company name if present, otherwise the customer name

GiftCertificateRecipientName

Recommended. The recipient name on the certificate.

Dynamic Formula

return null;

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

Line tax-rate override; falls back to header totals when the source has no line tax

custcol_otg_ipaas_tax_rate

Control — line tax-rate override. Applies only if certificate lines are taxable; otherwise left empty.

Dynamic Formula

return true;

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

"Gift Card"

PaymentMethodType

Control — required for gift-card redemption. Routes the payment to gift-certificate redemption rather than a standard payment. Must be exactly Gift Card; do not change.

Dynamic Formula

Validate the payment's gift card id against NetSuite and return the matching Gift Certificate id

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

"Gift Card"

PaymentMethodType

Control — required for gift-card redemption. Must be exactly Gift Card; do not change.

Dynamic Formula

Validate the payment's gift card id against NetSuite and return the matching Gift Certificate id

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_Id cannot 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

  1. 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.

  2. Update an order. Re-sync the same order after a change and confirm the existing Sales Order is updated rather than a duplicate created.

  3. 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".

  4. ID format. Manually sync using the iPaaS.com transaction record ID and confirm success.

  5. 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.

  6. 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).

  7. Cancellation. Sync a cancelled order and confirm the cancellation summary appears on the NetSuite order Memo.

  8. Gift-card quantity guard. Send a gift-certificate line with quantity greater than 1 and confirm the rejection message.

  9. 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 ShippingCostOverridden is set when a shipping cost is supplied.

  • Gift-certificate lines (quantity 1) and gift redemptions resolve to existing NetSuite certificates.

Additional Notes

Related Documents

Did this answer your question?