Skip to main content

iPaaS.com to Acumatica Sales Order Mapping Documentation

How iPaaS.com transactions are written into Acumatica as Sales Orders with lines, addresses, payments, taxes, and tracking, including filters, mappings, prerequisite handling, and caveats.

Summary

Acumatica Sales Orders can be written from iPaaS.com using an Add/Update sync method. This mapping translates an iPaaS.com transaction into an Acumatica Sales Order — resolving the customer, assigning financial terms and the customer tax zone, and populating order-level totals and freight — and writes the order's addresses, line items, payments, taxes, and tracking as child records within the same order document. The transfer is one-directional into Acumatica; orders are not captured back out of Acumatica through this collection.

ID Format

Manual Sync ID Format

When manually transferring, supply the iPaaS.com Transaction ID for the order. The integration resolves the order's customer to an Acumatica customer using the external-id link or, if none exists, the customer's email address. The Acumatica order is identified by its order number once written.

External ID Format

After the order is written, the integration reads the created order back from Acumatica and links the Acumatica-assigned identifiers — order, lines, and tracking — to the corresponding iPaaS.com records so that later transfers resolve to the same order rather than creating duplicates. Package contents are linked to the order line using a line-item identifier in the form TransactionId|TransactionLineId.

Deleted Record Support

Removing an order in iPaaS.com is not propagated as a delete in Acumatica, and delete mappings are not included in the default templates.

Mapping Collection Status

Status: Enabled

Trigger Events: Transfers are driven by Outbound Data Flow trigger subscriptions on order creation and update, and can also be run on demand from the Manual Sync page. Transfers are polling-based on the iPaaS.com side; there are no external webhooks from Acumatica for this collection.

Duplicate or Conflicting Mappings

This collection writes Sales Orders into Acumatica. There is no Sales Order collection that captures orders back out of Acumatica in this integration, so there is no circular order-update loop. Repeated transfers of the same order are handled by the de-duplication behavior described under Integration Flow rather than by creating duplicate orders.

Collision handling is not supported for this collection; repeated transfers are de-duplicated by external-id linking and the Sales Order Duplicate Checking setting, not by collision resolution.

Supported Child Collections

The following child collections are written within the parent Sales Order transfer. None is invoked independently — to transfer any of them, transfer the parent order.

  • Add/Update Acumatica Sales Order Line FROM iPaaS.com: The order's product line items. At least one valid line is required for the order to post.

  • Add/Update Acumatica Sales Order Address FROM iPaaS.com: The order's billing and shipping addresses and contacts.

  • Add/Update Acumatica Sales Order Payment FROM iPaaS.com: The order's payment records.

  • Add/Update Acumatica Sales Order Tax FROM iPaaS.com: The order's tax details.

  • Add/Update Acumatica Sales Order Tracking Number FROM iPaaS.com: The order's shipment tracking numbers and package details.

System Caveats

Acumatica Caveats

  • Credit terms must be configured. The financial terms code mapped to the order must exist in the subscriber's Acumatica Credit Terms configuration (screen CS2065PL). Use a term defined with a single installment type — if a multiple-installment term is used, Acumatica rejects adding a payment to the order with the message "No applications can be created for documents with multiple installment credit terms specified."

  • Tax zone and tax codes must be configured. The customer tax zone and any tax codes applied to the order must exist in the subscriber's Acumatica Tax configuration. Configure Tax Categories and their eligible Tax IDs (screen TX2060PL) before transferring orders.

  • A valid customer must exist. The order must resolve to an Acumatica customer; an unresolved customer rejects the order.

  • Manual order numbering must be enabled to honor the iPaaS.com order number. By default Acumatica assigns its own auto-incrementing sales order number and the order number supplied from iPaaS.com is not used. For Acumatica to accept the iPaaS.com order number, the sales order numbering sequence must be configured to use manual numbering in Acumatica (screen CS201010).

  • Open shipments only. For tracking, the Hold Shipments on Entry option must be deactivated in Acumatica Sales Order Preferences; otherwise the shipment cannot be created in the Open status the integration requires.

  • Only stock items are supported on order lines. Non-stock items are not written to the order.

iPaaS.com Caveats

  • Field references in dynamic formulas use the iPaaS.com field names exactly as written (for example, EmailAddress, TransactionNumber) and are case-sensitive.

  • An order transfer fails if the order's customer cannot be resolved or if the order contains duplicate SKUs across its lines.

  • The box and warehouse values used for tracking are supplied through custom fields on the iPaaS.com transaction; both must be populated for tracking to transfer.

Integration-Specific Caveats

  • Numeric postal-code guard. The order address postal code is written only when it consists entirely of digits; a non-numeric postal code is written as empty so the order is not rejected for an invalid ZIP format.

  • Placeholder payment method. The template assigns a single placeholder payment method to every imported order. Configure a translation or mapping formula to assign different methods based on the source payment.

  • No tax override by default. The shipped tax-validity mapping does not assert a tax override, so Acumatica applies its own tax determination unless the subscriber changes the mapping (see the IsTaxValid note in the parent mappings).

Setup Requirements

Acumatica Configuration

  • The Acumatica Sales Order web services endpoint must be enabled.

  • Acumatica Credit Terms (screen CS2065PL), Tax Categories with eligible Tax IDs (screen TX2060PL), and the customer tax zone must be configured to match the values used by the order mappings.

  • Payment methods used by the mapping must be configured.

  • Warehouses and boxes referenced by the tracking custom fields must exist.

  • Hold Shipments on Entry must be deactivated in Acumatica Sales Order Preferences for tracking.

  • Manual sales order numbering must be enabled to honor the iPaaS.com order number.

iPaaS.com Configuration

  • The iPaaS.com Product mapping collection must be active so order lines can resolve their SKUs to Acumatica Stock Items.

  • The transaction must carry the BoxId and WarehouseId custom fields for tracking to transfer.

Authentication & Security

The integration authenticates to the Acumatica instance with OAuth 2.0, and every request carries the company header. The full authentication walkthrough is covered in the Acumatica Connections and Settings and Acumatica Installation Instructions articles; this document does not repeat it.

Prerequisite Handling

This collection performs several dependency transfers and de-duplication steps automatically. Subscribers do not pre-synchronize these dependencies — the integration handles them as part of the order transfer, and a failed prerequisite blocks the order.

  • Automatic Customer transfer. If the order's customer has no external-id link in iPaaS.com, the integration transfers the Customer into Acumatica first, then writes the order. A failed Customer transfer blocks the order.

  • Order and line de-duplication. When the Sales Order Duplicate Checking subscription setting is enabled, the integration looks up an existing Acumatica order before writing and links to it instead of creating a duplicate. Order lines are matched to existing Acumatica lines by SKU and ordered quantity, and the external-id links are recorded so later transfers resolve to the same order and lines.

  • Tax de-duplication. On updates, existing tax details are resolved positionally so repeated transfers update the same tax records rather than duplicating them.

  • Tracking de-duplication. Tracking numbers written with the order are matched by tracking number so the same shipment is not duplicated on re-transfer.

Integration Flow

  1. An order create or update in iPaaS.com triggers a transfer, or a subscriber runs a Manual Sync with the iPaaS.com Transaction ID.

  2. The integration resolves the Acumatica customer for the order by the customer's external-id link, falling back to the customer's email address. If the customer does not yet exist in Acumatica, it is transferred first.

  3. The order and its child records — addresses, lines, payments, taxes, and tracking — are written to Acumatica as one document. An order must contain at least one valid line item; an order with no lines is rejected.

  4. When Sales Order Duplicate Checking is enabled, an existing order is updated rather than duplicated, and lines are matched by SKU and ordered quantity.

  5. The integration reads the created order back from Acumatica and links the Acumatica-assigned identifiers to the corresponding iPaaS.com records.

Mappings

Add/Update Acumatica Sales Order FROM iPaaS.com

Mapping Filter

Type == "Order"

Filter Description. This filter restricts the collection to iPaaS.com transactions whose Type is Order, so that only sales orders are processed. Transactions of any other type are skipped by this collection.

Description: Creates or updates the Acumatica Sales Order document — customer, financial terms, tax zone, totals, and freight.

Mapping Type

Source Field (iPaaS.com)

Destination Field (Acumatica)

Description

Dynamic Formula

Type;

ActionType

Required. Passes the transaction type through to the document path. The order is only written when the action type resolves to Order; the mapping filter already restricts the collection to order-type transactions.

Dynamic Formula

See the formula below the table.

CustomerId

Required. Resolves the Acumatica customer by external-id link, falling back to the customer's email. An order that cannot be resolved to a customer is rejected. A missing customer is transferred automatically first.

Static

30D

FinancialTerms

Required. Assigns the Acumatica credit terms code. Use a term defined with a single installment type. See the placeholder note below the table.

Field

TransactionNumber

OrderNbr

Recommended. The external order number. Acumatica honors this value only when manual sales order numbering is enabled; otherwise Acumatica auto-assigns the order number and this value is ignored.

Field

Total

OrderTotal

Recommended for order reconciliation. The total order value.

Static

false

Hold

Recommended. Written as a fixed false so imported orders are not placed on hold. Keep this unless the subscriber wants imported orders held on entry.

Dynamic Formula

await GetTaxZoneId();

CustomerTaxZone

Recommended for orders that carry tax. Returns the first matching or first available tax zone configured in Acumatica. The tax zone returned must exist in the Acumatica Tax configuration.

Field

ShippingAmount

PremiumFreightValue

Optional. Carries externally captured shipping onto the order total's Premium Freight Price.

Dynamic Formula

EmailAddress + " placed order";

Description

Optional. Builds a human-readable order description from the customer's email and the phrase "placed order".

Dynamic Formula

null

IsTaxValid

Optional. As shipped, this evaluates to null, so no tax override is asserted and Acumatica applies its own tax determination. This field does not default to true. To override Acumatica's tax calculation with externally collected tax, change this mapping so it yields true. Validate the tax-override behavior in a staging environment before relying on it in production.

Placeholder value — replace during implementation: 30D (FinancialTerms) is a template default representing 30 Days. Replace it with a credit terms code that exists in the target Acumatica installation and represents externally imported orders.

The CustomerId dynamic formula:

var customerId = await GetExternalIdAsync(CustomerId, "Customer", SpaceportSystemId);
if (customerId == null || customerId == "")
return await GetCustomerIdByEmail(EmailAddress);
else
return customerId ;

Add/Update Acumatica Sales Order Line FROM iPaaS.com

Mapping Filter

await CheckProductExistBySku(Sku);

Filter Description. This filter checks whether the line's Sku exists as a Stock Item in Acumatica. The integration looks the SKU up and, if a valid Stock Item is found, allows the line to be written; if the SKU is not found, the line is skipped so that only lines for valid products are added to the order. Keep the iPaaS.com Product mapping collection active so SKUs exist in Acumatica.

Description: Writes each order line item as a child of the order, mapping the iPaaS.com SKU to the Acumatica Stock Item and carrying quantity and prices. At least one valid line is required for the order to post.

Mapping Type

Source Field (iPaaS.com)

Destination Field (Acumatica)

Description

Field

Sku

InventoryID

Required. The Acumatica Stock Item for the line. The SKU must exist as a Stock Item, and it is the key used to match the line against an existing Acumatica order.

Field

Qty

OrderQty

Required. The ordered quantity. A line needs a positive quantity to be meaningful, and quantity is part of the key used to match the line against an existing order.

Dynamic Formula

UnitPrice

UnitPrice

Recommended. The price of a single unit before discounts.

Dynamic Formula

UnitPrice

DiscountedUnitPrice

Recommended. The discounted unit price; the template sources this from the unit price, so it matches the unit price unless the subscriber changes the mapping.

Dynamic Formula

ExtendedPrice

ExtendedPrice

Recommended. The line total (unit price multiplied by quantity).

Dynamic Formula

ExtendedPrice

Amount

Recommended. The line amount, sourced from the extended price.

Static

true

ManualPrice

Recommended. Written as a fixed true so the mapped prices are honored rather than recalculated by Acumatica's price engine.

Add/Update Acumatica Sales Order Address FROM iPaaS.com

This child collection has no mapping filter; every address on the parent order is processed.

Description: Writes the order's billing and shipping addresses and contacts, using the iPaaS.com primary flags to mark the bill-to and ship-to designations.

Mapping Type

Source Field (iPaaS.com)

Destination Field (Acumatica)

Description

Field

FirstName

FirstName

Recommended. The contact first name on the address.

Field

LastName

LastName

Recommended. The contact last name on the address.

Field

Address1

Address1

Recommended. The primary address line.

Field

Address2

Address2

Optional. The secondary address line.

Field

City

City

Recommended. The city.

Field

Region

Region

Recommended. The state, province, or region.

Field

IsPrimaryBilling

IsBillToAddress

Recommended. Selects which address fills the bill-to role on the order.

Field

IsPrimaryShipping

IsShipToAddress

Recommended. Selects which address fills the ship-to role on the order.

Field

IsPrimaryShipping

IsShipToContact

Optional. Treats the shipping address as the ship-to contact.

Dynamic Formula

false

IsBillToContact

Optional. Written as a fixed false so the address is not, by itself, flagged as the bill-to contact. Adjust if the address should be treated as the bill-to contact.

Dynamic Formula

Parent.EmailAddress

Email

Optional. Pulls the email from the parent order so the order address carries the customer's email. The value comes from the parent order, not the address record.

Dynamic Formula

Regex.IsMatch(PostalCode, @"^\d+$") ? PostalCode : null

ZipCode

Optional. Writes the postal code only when it consists entirely of digits; a non-numeric code is written as empty so the order is not rejected. Subscribers with alphanumeric postal codes should validate this in a staging environment.

When the order carries a single address, that address is used for both bill-to and ship-to; with multiple addresses, the bill-to and ship-to flags select which address fills each role. If no address is flagged for a role, the integration falls back to the available address.

Add/Update Acumatica Sales Order Payment FROM iPaaS.com

This child collection has no mapping filter; every payment on the parent order is processed.

Description: Records externally captured payments against the order — amount, applied amount, payment method, and a generated reference.

Mapping Type

Source Field (iPaaS.com)

Destination Field (Acumatica)

Description

Field

Amount

PaymentAmount

Recommended. The payment amount.

Field

Amount

AppliedToOrder

Recommended. Records how much of the payment is applied against this order.

Static

ONLINE

PaymentMethod

Required. The Acumatica payment method, which must exist in the subscriber's Payment Methods configuration (screen CA2040PL). See the placeholder note below the table.

Dynamic Formula

"iPaaS.com "+Id

PaymentRef

Recommended. Generates a unique payment reference from the iPaaS.com payment identifier so each payment is traceable to its source transaction. Many Acumatica payment methods require a reference.

Placeholder value — replace during implementation: ONLINE (PaymentMethod) is a placeholder assigned to all imported orders. Replace it with a method that exists in the target Acumatica installation, and configure a translation or mapping formula to assign different methods based on the source payment. Transfer of Acumatica payment methods into iPaaS.com is not supported, so methods must be configured in Acumatica (screen CA2040PL) and assigned through the mapping.

Add/Update Acumatica Sales Order Tax FROM iPaaS.com

This child collection has no mapping filter; every tax detail on the parent order is processed.

Description: Records externally collected tax against an eligible Acumatica tax code — tax amount, tax rate, and the resolved tax code.

Mapping Type

Source Field (iPaaS.com)

Destination Field (Acumatica)

Description

Dynamic Formula

await GetTaxId();

TaxID

Required. Resolves the Acumatica tax code, returning the first matching or first available eligible code. To record externally collected tax, a tax code must be provided, and it must be eligible for the tax category assigned to the order's products. Configure Tax Categories and their eligible Tax IDs in Acumatica (screen TX2060PL).

Field

Amount

TaxAmount

Recommended. The tax collected on the order.

Field

TaxPercent

TaxRate

Recommended. The tax rate.

Dynamic Formula

SpaceportSystemId

Spaceport_SystemId

Supplied automatically. The subscription identifier the integration uses internally to resolve and link the tax record. This is not a subscriber-tunable field; keep the mapping as shipped.

Add/Update Acumatica Sales Order Tracking Number FROM iPaaS.com

Mapping Filter

var boxId = GetCustomFieldValue(CustomFields, "BoxId");
var warehouseId = GetCustomFieldValue(CustomFields, "WarehouseId");
if(boxId!= null && boxId!="" && warehouseId!= null && warehouseId!=""){
  return true;
}
return false;

Filter Description. This filter checks whether both the BoxId and WarehouseId custom fields have values. The tracking flow is written only when both are present; if either is empty, the tracking number is skipped. Both values are needed because the warehouse identifies the shipment location and the box is required to create the package.

Description: Creates a Sales Order shipment in Acumatica for the order, recording the package's box, tracking number, carrier, declared value, and description, and linking package contents to the order line for partial shipments.

Mapping Type

Source Field (iPaaS.com)

Destination Field (Acumatica)

Description

Field

WarehouseId (custom field)

WarehouseId

Required. The shipment location, supplied through a custom field. The filter blocks the tracking flow when it is empty. The warehouse value must exist as a configured Warehouse in Acumatica.

Field

BoxId (custom field)

BoxID_Package

Required. The package box, supplied through a custom field. The filter blocks the tracking flow when it is empty, and the box is required to create the package. The box value must exist as a configured Box in Acumatica.

Field

iPaaS_LineItemId (custom field)

iPaaS_LineItemId

Required for creating package contents. Links the package contents to the order line so partial shipments are recorded against the correct line. The value must be in the form TransactionId, then a separator, then TransactionLineId (see the note below the table).

Dynamic Formula

See the formula below the table.

CustomerID

Required. Resolves the Acumatica customer for the shipment from the parent order, first by external-id link, falling back to the parent order's email.

Dynamic Formula

Parent.TransactionNumber

OrderNbr

Required. Carries the order number from the parent transaction so the shipment is created against the correct order.

Static

SO

OrderType

Required. Written as a fixed SO to set the Sales Order type for the shipment. Keep this static value.

Static

Issue

Operation

Required. Written as a fixed Issue; for Sales Order shipments the inventory direction is always issue. Keep this static value.

Static

Open

Status

Required. Written as a fixed Open; only Open shipments can be created. Hold Shipments on Entry must be deactivated in Acumatica Sales Order Preferences.

Field

TrackingNumber

TrackingNbr_Package

Recommended. The carrier tracking number; also the key used to de-duplicate the shipment on re-transfer.

Field

ShippingMethod

Type_Package

Recommended. The shipping method or carrier.

Field

Cost

DeclaredValue_Package

Optional. The declared value of the package, used for shipping and insurance.

Field

ShippingMethodDescription

Description_Package

Optional. The package or shipping-method description.

Field

Picked (custom field)

Picked

Environment-specific. See the placeholder note below the table.

Placeholder value — replace during implementation: the Picked mapping sources an environment-specific custom field carried from a prior client configuration; it does not apply generally. Review this mapping and replace or remove it to match the target environment before relying on it, and validate the shipment behavior in a staging environment with this mapping reviewed.

The iPaaS_LineItemId value joins the transaction identifier and the transaction line identifier with a single pipe character, in the form TransactionId then a pipe then TransactionLineId.

The CustomerID dynamic formula:

var customerId = await GetExternalIdAsync(Parent.CustomerId, "Customer", SpaceportSystemId);
if (customerId == null || customerId == "")
return await GetCustomerIdByEmail(Parent.EmailAddress);
else
return customerId ;

A separate standalone Tracking Number flow handles tracking numbers transferred on their own; this child collection handles tracking that moves with the order.

Error Handling

  • "No applications can be created for documents with multiple installment credit terms specified": Occurs when adding a payment to an order whose credit term is defined with multiple installments. Resolution: use a credit term defined with a single installment type.

  • Invalid Customer ID: The order cannot be resolved to an Acumatica customer. Resolution: ensure an external-id link exists or provide a valid email for the fallback lookup. A missing customer is transferred automatically as a prerequisite.

  • Unsupported financial terms: The mapped credit terms code is not configured in Acumatica. Resolution: configure the credit term, or map a code that already exists.

  • Invalid tax zone or tax code: The customer tax zone or applied tax code is not configured or not eligible for the products' tax category. Resolution: configure Tax Categories and their eligible Tax IDs (screen TX2060PL), and the customer tax zone.

  • Invalid SKU: A line's SKU is not found as an Acumatica Stock Item. Resolution: verify the product exists in Acumatica before the order transfer; the line is skipped, and if an order's only lines are skipped this way the order cannot post.

  • Quantity zero or negative: An order line has a non-positive quantity. Resolution: provide a quantity greater than zero.

  • Payment method not found: The mapped payment method is not configured in Acumatica. Resolution: add the method in Acumatica or update the mapping.

  • Duplicate SKUs across lines: The order contains the same SKU on more than one line. Resolution: consolidate duplicate lines before transferring.

If the Acumatica web services endpoint is temporarily unavailable during a transfer, the order write fails and an error appears in Dashboard / Integration Monitoring / Error Logs.

Testing & Validation

Test Scenarios

  1. Transfer a valid order with one or more lines, an address, a payment, and a tax detail, and verify the Acumatica Sales Order is created with all child records.

  2. Transfer an order whose customer has no external-id link and verify the customer is transferred automatically before the order.

  3. Transfer an order with a SKU that does not exist in Acumatica and confirm the line is skipped; confirm an order with only invalid lines is not created.

  4. Run a Manual Sync with the iPaaS.com Transaction ID and confirm the order writes.

  5. Re-transfer the same order with Sales Order Duplicate Checking enabled and confirm the existing order and lines are updated rather than duplicated.

  6. Transfer an order with the BoxId and WarehouseId custom fields populated and verify a shipment is created with the tracking package; transfer one with either field empty and confirm the tracking is skipped.

Validation Checklist

  • The customer is resolved via external ID or email.

  • Financial terms and tax zone are assigned and valid in Acumatica.

  • At least one valid line item is present.

  • The payment method is valid and active.

  • Each SKU exists as an Acumatica Stock Item.

  • Each order line quantity is greater than zero.

  • Manual sales order numbering is enabled if the iPaaS.com order number must be honored.

Additional Notes

  • Parent order validation must pass before any child collection is written; an error in a child collection may prevent the entire order from being created.

  • Writes into Acumatica are upserts. A mapped field left blank or omitted is preserved on the existing Acumatica record, not cleared. To clear a value, write an explicit empty value rather than omitting the mapping.

  • Generating or transferring shipments and invoices for the sales order from iPaaS.com is not supported by this integration. Only the sales order itself, with its addresses, lines, payments, taxes, and tracking, is written.

  • Non-stock items on order lines are not supported and are not written to the order.

Did this answer your question?