Create a Fortnox Order from a HubSpot Order

Enable HubSpot order to Fortnox order in App settings, then either use the Fortnox order app card on the HubSpot Order record (or on a linked Deal) — see Order — Fortnox order and Deal — Fortnox order — or trigger via workflow when Create order in Fortnox is set to Yes — see Automations in HubSpot.

When a Fortnox order is created, the app maps order line items and the associated company to Fortnox (same row logic as deal → invoice and quote → offer). The Fortnox order number is written to the HubSpot order for idempotency. When the order is linked to exactly one deal, that number is also copied to the deal (for optional invoice from existing Fortnox order).

Typical requirements

  • App setting: HubSpot order to Fortnox order is enabled.
  • Order: Has line items or is associated to exactly one Deal that has line items; currencies consistent; no recurring billing on line items.
  • Company: Order's associated company (or, via the deal-fallback, the Deal's company) has Fortnox ID (fortnox_id) set.
  • Idempotency: If order_number_in_fortnox is already set on the Order, a second Fortnox order is not created. That later run still attaches a signed quote PDF when the file is not already on the Fortnox order.

Signed quote PDF

After the Fortnox order exists, the app looks at quotes associated with the HubSpot order. When e-signature is completed, it downloads that quote PDF (hs_pdf_download_link) and attaches it to the Fortnox order. A published quote that is not signed is left off. The PDF goes from HubSpot to Fortnox only.

E-signature is completed when HubSpot reports a required signer count greater than zero and at least that many signatures are completed. The same quote file is not uploaded again.

This uses the Fortnox archive scope. Existing installations need to re-authenticate the Fortnox connection once under Connection. Until the token includes archive, Connection lists it under missing scopes, the PDF step is skipped, and the order is still created. A failed download or upload also leaves the order in place.

See Release notes (October 6, 2026).

Mappings:

Field HubSpot Direction Field Fortnox Notes
Order: hs_currency_code -> Currency Must exist in Fortnox
Company: fortnox_id -> CustomerNumber From the Order's associated primary company (or the fallback Deal's company)
Order: description -> Remarks Optional
Contact: firstname lastname -> YourReference Default; first associated contact. Overridden by Order: fortnox_your_reference when set.
Order: hubspot_owner_id (firstname lastname) -> OurReference
Company: fortnox_cost_center -> CostCenter Stripped when the Fortnox token lacks the costcenter scope
Order: fortnox_invoice_email (else Company: billing_email) -> EmailInformation.EmailAddressTo Subject defaults to Order {no} bifogas. Skipped if neither is set or value is not a valid email.
Order: fortnox_terms_of_payment -> TermsOfPayment Optional (Betalningsvillkor)
Order: fortnox_your_order_number -> YourOrderNumber Optional (PO Number)
Order: fortnox_way_of_delivery -> WayOfDelivery Optional (Leveranssätt)
Order: fortnox_terms_of_delivery -> TermsOfDelivery Optional (Leveransvillkor)
Order: fortnox_delivery_date -> DeliveryDate Optional (Leveransdatum, YYYY-MM-DD)
Order: fortnox_billing_address_street / city / postal_code / country (else Company: address / city / zip / country) -> Address1 / City / ZipCode / Country Faktureringsadress. ISO codes and common names are converted to Fortnox register names (e.g. SE → Sverige). Unrecognised values and empty fields are omitted so Fortnox copies from the customer record.
Order: hs_shipping_address_street / city / postal_code / country -> DeliveryAddress1 / DeliveryCity / DeliveryZipCode / DeliveryCountry Leveransadress. Empty fields are omitted.
Line item: hs_sku -> OrderRows[].ArticleNumber
Line item: name -> OrderRows[].Description
Line item: quantity -> OrderRows[].DeliveredQuantity
Line item: price -> OrderRows[].Price
Line item: discount or hs_discount_percentage -> OrderRows[].Discount + DiscountType
Line item: tax -> OrderRows[].VAT Falls back to the Fortnox article's VAT when missing on the line item
Order: order_number_in_fortnox <- Order.DocumentNumber Written on the HubSpot Order after Fortnox returns the created order
Deal: order_number_in_fortnox <- Order.DocumentNumber When the HubSpot order is associated with exactly one deal — used by optional invoice from existing Fortnox order