Skip to main content
NewImprovedFixedAPIBreaking
v3.224.0
This release adds Arcus Desktop, strengthens purchasing and accounting workflows, and improves reporting accuracy and performance across the platform.

Arcus Desktop is now available

Arcus Desktop now runs as a dedicated Windows and macOS app with signed installer support, native shell integrations, and MFA support that works correctly inside the desktop app. Teams can launch Arcus outside the browser with a more app-like experience for daily operations.

New features

  • Purchase orders can be reopened after fulfillment. You can now reopen a fulfilled purchase order when a vendor ships more than expected or the received quantity needs correction. This gives buyers a supported path to adjust quantities and receive the remaining units without workarounds.
  • Exclude products from reorder planning. Products can now be marked so they stay sellable but no longer appear in reorder planning. This helps teams retire or phase out SKUs without creating false replenishment suggestions.
  • Vendor prepayments can be applied and refunded in the UI. AP teams can now record vendor prepayments, apply them to bills, and refund unused balances from the product. This closes the loop on prepayment workflows that previously required manual handling.
  • Terms placements can be removed and re-captured. Orders placed on terms now have a full lifecycle, including removing an open terms placement and recapturing it at the correct amount after changes. This makes terms-based checkout safer when orders are revised.
  • Purchase order line editing is now stage-aware. PO line editability now follows the order’s real stage and receiving status. Buyers get clearer guidance on when lines can still be changed, deleted, or require re-approval.
  • Reporting builder gained a stronger self-serve experience. The reports builder now opens with a report gallery, adds better sorting and Top N controls, supports day-grain revenue subjects, and improves saved report and schedule workflows. This makes it easier to build operational reports without SQL.

Improvements

  • Dashboard and reporting performance improved significantly. Heavy reporting and dashboard queries now use better caching and faster data-serving paths, reducing load on the database and improving response times. This helps large tenants get more reliable analytics during busy periods.
  • Accounting reports are more complete and trustworthy. The Account Ledger, Journal Entries, GL Reconciliation, financial statements, and related exports were upgraded for better population accuracy, better source links, and more honest labels and disclosures. Users can export and reconcile with more confidence.
  • GL account pickers are easier to search and understand. GL pickers now show hierarchical context for sub-accounts and use wider, more usable selection panels. This makes it much easier to find the right account in AP, bank, and accounting workflows.
  • Purchase order documents and PDFs are clearer. PO PDFs now handle part numbers more consistently, avoid overlapping columns in dense layouts, and show cleaner identifier formatting. Vendor-facing documents are easier to read and more faithful to the purchase order at the time it was created.
  • Desktop shell now feels more native. The desktop app now includes native title-bar behavior, notifications, dock badge support, system browser handoff for connector OAuth, better offline handling, and more polished Windows and macOS chrome. These changes make the desktop experience feel more like a real installed app.
  • Presence and real-time refresh are more reliable. Leave presence events, realtime refresh behavior, and related desktop background reconnect behavior were hardened. Users should see fewer stale presence states and more dependable refreshes after inactivity or window changes.

Bug fixes

  • Card verification warnings now appear in the actual payment flow. Stripe card verification results such as failed CVC and ZIP checks are now surfaced where staff actually charge or save cards. Double-failed cards are blocked from being saved, helping prevent wrong-card incidents.
  • Cancel and refund flows handle retained fees more safely. Multiple issues were fixed in cancellation and refund workflows, including retained fee handling, store-credit behavior, duplicate crediting, stale fee values, and contradictory operator guidance. This reduces the chance of incorrect balances or dead-end cancel paths.
  • Account-scoped pricing policies no longer leak to other customers. Pricing rules attached to a specific account now apply only to that account, even when customers share the same pricing level. This prevents unintended undercharges or incorrect preview pricing on unrelated orders.
  • Sellable location logic now affects real inventory availability. Inventory at non-sellable locations is no longer treated as generally available for selling decisions. This makes sourcing, availability, and pick guidance better reflect real operational intent.
  • Orders no longer get stuck after revision acknowledgement edge cases. The order revision banner now stays available in the states where staff still need it, so operators can resend revisions or acknowledge them internally without getting trapped in a dead end.
  • Edited draft order lines can be deleted again. A defect that made some edited draft order lines permanently undeletable was fixed while preserving the order’s audit history. Staff can now clean up draft orders without hitting a misleading refusal.
  • Bank feed and reconciliation workflows are more accurate. Several bank feed and reconciliation defects were fixed, including feed health detection, Plaid account linkage consistency, completion math, and check clearing behavior. This improves visibility into broken feeds and reduces misleading reconciliation states.
  • Documents now download from the correct storage location. Document downloads now resolve the actual file bucket and region recorded for each document instead of assuming one fixed location. This fixes missing-file errors for documents stored outside the default bucket.
  • Email and communication copy is clearer and more consistent. Money formatting and several document and workflow messages were corrected so customer-facing and operator-facing text matches the actual amounts and actions. This reduces confusion in approval, billing, and send-document flows.
  • Product attachments now work correctly from the product page. The product Documents area now uses the shared attachment flow instead of a broken one-off implementation. Uploaded files are stored, listed, and confirmed correctly.
  • Product editing no longer writes changes you did not make. Saving a product without edits no longer rewrites and flattens existing description content. This prevents accidental formatting loss on unchanged products.
  • PO send approval and wizard edge cases were corrected. Fixes were added for purchase order approval gating, send-to-vendor timing, close-short money recalculation, and wizard behavior around exempt or zero-dollar cases. Buyers should see fewer blocked or misleading paths.
  • Order-level fees now calculate tax more accurately. Order-level fee taxability is now modeled directly and taxed on its own fee line instead of inheriting behavior from unrelated scope labels. This improves forward accuracy for fee taxation.
  • Migration-era AP and PO linkage behavior is more accurate. Several fixes improved how migrated AP bills and purchase orders are linked, billed, and completed, including per-line bill headroom, PO completion rollups, and migrated blind-spot handling. This reduces false blocking and makes legacy purchasing data easier to work with.

API

  • Purchase order APIs expose richer editability and workflow state. PO responses now provide clearer server-driven editability and approval state so clients can render the correct actions without duplicating status rules. This supports more reliable purchasing UI behavior and custom integrations.
  • Accounting and export APIs provide fuller export and source-link data. Ledger and journal export flows were improved to respect the intended scope and provide better source-link information. API consumers can now retrieve more accurate export populations and source resolution details.

Breaking changes

  • Reporting and permissions are enforced more strictly on sensitive data. Some reports and export paths now honor deeper permission checks based on the actual underlying data they read. Users or integrations that previously saw accounting or margin data through overly broad access may now be denied until the correct permissions are granted.
ImprovedFixedAPIBreaking
v3.224.0
This release makes billing tell the truth: orders that could never be invoiced can be invoiced, customer invoice emails name the invoice they carry, child invoices bill the full tax, and the orders API describes the same list of documents the app does.

Deliveries that could never be billed can now be billed

Several ways an order could quietly become un-invoiceable have been closed. An order whose packages were all delivered was not counted as shipped, so it never reached invoicing. An empty package left on an order blocked invoicing indefinitely, because an empty box can never ship. A drop-ship line delivered by your vendor was invisible to billing entirely. In each case the goods had gone to the customer and the invoice never followed. Those orders are now billable, and the Invoice Shipped Items action appears on them.

Improvements

  • Invoice emails name the invoice they carry. A customer invoice email could arrive with the sales order number in the subject while the PDF attached to that same email showed the invoice number. The subject, the PDF, the customer portal and the public share page now all use one answer for what a document is called.
  • Child invoices bill the full tax. When an order is invoiced in shipments, tax that sits on the order header rather than on a line could be left out of the child invoices, so the parts summed to less than the whole. The child invoices now carry it.
  • Coupons survive the rest of the order lifecycle. An automatic coupon could be removed from an order that was already paid, picked and staged at the counter, which reopened a balance the customer did not owe. Coupons are now protected once the goods are committed, and a coupon that is stripped and cannot be re-applied is restored rather than lost.
  • Invoice numbering is consistent. Every document that is an invoice is now issued one invoice number used everywhere it appears, instead of sometimes carrying a sales order number.
  • Reporting and margin figures agree with the ledger. Landed margin accounts for allocated carrier cost, superseded invoices are counted once, and draft documents stay out of AR aging.

Bug fixes

  • A vendor-delivered drop-ship line is billable. Receiving a drop-ship shipment now records it as shipped, so the line reaches invoicing like any other.
  • Order totals stop double counting under a filter. Two different de-duplication rules could disagree about the same filtered list.
  • Freight on a heavy pallet is quoted consistently. The order card now applies the same freight rule the backend does.

API

  • GET /v1/orders now describes the same list of documents the app does. See the breaking change below.

One breaking change to the default GET /v1/orders result set, so the API describes the same list of documents the app does.
Breaking: GET /v1/orders no longer returns return documents by default. If you list orders without a document_type filter, the response now contains only quotes, sales orders, and invoices. Returns, purchase orders, and late fee invoices are excluded from the default. Ask for any of them explicitly and you get them exactly as before.

API

  • GET /v1/orders default result set is now quotes, sales orders, and invoices. Arcus stores several document types in one orders table and tells them apart with document_type. The app’s own order list was narrowed to the sales-side set on 2026-07-13; this endpoint was not, so until now it also returned return documents. On one production account that was 1,507 historical return documents totalling $475,736.99 arriving in a list labelled orders, which overstated any total computed from the default page. The endpoint now uses the same rule as the app.
  • Nothing was removed from the API. The document_type filter is unchanged and is applied ahead of the default, so GET /v1/orders?document_type=return, ?document_type=purchase_order, and ?document_type=late_fee_invoice all return exactly what they returned before. Returns also have their own resource at GET /v1/returns.
  • What to do. If you were reading orders, no change. If you were relying on returns appearing in the orders list, add ?document_type=return or move to the returns resource. If you compute revenue or outstanding totals by paging this endpoint, your totals will change by the value of the return documents that were previously mixed in, and the new number is the correct one.
NewImprovedFixedSecurityAPI
v3.223.0
This release brings in-person payments with Stripe Terminal card readers, makes the streamlined navigation the standard experience for every user, and strengthens account security.

Collect in person with Stripe Terminal

Arcus now supports countertop Stripe card readers end to end. Pair a reader in minutes, send any local pickup or counter order to it straight from the order header, and let the customer tap, dip, or swipe, including Apple Pay and Google Pay. The moment the charge succeeds, the order is marked paid and the accounting entries post automatically, the same as every other payment method.
A local pickup order with the Send to Terminal action in the header, the charge card reader dialog showing the amount and the online reader, and the Card Readers settings card with paired readers

The streamlined navigation is now standard

The redesigned navigation has finished its beta and is now the one experience for everyone, with no toggle required. The long sidebar is replaced by six departments, Home, Sales, Operations, Purchasing, Finance, and Insights, on a compact rail. Each department opens a panel of its pages, every page carries a breadcrumb trail, and search plus your recent pages keep everything one step away.
The previous sidebar navigation next to the new streamlined navigation showing the department rail, the top bar, and the same orders page in both

New features

  • Send to Terminal from the order header. Local pickup and counter orders now show a Send to Terminal action ahead of the payment buttons. The charge dialog confirms the amount and shows live reader readiness, so you know the device is online before you send.
  • Card Readers settings page. A new page under Settings, Payments and Checks lets you pair a reader in three steps, location, pairing code, and name, then manage the fleet from one place: online status with last seen freshness, firmware and connection details, register assignment, and clean deactivation.
  • Readers pair with cash registers. Assign each reader to a cash register so a cashier always sends the charge to the device at their own counter.
  • Reader screen branding. Upload your logo and the reader shows it on its idle screen, so the countertop device looks like your business, not a generic payment box.
  • Optional processing fee on in-person payments. If you pass a card processing fee on keyed payments, a new setting applies the same fee to card reader payments, with the fee shown as its own line before the customer pays.
  • Six departments replace the long sidebar. Every page in Arcus now lives in one of six departments, so related work sits together and the list of pages you scroll through is short and predictable.
  • Search-first navigation. Press Ctrl K to jump to any page or record, and each department panel keeps your recently visited pages one click away.
  • Breadcrumbs and quick create. Every page shows exactly where you are, and the create button in each department starts its most common records without hunting for the right list first.

Improvements

  • Terminal payments settle even when the network hiccups. If the confirmation event from Stripe is delayed, Arcus confirms the charge directly so the tap still books, the order still goes paid, and nothing is ever double charged.
  • Stale card holds release automatically. A background sweep releases expired in-person authorization holds, so a customer is never left with a lingering pending charge from an abandoned checkout.
  • Draft orders can collect in person. A counter sale that is still a draft can be sent to the reader and charged, and the payment records correctly when the order is finalized.
  • Stripe connector setup lists the exact events Arcus handles. The recommended webhook event checklist in connector setup is now generated from the live handler, including the new card reader events, so setup matches reality.

API

  • Card reader payments use the same payment records. Terminal charges flow through the same orders, payments, and webhook surfaces integrations already use, and Stripe Terminal reader events are now part of the connector webhook catalog.
  • New read-only amount_due on the Order resource. amount_due is the plain arithmetic remainder, order_total minus amount_paid, on every order at every status and for every document type. It is additive: existing fields and shapes are unchanged.
  • balance_due is now documented, and its behavior on draft orders is called out. balance_due is the AR receivable, the number that ties to AR aging and the GL AR control account. Since the 2026-07-21 release it returns 0 on DRAFT sales documents, on cancelled, archived, and expired orders, and on voided or fully refunded invoices, because none of those carries a receivable. That behavior change was not documented at the time, so if you reconcile payments from balance_due and saw drafts report as settled, this is why. Read amount_due for the arithmetic remainder on such a document.
  • Which field to use. Use balance_due to reconcile against AR. Do not treat amount_due as a payable amount: it stays positive on documents that can accept no payment (cancelled, voided, fully refunded) and overstates what is owed on an order settled by a concession refund. The payment endpoints validate and cap the amount server side and refuse an ineligible document with order_not_payable.

Security

  • Stronger authorization on administrative endpoints. Administrative maintenance endpoints now verify the full credential and workspace context on every request and fail closed when either is absent or does not match. No customer action is required and no customer data was involved.
  • Tightened device and API credential boundaries. Device credentials and API keys are now scoped strictly to the surfaces they are issued for, so a credential intended for one surface can no longer reach another.

Payments and accounting

  • Applying a credit memo works again. Applying customer credit to an open balance was failing; it now completes and posts correctly.
  • Card processing fees post to their own expense account. When a processor fee is charged on a payment, it now records as its own accounting entry rather than being folded into other figures, so fee expense is visible and reconcilable.
  • Payout notifications from Stripe process cleanly. An error in handling incoming payout events has been fixed, so payout activity now records without interruption.
  • Re-fulfilled orders recognize their surcharge income correctly. When an order is un-fulfilled and then fulfilled again, the card surcharge income is now recognized again instead of being skipped, keeping income and receivables complete.

Reporting

  • Margin reporting accounts for allocated carrier cost. Landed margin now reflects allocated shipping cost, so product and order profitability read truthfully.
  • Revenue and AR reports no longer double-count superseded documents. Sales reporting views apply a single shared rule for superseded invoices, and AR aging excludes draft documents, so report totals agree with the general ledger.
NewImprovedFixedAPI
v3.223.0
This release improves payment accuracy, tax reliability, and fulfillment recovery across orders, customer portal, accounting, and API workflows.

AvaTax integrity and native freight tax billing

Arcus now handles more tax lifecycle cases correctly, including recommitting voided tax documents, adjusting committed tax records, and billing native freight tax consistently. This reduces tax mismatches between Arcus, your tax provider, and your financial records.

New features

  • Fill waiting backorders immediately after unallocating stock. When you release a reservation, Arcus can now show which products have other waiting orders and lets staff fill eligible backorders right away. This helps move available inventory to the next waiting order without waiting for the scheduled sweep.
  • Tax stale warning on orders. Orders can now be marked when a taxable change requires tax recalculation. The order detail view surfaces this status so teams can spot and correct stale tax before confirming or collecting payment.

Improvements

  • Draft order payment amounts now use the true collectible remainder. Order detail, create payment, shared payment links, batch payments, documents, PDFs, and the customer portal now show and charge the actual remaining amount on draft sales orders instead of a misleading zero balance. Customers and staff can pay partially paid drafts correctly without affecting posted accounting behavior on non-draft documents.
  • Customer portal payment experience matches order reality. Portal order pages, payment buttons, balance tiles, and deposit application defaults now reflect the real amount still collectible on draft orders. This prevents customers from being blocked from paying valid balances in self-service flows.
  • Accounting reports are easier to read and more consistent. Financial statements now default to the current fiscal period instead of an empty future period, and Trial Balance and Balance Sheet include a hide-zero-balances option. AR aging report logic was also aligned so report totals match the dashboard aging card to the cent.

Bug fixes

  • Confirmed orders no longer get stuck as unpaid at $0 due. Orders confirmed from draft now immediately recalculate their receivable balance before commit. This fixes cases where tax-calculated drafts became open but could not be paid until a later recalculation.
  • Marketplace order tax totals are preserved during recalculation. Recalculation no longer wipes out platform-supplied header tax on marketplace orders such as Shopify, Amazon, eBay, and Walmart. This prevents accidental order total shrinkage and false overpayment states when shipping tax lives at the header level.
  • Tax recalculation now runs after all taxable order changes. More order edits now trigger the canonical tax recalculation path, including shipping changes, delivery option changes, discount changes, taxable flag edits, returns, and tax-exempt changes. This keeps stored totals aligned with fresh tax results and blocks confirmation when tax must be refreshed first.
  • Tax-exempt toggles no longer create duplicate tax filings. Changing an order’s tax-exempt status now files exactly one correct tax action for each case. This avoids duplicate reversal behavior while preserving support for older orders that still need a different cleanup path.
  • Refunded overpayments can no longer also remain as spendable credit. Arcus now enforces a refund-or-credit rule for order overpayments. If cash has already been refunded, the related overpayment credit is retired, preventing phantom available credit and incorrect positive balances.
  • Repeated overpayment review signals are deduplicated. Orders that pass through multiple payment status updates in one transaction now emit a single review request instead of duplicates. This reduces noise for staff reviewing genuine overpayments.
  • Shipping label rescue stops retrying terminal packages forever. The label recovery sweep now recognizes packages that are already shipped, labeled, cancelled, fulfilled, or otherwise no longer eligible. This prevents endless retry loops and cleans up operational noise.
  • Missing customer email is now auditable. When Arcus skips a document email because an account has no email address or the order cannot be found, the skip is now logged. Teams get visibility into why a customer did not receive a document without changing send behavior.
  • Tax account updates finish their related order retax work reliably. Changes that affect tax identity now finish their downstream order retax work more reliably instead of risking partial completion. This improves consistency after account-level tax setting changes.

API

  • New backorder fill-now endpoint. A new API action lets authorized workflows fill eligible any-stock backorders for a specific product immediately, using the same allocation logic as the scheduled fill process. This is useful for warehouse and operations tooling that wants on-demand reallocation.
NewImprovedFixedAPIBreaking
v3.223.0
This release delivers a major reporting upgrade, stronger order and fulfillment controls, and clearer automation behavior across shipping, pickup, and notifications.

Unified reporting hub and builder

Arcus now includes a unified Reports experience with a searchable report catalog, saved reports, scheduling, exports, AI-to-report handoff, and a new financial statement designer. Reporting calculations were also aligned to consistent revenue, margin, aging, and comparison rules so dashboards and reports tie out more reliably.

New features

  • Unallocate and reallocate reserved order stock. You can now release reserved sales order quantities back to available stock and choose how they should be re-reserved later. This adds a safer workflow for changing customer orders without losing visibility into backordered or parked demand.
  • Import and migration wizard. A new guided import flow walks teams through planning, upload, mapping, validation, review, execution, and verification. It supports reusable mappings, validation rules, cleaner sample templates, and better handling for spreadsheets, CSV variants, and linked records.
  • Org-level notifications view. Multi-entity users can now see important notifications from other entities in one place, with entity labels and quick switch-and-open behavior. This makes it easier for shared operators to catch urgent issues without manually checking each entity.
  • Arcus AI report handoff and sharing. AI-generated report answers can now be saved as reports, deep-linked, shared with other users, and managed alongside regular saved reports. Verification status is tracked so teams can distinguish reviewed reports from draft AI output.

Improvements

  • Stronger partial invoicing and invoice shipped items workflow. The invoice-shipped flow now better handles discounts, kits, order-level adjustments, and shipment provenance. Customers get more accurate partial invoice totals and clearer protections against duplicate billing.
  • Smarter shipping method recognition and label buying. Imported marketplace orders now do a better job recognizing the customer-paid shipping method, surfacing unmapped methods, and honoring pinned service choices. Carrier rate options are clearer when multiple accounts exist, and label-buy errors now explain billing, address, or carrier issues more honestly.
  • Richer notifications with better controls. Notifications now support severity-aware behavior, richer content, critical banners, better inbox filtering, read-state actions, and sound preferences. Notification emails were also rebuilt on a more consistent template system so staff alerts are clearer and more reliable.
  • Global rolling date presets and improved queue views. Rolling date filters now stay token-based across saved views and URLs so presets keep moving with the calendar instead of freezing to old dates. Order and fulfillment queues also gained clearer tabs, funnel counts, badges, and more accurate delivery filter values.
  • Fulfillment and warehouse workflow polish. Pick lists, walk-in pack, freight queue, shipments alerts, and warehouse pages were streamlined for clearer actions and better status visibility. Operators now get more honest queue states, cleaner layouts, and improved handling for staged labels, no-shows, and freight delivery.

Bug fixes

  • Fixed refunded and overpaid order edge cases. Several order lifecycle bugs were corrected around tax-exempt toggles, overpayments, refunds, and revision flows. This reduces the risk of wrong balances, duplicate captures, or misleading refund prompts during edits and fulfillment changes.
  • Fixed vendor credit and credit memo issuance errors. Credit issuance no longer fails when a reference value is entered in normal text form, and long references are handled more safely. This makes AP and AR credit workflows more reliable for real-world use.
  • Fixed accounting and general ledger reconciliation issues. Multiple accounting fixes improved Trial Balance presentation, cash flow accuracy, AR aging consistency, shipping margin calculations, and duplicate reversal protections. These changes help reports match underlying activity more closely and prevent duplicate postings in edge cases.
  • Fixed payout matching and bank reconciliation visibility. Marketplace payout matching now surfaces lower-confidence but valid candidates instead of showing an empty result. Bank feed and reconciliation screens also received fixes for undo behavior, feed health consistency, and large-result usability.
  • Fixed stale order and allocation UI states. Order backorder, stock allocation, and related parked-state cards now refresh correctly after line edits, swaps, reallocation, and close-short actions. Operators no longer need to reload as often to see the current state.

API

  • Expanded public API and OpenAPI coverage. The API documentation now covers additional live endpoints, including more order, return, purchasing, manufacturer, document, and fulfillment actions. Generated API collections were refreshed to stay in sync with the published spec.
  • New order and reporting API capabilities. New API surfaces were added for actions like unallocating order lines, invoice-shipped workflows, report exports, report sharing, saved AI reports, and org-level notifications. These additions make more of the new reporting and order-management workflows available to integrations.

Breaking changes

  • Pickup no-show automation is now manual-only. Automatic pickup no-show cancellation and automatic refund behavior were removed. Arcus now uses reminder workflows and manual no-show handling so orders are not automatically voided or refunded without operator review.
NewImprovedFixedAPI
v3.225.0
Arcus Mighty 4.0Arcus Mighty 4.0This release brings the Arcus Mighty 4.0 packing engine and pack wizard, resilient Shippo rate and label acquisition with live per-package status, a native bank reconciliation rebuild with unified bank feed and payouts, tags on more lists with saved views, plus a range of returns, AP credit, and reliability fixes.

Arcus Mighty 4.0 packing

The smart packing engine is now Arcus Mighty 4.0, with a redesigned pack wizard and station experience for choosing and confirming boxes. When several boxes fit closely, live carrier rates help pick the most economical option, candidate boxes carry full detail so swaps stay accurate, and the interface shows exactly which engine version produced a pack for full transparency.

Resilient shipping rates and labels

Buying rates and labels now holds up under carrier throttling and slow responses. Rate requests retry automatically when a carrier is rate-limited, labels are acquired in the background so packing is never blocked, and each package shows an honest live status such as queued, fetching, retrying, or staged with the specific reason. Get rates now always shows the full list with a Suggested pill, and an estimated delivery date is captured at label purchase.

Native bank reconciliation and payouts

Bank reconciliation has been rebuilt natively around a unified bank feed that works as a clear review inbox: approve a transaction or point it at the right match. Matched lines now surface in the Categorized view even without an open session, and marketplace and processor payouts get a first-class pipeline with deposit-account selection.

New features

  • Arcus Mighty 4.0 packing engine. The packing engine has been rebranded to Arcus Mighty 4.0 with a redesigned pack wizard and station flow for selecting and confirming boxes. Behavior is preserved while the experience is clearer and more guided.
  • Rate-validated box selection. When multiple boxes fit an order closely, live carrier rates now arbitrate the choice so packing favors the most economical option.
  • Engine version transparency. Pack surfaces now show the exact packing engine version that produced a result, so what you see always reflects the deployed engine.
  • Live per-package label status. Label acquisition now runs in the background with visible per-package status, including queued, fetching, retrying, and staged-with-reason, so you always know where each package stands.
  • Estimated delivery at label buy. Buying a label now captures an estimated delivery date alongside the rate.
  • Native bank feed review inbox. Bank transactions are now a streamlined review inbox where you approve a line or point it at the correct match, with per-account feeds and clearer categorization.
  • Payouts pipeline. Marketplace and processor payouts now have a dedicated pipeline view with payout lines, deposit-account selection, and mismatch visibility.
  • Tags on more lists with saved views. Tags now appear as a first-class column across more catalog lists, work with saved views, and lists gain order-authoritative column reordering.

Improvements

  • Shipping rates hold up under carrier throttling. Rate requests now recognize carrier rate limits as temporary and retry within a bounded budget instead of dropping packages, and the real reason is shown on any staged package.
  • Consistent packing across stations and cards. Pack actions and rate and label capabilities now behave the same way from the station and from package cards, and hiding rates clears the list cleanly.
  • Full rate list with a Suggested pill. Get rates always shows every available rate and marks matches from your shipping rules with a Suggested pill, so you keep the final choice.
  • Categorized view surfaces more matches. Matched bank lines created from the feed now appear in the Categorized view even without an active reconciliation session.
  • Clearer bank fee and deposit handling. Bank feed categorization now handles bank fees and non-session matches more accurately across the reconciliation surfaces.

Bug fixes

  • Adding items with long part numbers no longer errors. Order lines now accept longer part numbers and SKUs, and an over-length value returns a clear validation message instead of a server error.
  • Tax calculation no longer risks a timeout. Tax lookups no longer hold a database transaction open while waiting on the tax provider, eliminating a class of intermittent errors under carrier or tax-provider latency.
  • Returns reverse tax and skip replacement correctly. Return processing handles tax reversal accurately, and returns that skip a replacement are handled cleanly through the approval gate, including warranty replacements.
  • Accurate payout gross figures. Payout summaries now compute gross correctly when refunds are stored as negatives, removing misleading totals.
  • Reliable one-call receipt undo. Undoing a receipt created from the bank feed is now refused when its on-account credit has already been applied, preventing an inconsistent state.
  • Vendor pre-fill on feed suggestions. Create-from-feed suggestions now correctly pre-fill the matched vendor, which previously came back empty.
  • Cleaner list text. Long values across many lists now truncate consistently, and order line product names cut off cleanly.

API

  • Return tax reversal. Return processing through the API now performs accurate tax reversal with filing-status visibility.
  • Package payload detail. Package payloads now project maximum box weight and richer candidate-box detail for shipping integrations.
  • AI query handles for large results. Large AI query results now return through a paged data plane so big result sets are retrieved efficiently rather than truncated.
  • SDKs, OpenAPI, and Postman refreshed. The TypeScript, Python, and Go SDKs, the OpenAPI specification, the Postman collection, and the API reference were regenerated to reflect the changes in this release.
NewImprovedFixedAPI
v3.224.0
This release introduces units of measure across the entire catalog and every document, a smarter reordering and automatic purchase order engine, full-workspace data export, and custom roles with sensitive-field redaction, alongside a broad set of drop-ship, fulfillment, shipping, returns, and accounting improvements.

Units of measure across products and documents

Products now carry quantity, weight, and volume units, and that unit travels everywhere it matters: order lines, packing slips, purchase orders, inventory, the customer portal, PDFs, and emails all show the unit next to each quantity. A new cut-length model lets you sell cut-to-order items, such as hose, from a bulk pool with accurate available quantity and cost to the cent.

Smarter reordering with automatic draft purchase orders

The reorder report gains free-text search, an at-a-glance reorder intelligence strip, overstock and surplus signals, and clearer coverage math. A new opt-in setting can automatically draft purchase orders when stock reaches its reorder point, respecting which locations have reordering enabled, so buyers spend less time building routine POs by hand.

Export your entire workspace

A consolidated Exports and Downloads home in Settings now lets you export far more than a single list. You can pull the full table catalog with every field, follow related data across records, include attachments, and generate a complete migration bundle. Large exports run as background jobs with a My Exports feed, and advanced field selection gives precise control over exactly which columns leave the system.

New features

  • Units of measure everywhere. Products carry quantity, weight, and volume units, and the unit now shows next to every quantity across orders, packing, purchasing, inventory, the customer portal, PDFs, and emails. New products inherit sensible entity defaults, and product screens include a dedicated Units of Measure section.
  • Cut-length and consumable variants. A new variant model supports items sold in cut lengths or consumed in fixed increments from a bulk pool, with availability calculated from the pool and cost rolled up accurately.
  • Automatic draft purchase orders. A new Purchasing Automation setting (off by default) can draft purchase orders automatically when an item hits its reorder point, honoring each location’s reorder-enabled flag.
  • Reorder report upgrades. The reorder report adds free-text search to find any product in any state, a reorder intelligence strip in the wizard, row-level overstock chips and status badges, and surplus and days-of-supply metrics.
  • Full-workspace data export. Export the entire table catalog with every field, walk related data across records, include attachments, and produce a complete migration bundle, all from one Exports and Downloads home in Settings.
  • Advanced export field selection. Choose exactly which columns to export from a searchable, three-group field catalog with per-relation sub-pickers and a per-file review preview before you download.
  • Background export jobs. Large exports now run asynchronously with a My Exports feed, so big pulls no longer tie up the screen.
  • Custom roles with a starter preset library. Create tailored roles from a library of starter presets, managed from a dedicated roles page, with a single consolidated user access wizard.
  • Sensitive-field redaction. A canonical registry now hides designated sensitive fields by permission, enforced consistently across the interface, the API, and exports.
  • Readiness-based auto-pack. Orders from every origin can now auto-pack once they are truly ready, with a payment-intent-first order header that makes taking payment before packing clear and consistent.
  • Return tax reversal and filing visibility. Returns now reverse tax accurately, using the original imported tax for migrated returns and a live tax calculation with a drift check for native ones, and the return detail shows a filing chip that flags any books-versus-filed mismatch.
  • Marketplace shipping method vocabulary. Amazon and eBay orders now stamp native shipping method details, with account-level default shipping method inheritance.
  • Manufacturing Help Center. New and audited manufacturing help guides are now published, with screenshots aligned to the current interface.

Improvements

  • Shipping rates are now suggested, not filtered. Shipping rules annotate matching rates with a Suggested pill instead of hiding options, so you always see the full rate list and keep the final choice.
  • Clearer drop-ship purchase order creation. The drop-ship wizard now groups review lines by vendor with collapsible headers and an honest summary of how many draft purchase orders will be created, and drop-ship documents and vendor emails reflect the real customer delivery address.
  • Broader GL account coding. Vendor bill expense lines and non-AR bank deposits now accept any postable account except bank and control accounts, unblocking equity, liability, and revenue coding across AP and deposit surfaces.
  • Custom-role users get the right access immediately. Signing in or switching entities now loads a custom role’s full effective permissions, so those users are no longer treated as view-only.
  • Permission-gated order actions. Refund and Void Invoice controls on the order detail now respect the acting user’s permissions.
  • Low-stock email controls. Inventory low-stock notifications can now be tuned from settings, and a misrouted account menu card was corrected.
  • Refreshed profile experience. The user profile was revamped and the fulfillment banners consolidated for a cleaner, more consistent layout.
  • Consistent page framing. List pages now share a consistent gutter and framing, correcting full-bleed regressions on the Account Ledger and Financial Reports.
  • Steadier list navigation. Moving between detail records no longer briefly shows stale figures from the previous record.

Bug fixes

  • Migrated returns no longer appear as sales orders. Returns imported from a prior system, and other foreign document types, no longer surface in sales-side lists and operational tabs.
  • Drop-ship money safeguards. A return that settles by both credit memo and cash can no longer double-disburse, receiving a drop-ship line twice is now blocked by an idempotency key, and re-receiving after an un-receive correctly restores stock.
  • Customer portal cancel safeguards. Portal cancellations now honor the same drop-ship and work-order blockers as internal cancels, with clear customer-facing messaging.
  • No more phantom gross-up on above-list sales. Selling above list price no longer posts an offsetting wash pair of ledger entries.
  • Accurate drop-ship accruals. Received-not-invoiced accruals for drop-ship receipts now tie to the correct purchase order.
  • Drop-ship wizard stability. A stale line-state condition that could crash the drop-ship wizard for staff has been fixed.
  • Custom-role assignment fixed. A schema condition that blocked assigning custom roles has been resolved.
  • Auto-confirm respects separation of duties. System-initiated order auto-confirmation now clears the separation-of-duties gate correctly, and full payment on external or manual tenders confirms the order as expected.
  • Cleaner quantity display. Order quantity cells no longer render the unit twice.
  • Reliable large exports. Order and invoice exports no longer time out on large accounts, using an efficient keyset walk.
  • Frontend source is no longer exposed. Public source maps are no longer served for the web app, so the frontend source can no longer be reconstructed from the live site.

API

  • Export APIs. New endpoints expose the field catalog, relation-aware projection, and asynchronous export jobs, governed by dedicated export permission scopes.
  • Units of measure in payloads. Quantity units now thread through purchase order, inventory, returns, portal, public-share, AP, and package payloads, so integrations see the same unit the app displays.
  • Shipping method default. The API now supports an account-level default shipping method for orders.
  • Return tax reversal. Return processing through the API now performs accurate tax reversal with filing-status visibility.
  • SDKs, OpenAPI, and Postman refreshed. The TypeScript, Python, and Go SDKs, the OpenAPI specification, the Postman collection, and the API reference were regenerated to reflect the export, units-of-measure, shipping, and returns changes in this release.
NewImprovedFixedAPIBreaking
v3.223.0
This release delivers a major performance overhaul for large lists, a new data export chooser across the app, and a broad set of accounting accuracy improvements spanning vendor refund checks, vendor credit coding, deposit slips, customer statements, and sales tax reporting.

Faster large lists across the app

Orders, products, and other high-volume lists no longer bog down under heavy use or when paging deep into large result sets. Costly per-row calculations and runaway deep-page queries have been eliminated, and a new safeguard makes an unusually heavy list query stop cleanly on its own instead of slowing the whole system for everyone.

A new data export chooser on every list page

Exporting from a list now opens a chooser with four clear options: download exactly what you are viewing, the current view with every available field, the entire table with every field, or an advanced setup where you pick the scope and the specific columns. Exports now walk the full result set that matches your filters, not just the page on screen.

New features

  • Export your full filtered view. Exports now include every row that matches your current filters, segment, search, and sort, rather than only the rows visible on the current page. A clear progress indicator and a cancel option keep large exports under control.
  • Advanced export field selection. The advanced export option lets you choose the export scope and pick exactly which columns to include, with quick presets for all, none, or currently visible fields. Teams get precise control over what leaves the system.
  • Record and deposit vendor refund checks. Vendor refund checks can now be recorded and deposited through the same check and bank deposit workflow used for other payments, including deposit tracking, voids, and bounced-check handling. Refund intake now stays consistent with the rest of cash management.
  • Choose the GL account when issuing a vendor credit. Issuing a vendor credit now lets you pick which expense or general ledger account the credit posts to, with a sensible default preserved. The vendor credits list also gains a “Coded To” column so you can see the account at a glance.
  • Rebuilt deposit slip PDF. Deposit slips now print in a clean, teller-style format on a single page, with a payer column, item counts, clearer subtotal and net-deposit lines, and automatic overflow to a continuation page for large deposits.
  • New deposit slip layout settings. Admins can now tune how deposit slips print, including stock preset, font weights and sizes, rows per slip, whether payer names appear, and a calibration canvas for precise print alignment.
  • Print a full check packet from Pay Bills. Pay Bills can now print an entire ordered run of checks at once, with a clear summary of what will print and an on-screen preview before you commit. This makes larger payment runs faster and more predictable.
  • On Terms customer roster in AR. AR Management now includes an On Terms view that lists every credit-terms customer, including those with a zero balance, alongside their terms, credit limit, open balance, available headroom, and hold status. This makes it far easier to review overall credit exposure.
  • Redesigned bulk statement send. Sending customer statements in bulk now uses a guided, step-by-step flow: select customers, choose a statement period and mode, review a preview of who will receive what, and see an honest result summary of what was actually sent and skipped.
  • Secure hosted customer statement page. Customers can now open a secure, link-based statement page that shows open items and aging, downloads the statement PDF, and pays individual invoices directly. It works even when the full customer portal is turned off.
  • Branded statement PDF download in-app. Staff can now download a branded statement PDF directly from the statement screen, matching exactly what the customer receives.
  • Open-item statement mode. Statements can now be produced in open-item mode, listing every currently unpaid invoice for the period rather than a running balance, matching the format many finance teams expect.

Improvements

  • Deep-paged lists respond instantly. Requesting a page far beyond the end of a large list now returns immediately instead of running an expensive query that could tie up the system.
  • Faster product lists sorted by availability. The product list sorted by on-hand and on-order availability now loads dramatically faster on large catalogs, with identical results.
  • Runaway list queries now stop cleanly. A new time limit ensures an unusually heavy list query is cancelled on its own rather than degrading performance for everyone else.
  • Faster order dashboards and trends. Order summary metrics and trend charts now load faster on large datasets using more efficient date-scoped lookups, with unchanged numbers.
  • Receive Payment shows true balances for large accounts. Receive Payment no longer bases totals on only the first page of open invoices. Large accounts now show the real total outstanding and document count, let you load more items and search, and keep your selections stable across paging and search.
  • More context before sending statements. The statement send flow now shows open balance, overdue amount, and aging per customer, a running total of what you have selected, and a per-customer preview of the exact statement content before you send.
  • More consistent Accounts list filtering. The Accounts list now uses the standard filter bar for pricing level and an accurate, server-driven inactive filter, so counts, footers, and exports all stay aligned with the records actually shown.
  • Consistent customer credit workflows. Issuing and applying customer credits now use shared dialogs and validation across AR screens, reducing differences between screens and improving reliability.
  • Applying a credit now sees every open invoice. Applying a customer credit from the credits list now loads the full set of unpaid invoices instead of only the first page, so nothing eligible is hidden.
  • Next check number preview before paying. AP payment screens now show the next check number for the selected bank account before you print or issue, updating instantly when you change banks, so numbering is easy to verify up front.
  • Cleaner sales tax jurisdiction grouping. The sales tax liability report now normalizes jurisdiction names into consistent state, county, city, and district groupings, making totals easier to review and reconcile for filings.
  • Verified tax-filing indicator for migrated orders. Orders brought over from a prior system can now show that their tax was already filed externally, so finance teams can clearly distinguish them from orders filed natively by Arcus.
  • Bill-of-materials pickers exclude non-buildable items. Packaging products and parent-only variant records are now excluded from bill-of-materials selection and rejected if submitted, preventing invalid manufacturing definitions.
  • AR management and aging report readability. The AR management header now stays on one clean row across common screen sizes instead of wrapping awkwardly, and the aging report fits on screen by default while keeping additional columns available on demand.
  • Modernized Account Ledger and Financial Reports. The account ledger and the financial reports (trial balance, balance sheet, income statement, cash flow, and sales tax) now use the standard full-height list experience with sticky headers and always-visible summary footers, and account rows link directly through to the account ledger.
  • Modernized asset and accrual lists. Received-not-invoiced, all assets, fixed assets, and leases now use the standard list experience with sticky headers, framed footers, and consistent filtering, and asset lists no longer hide rows past a fixed limit.
  • Modernized disputes, payouts, and 1099 vendors. Disputes, marketplace payouts, and 1099 vendors now use the standard list experience with summary tiles, sortable columns, and column controls, with all existing actions preserved.
  • Modernized recurring invoices, bills, and journal entries. Recurring invoice, bill, and journal entry lists now use the standard list experience with summary tiles, segment tabs, sortable columns, and column controls.
  • Modernized inventory, documents, and warehouse transfer views. Inventory overview, the document manager, and warehouse transfers and quarantine now use the full-height list experience with compact summary strips and consistent controls.
  • Modernized Communications and Documents lists. The communications center and document manager now use the standard list experience with sortable columns, column controls, saved list state, and date-range filtering.
  • Modernized settings lists. Payment terms, categories, brands, number counters, locations, and categorization rules now use compact, sortable tables while keeping all create, edit, and delete actions.
  • Modernized team, supply and demand, and purchase order lists. The entity team page, the supply and demand view, and the purchase order list now use the standard list experience with sortable columns, saved views, and date filtering.

Bug fixes

  • Sales tax liability report no longer overstates collected tax. A reporting join could multiply collected tax figures, in one case by roughly 2.6 times. Collected tax now aggregates correctly and reconciles to the ledger to the cent, including imported channel sales.
  • Migrated orders no longer double-post tax on re-fulfillment. Orders imported from a prior system, whose tax already lives on their migration records, no longer post tax a second time when they are later fulfilled in Arcus.
  • Migrated orders no longer double-post shipping or discount amounts. The shipping and discount postings now skip imported historical orders, protecting the ledger when a migrated order is re-fulfilled.
  • Filtered accounts export no longer drops rows. A filtered Accounts export could end early and silently omit a large share of matching records. Exports now return the complete set that matches the selected filters.
  • Communications and Documents date filters now narrow the list. Applying a date range on the communications and documents lists now filters both the summary tiles and the rows in the table, instead of changing only the totals.
  • Documents date filter no longer includes an extra day. The documents list no longer over-includes records from the day after the selected end date, matching the summary counts exactly.
  • Communications delivery metrics now reflect true totals. The Sent Log summary now counts all sent and failed messages across the full result set rather than only the current page, correcting misleadingly small delivery figures.
  • Bulk resend now reports the real skip reason. When a bulk statement or invoice resend skips a recipient, it now shows the actual reason instead of always labeling it as unsubscribed.
  • Statement send no longer falsely reports success. If statement emails are turned off in settings, sending now shows a clear warning that nothing was sent instead of a green success message.
  • Send Statement from the customer console now sends a real statement. This action now generates the proper statement PDF and respects the statement email setting, instead of emailing a bare template with no statement details.
  • Public statement links show a clearer unavailable state. An invalid or expired statement link now shows a friendly unavailable message without exposing account or access details.
  • Cleaner framing on full-height tables. Sticky headers and footers on full-height list pages no longer paint over the table’s border, so those layouts render cleanly and consistently.

API

  • Expanded AR statement APIs. Statement endpoints now support open-item mode, clearer half-open date ranges, richer statement content with purchase order and due-date detail, secure token-based statement links, and recipient lookup, so integrations can match the new in-app statement experience.
  • Customer credit v1 endpoints now use the canonical workflows. The v1 create and apply customer credit endpoints now run through the same core credit logic as the app, fixing a credit balance tracking gap and a broken apply path and improving long-term consistency.
  • Payment candidate API returns true totals and supports search. The multi-invoice payment candidate endpoint now returns full outstanding counts and amounts rather than page-limited totals, and it supports searching by document number or amount.
  • Accounts API adds recipient lookup and pricing level filtering. New account recipient lookup supports statement delivery, and account listing now filters by pricing level, making it easier for external tools to mirror in-app selection and communication behavior.
  • Products API can exclude product types. Product listing now supports excluding specific product types, used to keep packaging and parent-only variants out of bill-of-materials selection, and useful for building safer product pickers.
  • Per-bank check numbering in the API. The next-check-number endpoint now accepts a bank account, so integrations can preview the correct next number per bank before issuing checks.
  • Vendor credit GL account in the API. Issuing a vendor credit through the API now accepts the general ledger account it should post to, matching the in-app coding option.
  • Communications log stats endpoint. A new endpoint returns filter-aware sent and failed totals and delivery rate for the communications log, powering accurate summary metrics.
  • SDKs, OpenAPI, and Postman refreshed. The TypeScript, Python, and Go SDKs, the OpenAPI specification, the Postman collection, and the API reference were regenerated to reflect the statement, credit, payment, and product changes in this release.

Breaking changes

  • Legacy AP credit and one-click check deposit routes retired. Older duplicate endpoints for issuing AP vendor credits and depositing a check in one click were removed in favor of the canonical vendor credit and bank deposit workflows. If your integration calls those older endpoints, switch to the current vendor credit and bank deposit APIs.
NewImprovedFixedAPI
v3.222.0
This release delivers a full manufacturing production suite, an end-to-end drop-ship workflow, an upgraded list-page experience across dozens of screens, and a broad set of accounting, returns, fulfillment, inventory, and search improvements.

End-to-end drop-ship workflow

Drop-ship orders now support guided purchase order creation from a sales order, two-way order linkage, vendor shipment tracking, cancellation and recovery tools, smarter ship-to handling, and stronger safeguards around when goods can be sourced. This makes drop-ship orders easier to run day to day while keeping order status, customer billing, and downstream accounting accurate.

Manufacturing production suite

Manufacturing gains combined production runs, chain buildability planning, work order assignees and presence, a printable shop-floor traveler, live labor time tracking, undo for work order completion, and a richer bills-of-materials catalog with reverse recipes, tags, and archive. Planners and the shop floor now have the tools to coordinate related jobs and run builds with confidence.

New features

  • Combined production runs and planning tools. Manufacturing now supports combined runs that group related work orders, chain buildability planning that shows achievable output before work starts, and a merge-to-conversion workflow. Planners can coordinate dependent jobs and understand true available output up front.
  • Work order assignees and presence. Work orders can now be assigned to one or more team members, with assignee filters and presence indicators in list, board, and detail views. Teams can see who owns each job at a glance.
  • Shop floor traveler PDF. A new traveler document gives the shop floor a printable work packet with components, notes, serial capture, and sign-off areas, so operators can run a build without staying at a screen.
  • Undo last work order completion. You can now reverse the most recent work order completion batch when a build was posted in error. Arcus previews exactly what will be reversed and refuses unsafe reversals when the produced output has already been consumed or the work order is closed.
  • Live labor time tracking. Work orders now support start, pause, and stop labor timers per operator, rolling captured time into standard labor cost at completion. This gives production a real record of time spent alongside material and overhead.
  • BOM reverse recipes for disassembly and conversion. Bills of materials can now generate a linked reverse recipe and pairing, making teardown and conversion definitions easy to create and keep in sync with the forward build.
  • BOM catalog, tags, grouping, and archive. The bills-of-materials catalog now offers a tile view, product grouping, tags, and archive and restore behavior, making manufacturing definitions much easier to organize and find.
  • Read-only BOM documents on work orders. Work orders can now display the source BOM’s standard-operating-procedure and specification documents directly on the job, so the shop floor always references the latest instructions without duplicating files.
  • In-context document library on BOMs. Bills of materials now have the shared documents card with in-app preview, so teams can attach and review reference PDFs and images without leaving the page.
  • Manufacturing settings page. A dedicated manufacturing settings area now exposes labor, overhead, release, and timer defaults that were previously fixed, letting teams tune core manufacturing behavior without engineering involvement.
  • Sellable flag for products. Products now carry a “can be sold” setting so component-only parts can be hidden from sales entry while remaining purchasable and usable in bills of materials. This prevents accidentally adding an internal component to a customer order.
  • Guided drop-ship creation from a sales order. You can now turn sales order lines into a vendor drop-ship from a per-line action or the line editor, with both directions of the sales-order-to-purchase-order link visible from either record.
  • Vendor-shipped tracking and guided undo for drop-ship. Drop-ship orders now capture vendor shipment and package details on receiving, expose a “mark shipped by vendor” surface, and offer a guided undo when a drop-ship step needs to be reversed.
  • Drop-ship cancellation and recovery. A cancel wizard and lifecycle recovery flow now walk users through cancelling a drop-ship, backed by a purchase order status state machine that keeps the linked sales and purchase orders consistent.
  • Drop-ship destination and truthful documents. Drop-ship purchase orders now carry a proper ship-to-customer destination card, and the generated drop-ship purchase order PDFs and vendor emails now reflect the real customer delivery address.
  • Saved views on list pages. List pages now support saved views that remember filters, columns, sort, density, and segment, including a named default view that applies automatically when no explicit filters are set. Teams can return to the same working layout instantly.

Improvements

  • Receive Payment redesigned for unapplied cash and overpayments. The Receive Payment flow now makes on-account payments and extra cash discoverable: the amount received is the primary control, payments apply across multiple invoices clearly, surplus routes to customer credit instead of hitting a dead end, and you can record a deposit even when no invoices are open.
  • Accounts list upgraded. The main accounts list now offers KPI summary tiles, server-side sorting, accurate segment counts, saved views, and column controls, with faster sorting and duplicate detection on large customer datasets.
  • Products list upgraded. The products list now has KPI tiles for active, no-cost, and inactive counts, server-side sorting, column controls, and saved views for faster catalog work.
  • Serial numbers list upgraded. The serial numbers list now uses the upgraded list experience with total, available, sold, and warranty-expiring summary tiles, server-side sorting, date filtering, and column controls, and it no longer caps at a fixed number of rows.
  • Orders list upgraded. The orders list now shows booked-business KPIs (revenue, average order value, margin, orders, outstanding), honest payment status chips, accurate segment counts, server-side sorting, and multi-filter support.
  • Shipments list upgraded. The shipments list now uses the upgraded experience with a KPI strip, segments, server-side sorting, date filtering, saved views, a has-tracking filter, and column controls.
  • Fulfillment and purchasing queues upgraded. The fulfillment work queues, the holds queue, and the purchasing pending-approval queue now use the upgraded list experience with accurate segment-scoped pagination totals that no longer show phantom pages.
  • Inventory and warehouse views upgraded. Inventory analytics, the quarantine queue, and stock transfers now use the upgraded list experience with server-side pagination, sorting, and date controls, plus tabular alignment on transfer detail lines.
  • AR management views upgraded. The AR management dashboard, aging report, unmatched receipts, and refund-due views now use the upgraded list experience with aging-bucket segment counts, server-side sorting, date controls, and column menus, and unlinked documents are now labeled and drillable.
  • Credit memos, vendor credits, and collections upgraded. Credit memos, vendor credits, collections, deposits, and the check register now use the upgraded list experience with segments, accurate counts, server-side sorting, and stats.
  • AP bills and Pay Bills upgraded. The accounts payable bills list now uses the full upgraded experience with segments, server-side sorting, and filters, and the Pay Bills screen gains a KPI summary strip.
  • Invoices list gains server sorting and richer filters. The invoice list now supports server-side sorting, a prominent date control, richer filters, and corrected paid-amount statistics.
  • Journal Entries list upgraded. The journal entries list now uses the upgraded list experience for faster review of ledger activity.
  • Admin lists upgraded. Organization users, the audit log, roles, and account API keys now use the upgraded list experience with server-side sorting, column menus, KPI strips, and full parity for invite, resend, revoke, role change, deactivate, MFA reset, and per-entity access actions.
  • Product detail sub-tables modernized. The serials, bin locations, approved vendors, vendor performance, active FIFO layers, and variants tables on the product detail page now support sorting, pagination, date filtering, and column controls, so nothing is hidden on high-volume products.
  • Account detail sub-tables modernized. The account transactions, recent bills, call history, and prepayments tables on the account detail page now support sorting, pagination, date filtering, and column controls. The transactions ledger shows a true running balance under a date window and hides the balance when sorted by a non-date column so the figure never misleads.
  • Vendor returns list modernized. The vendor returns list now uses a real sortable table instead of a raw list, improving readability and control.
  • Document management on business records improved. The shared documents experience now offers in-app preview and improved delete handling, and it has been adopted on bills of materials in addition to existing record types.
  • Manufacturing math, cost, and inventory honesty. Manufacturing screens now use clearer quantity and cost labels, more honest estimate displays, cross-location inventory hints, exact explosion and buildability math, whole-number inputs where fractions are invalid, and truthful FIFO detail. This removes confusion in both planning and execution.
  • BOM and work order UI polish. Manufacturing pages now offer stage-aware detail headers and actions, type-specific labels for assembly, disassembly, and conversion, an improved Create BOM product picker with rich rows and type chips, better toolbar layout, and clearer labor and cost presentation.
  • Movement ledger on work order detail. Work order detail now includes a compact movement ledger showing GL and inventory movement, matching the timeline view already used on orders.
  • Production planning certified. The production planning and material-explosion screens were re-verified for correct math and brought up to the current design bar.
  • Drop-ship purchase order send and card layout. You can now mark a drop-ship purchase order as sent when you contacted the vendor outside of email, and the linked drop-ship cards were redesigned to prioritize the vendor and the most important details without squishing.
  • AvaTax status, copy, and filing visibility. Tax screens now present clearer lifecycle messaging, better error surfacing when a force-resync fails, and improved per-order filing status, so finance teams understand what happened and what to do next.
  • Search finds returns and runs faster. Global search now includes customer returns and vendor returns more reliably and uses faster matching for short order, invoice, and purchase order number lookups, so results are more relevant with less waiting.
  • Dropdowns and pickers stay on screen. Menus, date controls, column menus, address and product pickers, and line-item popovers across the app now stay inside the viewport, removing many cases where actions or filters were clipped off-screen on smaller displays.

Bug fixes

  • Drop-ship accounting and lifecycle accuracy. Multiple fixes brought drop-ship correctness up to standard, including proper revenue, receivable, tax, and discount recognition when a drop-ship purchase order is received, correct status progression, cancellation recovery, ship-to propagation, quantity guards, and edit locks on linked sales and purchase orders.
  • Drop-ship sourcing blocked without payment intent. Creating a drop-ship purchase order now requires real payment activity or payment terms, and a credit hold still overrides everything. This prevents vendors from shipping directly to a customer when there is no clear intent to pay.
  • Drop-ship inventory and vendor-return edge cases. Mixed orders that divert some units to stock now post the correct inventory and received-not-invoiced entries for the diverted units, drop-ship lines no longer consume local stock reservations or backorders, and drop-ship vendor-return disposition no longer stages stock that does not exist.
  • Manufacturing multi-batch posting fixes. Second and later completion batches on a work order no longer collapse into no-op postings, source consumption for disassembly and conversion posts once per batch correctly, and the affected ledger accounts no longer drift negative across batches.
  • Work-in-process lifecycle corrected. Partial completions no longer double-relieve work-in-process, conversion now consumes its source and returns removed parts, scrap uses issued work-in-process semantics, and cancelling a work order reverses both labor and actual material cost.
  • Non-serialized disassembly unblocked. The source serial field now only appears and gates when the source product is actually serialized, removing a hard blocker that stopped every non-serialized disassembly and conversion.
  • Over-disassembly guard. Teardown and conversion work orders now measure buildability against source stock and warn on a shortage at creation and completion, instead of silently allowing a teardown of more units than are in stock.
  • Work order estimates and GL card fixed. Disassembly and conversion cost estimates no longer show as negative, and a completed work order’s journal entries card now refreshes instead of showing stale “no journal entries.”
  • Fulfillment no longer auto-completes delivered orders with unposted inventory. Orders whose packages were delivered but whose inventory was never posted now stay in a reviewable state instead of being marked fulfilled, protecting inventory and accounting integrity when shipping events arrive out of order.
  • Returns and RMA handling fixes. Several return issues were corrected, including reverse-explosion of non-tracked kit-parent receipts, kit and variant handling, customer return shipping labels that failed on a missing phone number, refund options for externally settled payments, and inventory restoration on receive.
  • AR and credit calculations are more consistent. Outstanding balances, overdue amounts, aging buckets, and customer credit now reconcile across the AR dashboard, account detail, and related views, using a single source for the credit balance.
  • PO ship-to selection and address reuse. Purchase order ship-to editing now anchors to the correct section, reuses a matching pickup address instead of duplicating it, and keeps destination behavior consistent with sales orders.
  • Search links and result messaging. Broken and misleading links were corrected, including return deep links, a return result pointing at the wrong record type, and vendor bill navigation from embedded account views, and the fuzzy-match banner now honestly indicates when results are close matches rather than exact.
  • Native orders now commit to AvaTax. Manually created orders that previously never reported to AvaTax now commit correctly as the tax record, with matching reversal behavior and a hard block that keeps historical imported orders out of the tax pipeline.
  • Runtime stability improved. A database connection drop that could crash a running service was fixed, improving operational stability under load.

API

  • Expanded drop-ship API coverage. The API now spans more of the drop-ship lifecycle, including guided purchase order creation from a sales order, cancel previews, unlink actions, vendor shipment details on receiving, undo eligibility, and undo operations.
  • List API sorting, filtering, pagination, and stats. Many list endpoints gained additive support for server-side sorting, richer filters, date ranges, pagination, segment counts, and KPI-style statistics. Existing callers stay compatible when they do not opt in.
  • Product sellable flag in the API. Products now expose the sellable setting through the API, and the sales order line endpoints enforce it so component-only items cannot be added to a sale, including through the public API.
  • Manufacturing API additions. Manufacturing endpoints now support work order assignees, traveler PDF retrieval, labor timer actions, combined-run workflows, BOM reverse linking and restore, and new filters such as assignee and BOM linkage on work order lists.
  • SDKs and API reference refreshed. The TypeScript, Python, and Go SDKs, the OpenAPI specification, the Postman collection, and the API documentation were regenerated to reflect the new drop-ship, manufacturing, list, and product capabilities.
NewImprovedFixedAPI
v3.221.1
This release improves returns control, list-page usability, shipping accuracy, and accounting truth across daily workflows.

RMA reversals and void controls

You can now safely reverse return steps when operations change, including un-receive, re-inspect, un-disposition, re-open settlement, issue supplemental refunds or recovery charges, and void or unvoid an RMA. This gives teams a complete way to correct return mistakes without resorting to workarounds.

New features

  • External refunds for returns. Returns can now be recorded as refunded outside Arcus. Teams can track those refunds cleanly in the return workflow and general ledger, including the clearing leg when money was sent externally.
  • Invoices now use the new list page experience. The invoice list now has KPI tiles, segment tabs with counts, sticky table controls, date presets, and URL-backed filters. This makes invoice review faster and keeps list state shareable and easier to return to.
  • Saved views API for list pages. A new saved views API lets apps store per-user list settings such as filters, columns, sort, density, segment, and a default view for each table. This supports more personalized list workflows across the product.
  • Freight and LTL orders now track stage and carrier cost. Freight shipments now show a stage-aware lifecycle, capture carrier cost, and feed shipping margin correctly. Teams can manage pallet-based freight more accurately from quote acceptance through delivery.
  • Configurable credit-limit enforcement and override flow. Admins can now control soft and hard credit-limit behavior in settings, and users see a proper confirm-time override flow when an order is blocked. This makes credit policy clearer and easier to manage operationally.

Improvements

  • Return refund calculations are more accurate for imported and channel orders. Arcus now derives return line economics more reliably when imported or channel orders do not carry complete line-level amounts. Refund estimates, previews, fees, and settlements now stay aligned instead of dropping to zero or diverging across screens.
  • Partial return refunds now settle truthfully. When a return is refunded in stages, follow-up store credit or remaining refund amounts now increase the existing settlement correctly instead of appearing settled without actually disbursing the full amount. Refund-only returns also close only after the full amount has really been settled.
  • Return workflow UI is clearer and more honest. The return detail page now presents a clearer step-by-step lifecycle, separate inspection as its own stage, and more accurate chips, timelines, and next actions. This reduces confusion for teams receiving, inspecting, and dispositioning returns.
  • Voided returns no longer block replacement returns. Voided RMAs are no longer counted as returned inventory or returned quantity. This prevents false ‘fully returned’ states and lets teams create the correct replacement return when the original one was voided.
  • Dashboard dates and AR views now respect the entity timezone. Daily and monthly dashboards, AR aging, statements, and transaction running balances now use the entity’s local business date instead of UTC boundaries. This improves end-of-day accuracy and keeps statements tied to open AR correctly.
  • Shipping address handling is more flexible and more honest. Teams can now override carrier validation for addresses that are deliverable but not carrier-verifiable, with audit details captured. Arcus also shows clearer carrier-specific label purchase errors so users know when USPS will refuse an address and when another carrier should be used.
  • Document emails now self-heal before sending. If an invoice or other customer document would generate a bad PDF because totals are temporarily out of sync, Arcus now recalculates and retries automatically. If the attachment still fails, the email is stopped instead of sending a blank or attachment-less document.
  • Portal packing slips recover automatically when the cached file is missing. Customer packing slip links now regenerate the PDF on demand when the cached copy is absent. This avoids misleading not-found errors for historical or previously cached shipments.
  • Purchasing and AP are clearer for migrated purchase orders. Migrated purchase orders now show their original external PO number in the PO detail and AP bill picker, and washed migrated POs can be billed through a dedicated path without creating duplicate billing. PO detail GRNI balance also now reflects the actual ledger balance.
  • Marketplace order imports keep cleaner notes and safer fulfillment links. Imported marketplace app metadata is now stored separately instead of cluttering order notes and operator tags. Arcus also preserves external channel line links during line replacement so fulfillment pushes are less likely to miss channel items after edits.
  • Undo fulfillment is safer on shipped and serialized orders. Undo fulfillment now preserves package, label, and serial relationships instead of destructively tearing them down. This makes recovery from fulfillment mistakes safer and keeps orders editable when the shipment record is reversed.
  • Inventory reservations and backorders are more reliable. Arcus tightened several reservation and backorder edge cases that could create phantom holds or stale backorder records during confirms, edits, receipts, and cancellations. This improves stock accuracy and reduces allocation drift in active operations.

Bug fixes

  • Fixed a cross-tenant kit editing security issue. A kit component write path now correctly enforces entity ownership before allowing changes. This closes a case where a user could have updated another entity’s kit bill of materials.
  • Per-page selectors now work on several accounting and admin lists. Page size controls that looked available but did nothing are now wired to real pagination on affected screens. Changing rows per page now updates the list as expected.
  • Date picker weekday alignment corrected. Calendar grids now align dates under the correct weekday headings. This removes a subtle but important risk of selecting the wrong date.
  • Manual sends for migrated documents are allowed again. Operators can now manually resend migrated invoices, purchase orders, and returns when needed. Automated overdue reminders still continue to exclude migrated history.
  • Unmatched receipts no longer include migrated historical receipts. The unmatched receipts view now focuses on live reconciliation work instead of flooding the list with historical migrated receipts that were already settled before cutover.
  • Carrier address override is reachable from the address picker. The audited ‘use address anyway’ flow can now be completed directly from the ship-to picker without the dialog closing unexpectedly. The address state badge is also more truthful after an override.
  • Label and package binding is safer for multi-parcel shipments. Multi-parcel label assignment now uses identity-based matching instead of relying on a fragile positional assumption. This reduces the chance of package-to-label mismatches.

API

  • Saved views endpoints added. API clients can now create, update, list, delete, and set defaults for per-user saved views on supported tables. Saved view events are also emitted so integrations can stay in sync.
  • Return refund APIs support external refund destinations. Return refund requests can now record an external refund path, allowing API-driven workflows to distinguish refunds processed outside Arcus while preserving accurate accounting behavior.
NewImprovedFixedAPI
v3.221.1
This release makes fulfillment and returns safer and more flexible while improving order visibility, search, documents, and accounting workflows.

Safer fulfillment automation defaults

Arcus now defaults card capture to manual and auto-buy label behavior to off unless you explicitly enable it. This helps prevent accidental charges, label purchases, shipment emails, and fulfillment on orders that were not meant to ship automatically.

New features

  • RMA receive, inspect, and disposition workflow. Returns can now move through a clearer warehouse-to-office flow with Receive and Inspect, an Inspected step, and an optional setting to require disposition before refund. Teams can separate warehouse receiving from office-side refund decisions without changing the core return lifecycle.
  • First-class shipping and processing-fee refunds. Return refunds can now include outbound shipping, shipping tax, and processing-fee refunds with previewed totals and persisted values. This makes partial refunds and keep-fee scenarios much easier to handle accurately.
  • Cancellation fee automation and billing corrections. You can now configure cancellation fee rules and apply retained fees directly in the refund and cancel flow. A new billing correction flow also lets teams close stranded balances after partial or shipping-only refunds without leaving orders stuck in aging.
  • Per-bank check layouts and numbering. Accounts payable check settings can now be managed per bank account, including numbering, layouts, and register visibility of the drawn-on bank. This gives finance teams more control when different bank accounts require different printed check formats.
  • Payment instrument details shown across internal views. Arcus now stores and displays payment instrument snapshots such as card brand and last four digits on internal payment surfaces. Staff can quickly confirm which card or bank account was used without relying on generic payment labels.
  • Expanded order and returns settings in the UI. A range of backend-supported settings are now available directly in Admin, including delinquency controls, return processing defaults, kit shortfall behavior, vendor return terms, and purchase order terms. Operators no longer need raw API calls for these options.
  • Legacy IDs added to global search. Search now matches legacy external IDs for orders, accounts, and products, making it easier to find migrated records using familiar identifiers from prior systems.

Improvements

  • Order detail redesign and clearer line-item math. The order detail page has been reorganized for easier scanning, with cleaner status chips, better notes and customer sections, improved line actions, and a unified breakdown card. Line savings, totals, discounts, fees, and all-in amounts now tie together more clearly across the page.
  • Order, invoice, and email document presentation is more consistent. PDFs and emails now share one money display grammar, customer-safe coupon labels, clearer payment references, and reliable rendering of customer PO numbers. You can also choose whether serial numbers appear inline, as a separate attachment, or not at all.
  • Packing slips and packet printing are easier to use. Packing slips now show product names correctly, better handle long names, and all packets can be printed as one combined PDF in package order. This reduces manual reprints and makes multi-package fulfillment easier to manage.
  • Fulfillment and pickup flows are clearer. Pickup orders now follow a more accurate awaiting-pickup flow, pickup-ready emails use the correct location, and pickup packing can bypass shipping-box requirements. The fulfillment tab also has a cleaner toolbar and improved package actions.
  • Search relevance and result quality improved. Search now ranks SKU and part number matches more accurately, supports compacted tracking number matching, includes carrier and payment context in results, and shows account type badges. This makes everyday lookup faster and more reliable.
  • Command and status visuals are more accessible. Status badges, muted text, and several order and returns views were retuned for stronger WCAG contrast and clearer hierarchy. Important actions and status indicators are easier to read across the app.
  • Account list and duplicate detection are much faster. Performance improvements significantly speed up account sorting and duplicate detection on large datasets. This reduces timeouts and makes customer account maintenance more responsive.

Bug fixes

  • Unpaid orders are blocked more reliably from shipping. Fulfillment guards now correctly treat due-on-receipt terms as pay-now instead of deferred terms. This closes a gap that could allow unpaid orders to ship when they should have been blocked.
  • Auto-Fulfill is restricted to pickup-class orders. The one-click Auto-Fulfill action is now limited to pickup and will-call orders unless an explicit override is used by another controlled workflow. This helps prevent accidental label purchase and shipment on delivery orders.
  • Returns tax and refund posting are more accurate. Refunds issued before disposition now pre-settle correctly so sales tax reversals post to the right accounts. Related return flows also now handle shipping, fee, store-credit, and channel-refund combinations more consistently.
  • Tax recalculation uses fresh discount data. Arcus now refreshes per-line coupon allocation before building tax lines, which prevents stale taxable amounts after item, quantity, or price changes. This avoids one-pass over-collection that previously corrected only on a later recalculation.
  • Manual invoicing and undo fulfillment protect AR accuracy. Whole-order invoicing is now blocked on partially fulfilled orders, and undoing fulfillment now keeps invoice and line statuses aligned with the reversed accounting state. This prevents receivable balances from overstating what was actually recognized.
  • Quote acceptance and quote status displays are fixed. Customer quote acceptance no longer treats future expiration dates as already expired, and customer-facing quote pages now use the same expiration logic throughout. This restores acceptance for valid quotes and keeps status badges honest.
  • Refund amount validation is stricter across payment methods. Refund APIs now consistently enforce the cents-based amount contract across all refund types. This prevents under-refunds caused by dollar amounts being interpreted as cents on non-card refunds.
  • PDF downloads open correctly instead of returning JSON. Several finance and returns PDFs, including refund receipts, credit memos, vendor returns, and AP remittances, now open as real PDFs in the browser. Users also get a clearer error if a document cannot be rendered.
  • Shopify-imported orders no longer fail PDF generation. Line totals on imported taxed orders are now folded correctly so document generation does not fail on math checks. This resolves blank-tab PDF failures for affected imported orders.
  • Serial and repack fulfillment is more resilient. Re-running fulfillment on already packed serial-tracked pickup orders no longer fails with an internal error. Arcus now preserves the serial-linked package data it must keep and only rebuilds what is safe to rebuild.
  • Null-location purchasing data no longer disappears from On PO views. On-order quantities now correctly include purchase orders without an assigned location across product detail, reorder, and related purchasing views. This prevents undercounting inbound inventory and over-ordering.
  • Shipping rule selection is more accurate. Channel-based shipping rules now match correctly, FedEx Ground versus Home Delivery selection respects address type, and per-rule auto-buy behavior no longer depends on unrelated entity-wide toggles. This makes automated carrier selection more trustworthy.
  • Portal-off emails no longer show portal-only calls to action. Customer emails now fail closed when the portal is disabled, suppressing links that should not be shown. This avoids sending customers to unusable portal pages.
  • Scheduler-created draft PO shell cleanup is fixed. Automatic purchase order creation now avoids producing repeated empty draft shells and can safely reuse or clean up failed shells. This reduces purchasing noise from background automation.
  • Realtime followers keep working when the leader tab changes. Follower browser tabs now stay in sync on connection status and refresh auth independently when needed. This reduces false Offline indicators and prevents save failures from expired shared sessions.

API

  • Order GL movements are available through a dedicated resource filter. Developers can now fetch journal entries tied to an order, including reversals and related fulfillment, shipping, and payment activity. This makes order-level accounting timelines easier to build against the API.
  • New endpoints and payload support for billing corrections and richer return refunds. API flows now support billing corrections, shipping-refund fields, processing-fee refunds, register selection for return cash refunds, and marketplace refund intent threading. These additions help integrators model more complete post-sale workflows.
  • More reliable document and workflow responses. Several PDF and fulfillment-related API responses were standardized so clients receive the expected file or structured error behavior. This reduces special-case handling for document viewers and automation clients.
NewImprovedFixedAPIBreaking
v3.221.1
This release strengthens returns, payables, and realtime reliability while making key workflows clearer and safer for day-to-day operations.

Redesigned returns workspace

Returns now have a rebuilt create flow and detail experience with clearer financials, linked documents, movement history, and more accurate refund previews. Teams can work through RMAs with fewer dead ends and better visibility into what will happen before money is issued.

New features

  • Return item photo evidence. Warehouse and service teams can now attach photos to individual return line items during receiving and review them later from the return record. This helps document damage, condition, and disputes at the line level.
  • Vendor return detail page. Vendor returns now have a dedicated detail page with status tracking, linked documents, GL movements, warranty trail, and clearer actions. It is easier to follow the full return-to-vendor lifecycle from one place.
  • PO un-receive workflow. Purchasing teams can now reverse eligible receipts when items were received in error. The workflow includes eligibility checks, GL handling, and inventory corrections so stock and accounting stay aligned.
  • Returns receiving consolidated in Warehouse. Warehouse returns queues have been folded into a single receiving surface. Staff can move between waiting and in-holding returns without switching between duplicate tabs.
  • Returns settings consolidation. Returns configuration now lives in one clearer settings area with one save path. This reduces missed settings updates and exposes key return policy and settlement controls directly in the UI.
  • Coupon spend by GL account report. Accounting teams can now review coupon discount activity by GL account. This makes it easier to audit promotional spending when discounts are routed to different accounts.
  • AP remittances for every payment method. Remittance generation and emailing now work across all payables tender types, not just checks. Vendors can receive consistent payment detail regardless of how they were paid.
  • Organization close and entity teardown controls. Admins now get stronger close and teardown workflows with step-up verification, readiness states, and explicit execution steps. This adds more control and confidence to high-risk administrative actions.

Improvements

  • Vendor bill workbench and bill detail refresh. Entering and reviewing vendor bills is now much clearer, with full-page bill entry, stronger PO and GRNI linking, better terms handling, improved line editing, and a redesigned bill detail page. AP teams can review history, linked documents, payments, and GL impact more easily.
  • Payables and accounting UI cleanup. AP Bills, GRNI, Recurring Bills, Vendor Credits, 1099 Vendors, Pay Bills, Check Register, and other accounting views received layout, table, link, and filter improvements. Common tasks are easier to scan, navigate, and work through on real-world screen sizes.
  • Smarter AI vendor bill proposals. AI-assisted vendor bill entry now provides better per-line GL and line-type suggestions, a stronger review screen before confirmation, and links back to the created bill. It also learns a vendor’s default expense account when a clear pattern is confirmed.
  • Bank routing and external AP payments. AP disbursements now route more accurately to the selected bank account, and external payment methods are easier to use in Pay Bills and Quick Pay. This supports record-only ACH and external payments without forcing a Plaid-based workflow.
  • Registers and deposits workflow polish. Register and deposit screens now better reflect real drawer math, simplify actions, and remove misleading options from physical deposit workflows. This helps cash handling staff understand what belongs in the drawer versus what settles directly to the bank.
  • PO detail enhancements. Purchase order detail now includes clearer summaries, expected delivery and tracking fields, inventory movement visibility, and a more usable action bar. PO PDFs also show the vendor part number when available.
  • Realtime and scanner resilience. WebSocket reconnects, scanner presence, serial capture, and live refresh behavior are more reliable across tabs and devices. Warehouse staff should see fewer stale screens, missed updates, and reconnect loops.
  • Forced reload What’s New dialog improvements. The What’s New experience shown during forced reloads is now larger and easier to read, with a better scrolling release list. This makes upgrade guidance clearer during refresh events.

Bug fixes

  • Quote conversion now carries deposits and terms correctly. Converting a quote to a sales order now works from draft quotes and correctly carries over deposits and payment terms. This prevents failed conversions, duplicate orders on retries, and lost payment context.
  • Returns math, status, and settlement corrections. A broad set of returns fixes improves refund math, tax conservation, fee handling, source-settled messaging, status gating, close behavior, and linked financial records. These changes reduce over-refunds, prevent misleading balances, and keep return accounting accurate across more edge cases.
  • Credit card surcharge totals on split payments. Processing fees now accumulate correctly when an order is charged in multiple card transactions. This prevents undercharging and incorrect refund-due calculations on multi-charge orders.
  • Vendor credit accounting and lifecycle fixes. Vendor credits now behave more consistently when issued, applied, voided, received from vendor returns, and shown in related payables screens. This helps prevent stranded balances and keeps AP balances aligned with GL.
  • Refund and credit memo reliability. Refunds now better handle multi-invoice payment applications, and credit memo void and reissue flows are more reliable. This reduces dead-end refund attempts and avoids false success states in reversal workflows.
  • AR, AP, and reporting accuracy fixes. This release fixes several aging, KPI, running balance, date, CSV export, tax liability, and report edge cases across AR and AP. Financial views now better match the underlying accounting truth.
  • Product and billing lookup fixes. Product lookups used by AP bill workflows now resolve correctly in more cases, and duplicate invoice and overbilling checks are enforced more consistently on bill create and edit. This reduces bad saves and confusing raw IDs.
  • Null-link and navigation hardening. More screens now degrade gracefully when related records are missing instead of crashing or linking to invalid destinations. This especially improves reliability for migrated or partial historical data.
  • Android and touch activity auto-lock fixes. Scanner devices now reset inactivity timers from both touch and scan activity. This helps prevent devices from locking in the middle of packaging or receiving work.

API

  • Expanded returns and payables API coverage. The API now supports newer returns, vendor return, remittance, organization close, and teardown workflows used by the updated product surfaces. OpenAPI and SDKs were refreshed to reflect the latest contract.
  • Richer response data for key workflows. Several endpoints now return more useful detail, such as carried payment context on quote conversion, improved refund and return preview data, and broader bill and journal linkage. Integrators can show more accurate status and financial context without extra custom logic.

Breaking changes

  • AP payment void now requires a reason. API clients voiding AP payments must now provide a reason. Integrations should update any payment-reversal calls before upgrading.
  • Returns validation is stricter on create and update. Several returns endpoints now reject invalid or incomplete inputs that were previously accepted or silently ignored, including empty item lists, invalid item references, zero or negative quantities, and certain edits to closed returns. Integrations should review return creation and edit payloads for stricter validation.

Technical details

The refund experience was unified into one code path across order and RMA screens (RefundPanel / RefundBreakdown / RefundDestinationAllocator), closing a four-way net-math divergence where the detail page, create flow, worklist, and preview estimate could each show a different number. A new refund-only return type makes a real, per-line, fee-aware RMA drive the same server preview as a physical return, instead of a bare order refund with no record. The intermittent “Return not found” flash after receive-and-dispose was a React Query cache-shape collision between the receive dock and the detail page, now resolved. A P0 heal corrected deferred-percentage restocking-fee sentinels that corrupted previews and an unclamped store-credit disbursement (one live customer had been over-credited); affected credit memos were healed. Refund panels now filter out voided or abandoned Stripe payment-intent rows before offering returnable tenders, and kit-return COGS reversal rolls the leaf-component cost up so the journal ties to the cent.API behavior (historical-import carve-out preserved): POST /returns now rejects header-only creates (422 items_required), unknown alias keys return_items / order_id (400 unknown_body_key), and invalid item rows (422 invalid_item, reject-never-skip). Fee rules use a decimal fraction for discount_value on fee effects (0.15 = 15 percent); a whole-percent value returns 422 fee_percentage_exceeds_100.
Destructive entity delete, ownership transfer, and organization close now require an MFA step-up challenge (new mfa_step_up_challenges table plus a step-up modal), with an email-code fallback so an owner can never be locked out. The teardown clean-verifier now asserts all seven file-storage asset prefixes, secure secret-store entries, and 231 tables are fully cleared before a delete is considered complete. A new organization teardown execute path with a per-entity verifier fixes scheduled organization closes that could get stuck and never finish. Verified on dev with a real 769,000-row entity delete: the isolation and no-junk audit was a definitive pass with all nine sibling entities byte-intact.
Vendor bill entry moved from cramped modals to a full-page workbench with open-PO and GRNI line linking, a hardened duplicate-invoice guard, real payment terms, and cleaner landed-cost entry; every AP list surface (Bills, Recurring Bills, GRNI, Vendor Credits, Pay Bills, Check Register) was raised to the PO-detail design grammar with status counts and real search and pagination. Disbursement bank routing reached parity with AR receive-payment: the GL credit leg now honors the operator-selected bank account instead of a hardcoded system account, enforced by a new foreign key (prod verified 18,201 clean and 0 contaminated, now validated on all three environments). A reverse-a-paid-and-closed-bill flow was added after researching NetSuite, Acumatica, and Odoo.API (breaking): voiding an AP payment now requires a reason (422 void_reason_required) and adds typed conflicts (409 payment_already_voided, 409 historical_row_immutable, 409 credit_restore_conflict, 422 ach_payment_not_voidable, 422 payment_reconciled_blocks_void); the response now includes a void summary.
Two-tab reload storm, before and after

Open Arcus in two tabs: before, they reloaded each other into oblivion; after, they share one identity and stay in sync.

Four connected problems that all surfaced at the warehouse scanner were root-caused and fixed:
  • Two tabs reloaded each other (100 percent reproducible). The signed-in user was written to browser local storage under two different ID namespaces (the Arcus database user id in some paths, the sign-in provider’s subject id in others). The cross-tab “did the user change?” check compared those as raw strings, so every tab boot looked like a different user to the other tab and triggered a mutual reload storm (measured at 822 reloads in five minutes). Fixed by making the comparison understand both namespaces, plus a reload debounce that survives the reload itself.
  • Scanner “disconnected until reload.” Five stacked failures: the Android app auto-locked after five minutes and killed the heartbeat; the WebSocket baked in the app-boot token (which expires after 24h) and only refreshed on some disconnect codes, not the one browsers actually see; the REST layer never checked token expiry, so background refetches kept succeeding and hid the dead socket; deaf connections (server record gone, socket still open) kept getting answered so the client never reconnected; and the UI did not reflect recovery while manual serial entry was wrongly blocked.
  • Serial scans lagged one to three seconds. The capture wizard read cache keys that the capture and release actions never invalidated, and the backend fired realtime broadcasts fire-and-forget, but the serverless runtime freezes the moment the function returns, so broadcasts did not go out until the next request (one to 30 seconds later). Fixed by invalidating the correct keys and adding a broadcast-flush latency cap.
  • Saves looked stale app-wide. A card read one cache key while its save invalidated a different one, and several UI pieces were subscribed to event names the backend never emits. Both corrected.
Two quieter data bugs were caught along the way: a serial-number concurrency race where fast scanning could silently drop a serial from the record (real evidence found on prod), and inverted package cache keys so an edit in one place did not refresh the same package elsewhere.
Arcus AI now reads a vendor invoice PDF and drafts a vendor bill with smart per-line GL and line-type classification, presented on a confirm-card for line-by-line review and edit before anything posts. The original source document attaches to the created bill, an eager Ask mode speeds review, a “View bill” deep link jumps to the result, PO-only landed freight is respected, and the model learns from each confirmation. The human stays in control end to end.
A controller-persona audit closed a batch of GL correctness gaps (six additive migrations plus gated data heals) and de-squished accounting tables across every screen so identifiers, dates, and six-figure dollar amounts stay readable and unwrapped. Separately, credit-card surcharges now accumulate correctly across orders charged in multiple payments (a per-payment surcharge amount is the single source of truth), where a multi-charge order previously kept only the last charge’s slice and could under-collect.
NewImprovedFixed
v3.221.1
This release improves AR accuracy for terms orders, keeps operator refunds from cancelling open orders, and strengthens several accounting and banking workflows.

Terms orders now stay open and accurate across AR

Orders placed on payment terms now remain collectible instead of being treated like cash payments. AR balances, aging, customer statements, order payment summaries, and invoice emails now show the true amount due, with safeguards and correction tools applied for previously affected records.

New features

  • Check printing now supports darker, bolder text. You can now choose normal, medium, bold, or extra bold text for printed checks. This helps improve legibility on physical checks without shifting field alignment or affecting MICR output.
  • Historical credit memos can be imported as standalone records. Arcus now supports bulk creation of historical AR credit memos for migrated data. This helps imported customer balances and aging match prior systems more accurately.

Improvements

  • Refunds can preserve open orders for re-payment. Processing a full pre-fulfillment refund from the operator workflow no longer cancels the order by default. The order stays open, the balance due is restored, and the customer can be charged again with the same or a different payment method.
  • AR and account screens show clearer payment and terms details. Customer and order views now better distinguish cash payments from on-terms balances, including due dates and terms visibility in more places. This makes collections, credit review, and customer conversations easier and more accurate.
  • Plaid syncing better tracks the correct bank account. Imported bank transactions now retain source account identity more reliably, even when multiple accounts are connected under one Plaid item. This reduces the chance of unreconciled transactions appearing under the wrong bank account.
  • Migrated accounting data imports are more complete and accurate. Historical migration tools now better link payments to orders, import standalone credits, enrich customer terms and address details, preserve purchase order titles, and improve attachment and inventory history loading. Customers working through data migrations should see more accurate drill-through and historical reporting.

Bug fixes

  • Re-issuing invoices after a void now works for fulfilled orders. You can now re-issue an invoice on a fulfilled order without hitting a dead end. The related accounting reversals are restored correctly so the replacement invoice can be collected as expected.
  • Voided invoice reversals now include missing accounting lines. Void and re-issue flows now reverse additional discount, fee, and fulfillment accounting lines that could previously be left behind. This improves journal accuracy and reduces stranded balances.
  • Cancellation fee invoices no longer fail on unpaid order cancellations. Cancelling an unpaid order with a configured cancellation fee now creates the fee invoice correctly instead of returning an error.
  • Return detail check printing now opens the printable check correctly. Printing a check from return details now uses the proper printable output instead of opening raw response data. The print window also closes more cleanly if the request fails.
NewImprovedFixedAPIBreaking
v3.221.1
This release makes bank reconciliation faster and safer, while improving payment routing, payout syncing, reorder planning, and historical migration fidelity.

New bank transaction Feed Inbox and reconciliation baseline tools

You can now review bank transactions in dedicated For Review, Categorized, and Excluded views, then start reconciliation from a cleaner baseline. New baseline, exclude, restore, cancel, and edit workflows make it much easier to clean up old unreconciled activity without posting extra GL entries.

New features

  • Direct-to-bank payment routing. Payments received by wire, ACH, and other external methods can now be posted directly to the bank account they actually hit instead of flowing through clearing first. This works across order payments, account-level receive payment, reconciliation add flows, and refunds.
  • Durable excluded bank transactions. Bank transactions can now be marked as excluded with a reason and restored later when needed. Excluded items stay suppressed during re-syncs so teams can keep their bank feed clean without losing auditability.
  • Automatic Stripe payout polling. Arcus can now pull Stripe payouts on a schedule in addition to webhook processing. This helps prevent missed payout entries and makes payout accounting more reliable if webhook delivery is interrupted.
  • Reorder planning controls by location. You can now disable reorder planning for non-buying or non-stocking locations. This removes false demand signals and keeps reorder recommendations focused on the locations that should actually generate purchase demand.

Improvements

  • Smarter reconciliation matching and large-session handling. Reconciliation matching now uses a more reliable tiered matching strategy with better confidence scoring, duplicate detection, and ambiguity handling. Large reconciliation sessions also load more safely with payload caps, truncation indicators, and windowed fetching to reduce timeouts.
  • Better Plaid account mapping for multi-account connections. When linking Plaid, Arcus now matches accounts more accurately and keeps transaction sync scoped to the correct bank account. This reduces cross-account confusion for businesses that connect several accounts under one Plaid item.
  • Deposit lifecycle and drawer accuracy updates. Deposit clearing is now handled at the deposit level, register close posting is more resilient, and drawer cash expectations use a single consistent calculation. Bounced checks also update payment status more accurately when other tenders remain on the order.
  • More reliable reorder recommendations. Reorder planning now uses a single demand calculation across reports and panels, adds velocity-aware overbuy caps, respects vendor minimums more appropriately, and supports a full workbench view for all products. New settings let you control slow-mover behavior, per-line order caps, and whether migrated sales history should be included in demand planning.
  • Historical migration fidelity for accounting and CRM. Historical imports now preserve more source detail, including customer notes, unapplied vendor payments, per-document references, true vendor bill balances, historical accounting periods, line descriptions, and more accurate GL drill-through links. This improves migration accuracy for companies moving historical data into Arcus.

Bug fixes

  • Direct-to-bank reconciliation now posts to the correct bank. Fixed an issue where some reconciliation-created payments could still land in clearing instead of the selected bank account. Payments created from bank feed matching now consistently debit the bank account from the statement line.
  • Unapplied remainder follows the selected deposit bank. When a payment was only partially applied, the remaining unapplied amount now stays in the same destination bank account instead of being stranded in a clearing account.
  • Friendly validation for deposit bank selection. Fixed cases where invalid deposit bank selections could surface as generic server errors. Users now get clearer validation messages when a payment method or bank choice is not allowed.
  • Deposit clear and revert actions no longer fail. Fixed an issue that could cause errors when marking bank deposits cleared or undoing that action. Deposit clearing workflows should now complete successfully.
  • Free-text order and PO lines keep their descriptions. Manual freight, service, and other non-catalog lines now retain their titles and descriptions instead of showing as blank or untitled. This improves readability on migrated and native documents.
  • Shopify imports no longer fail on overly long customer names. Arcus now safely truncates unusually long imported name fields so paid Shopify orders are not dropped during import.

API

  • New bank transaction and reconciliation endpoints. The API now supports excluding, restoring, and bulk excluding bank transactions, creating reconciliation baselines, and editing or canceling reconciliation sessions. These endpoints are documented in the public OpenAPI spec and client collections.

Breaking changes

  • Manual ACH deposit items are no longer accepted. ACH deposit items are now rejected to prevent double-counting, because ACH receipts are expected to settle through payout flows instead of manual deposit entry. Review any custom workflows or integrations that were creating ACH deposit items directly.
NewImprovedFixedAPI
v3.221.1
This release strengthens cash handling and deposit accuracy, adds smarter purchasing tools, and improves refunds, AI results, and everyday usability.

Reconcile an open register without closing it

You can now count a drawer, book any over or short amount, and keep the session open for businesses that deposit cash throughout the day. This keeps register balances and accounting aligned even when drawers are not formally closed between deposits.

New features

  • Purchasing coverage what-if panel. The reorder workflow now includes a live coverage panel in both the PO wizard and reorder report. Buyers can see demand windows, seasonal context, on-PO impact, suggested quantities, and projected stock coverage before placing an order.
  • Flexible RMA refund destination choices. Returns can now be refunded to the original payment method, issued as store credit, or paid by check. This gives accounting teams the same refund flexibility on RMAs that they already have in order refunds.
  • Expanded register session details. Register sessions now show a clearer summary, a chronological drawer journal with running balance, checks received, and deposits made from that drawer. This makes it much easier to audit cash activity during a shift.
  • Arcus AI full-screen result tables. AI result tables are now easier to read, with frozen first-column support, better handling for long text, and a full-screen in-app table view with sorting, column controls, density options, and resizable columns.

Improvements

  • Smarter reorder recommendations. Reorder suggestions now account for incoming purchase orders, classify items by coverage status, and focus the default view on products that truly need ordering. The report also hides inactive catalog noise by default, adds relevance sorting, and keeps estimated totals aligned with what is actually visible on screen.
  • More reliable vendor lead-time intelligence. Lead-time and vendor performance calculations now ignore historical import noise and treat zero-day manual lead times as missing rather than real baselines. This produces more trustworthy reorder planning until enough native receipts exist to build real vendor trends.
  • Registers now focus on cash and checks only. Card activity has been removed from register session views and totals so drawers reflect only physical tenders that actually sit in the register. Register screens and reports are now simpler and more operationally accurate.
  • Deposit totals now include ACH and external payments. Bank deposits now correctly track ACH and external or wire amounts in deposit totals, headers, and deposit slips. This gives a complete deposit value instead of understating totals when non-cash items are included.
  • Safer cash movement tracking in registers. Register cash movements now use stricter movement types and can record a reason for cash-out activity. This helps prevent incorrect entries from distorting expected drawer balances.
  • AI result formatting and chart selection are more accurate. Arcus AI now formats dates, text, and numeric results more reliably based on actual data types, avoids misleading charts for rank or index fields, and prefers money-only chart series when appropriate. Clarifying questions are also presented more cleanly for faster follow-up.
  • RMA refund screen is easier to use. The RMA refund modal now uses a wider, cleaner layout that makes destination choices, refund breakdowns, and accounting impact easier to review, especially on larger screens.

Bug fixes

  • Register cash balances and deposits now stay in sync. Several fixes improve drawer accuracy across cash sales, change given, check sales, deposits from open sessions, and close-time posting. Together, these changes prevent understated drawer balances, stranded amounts, and deposit limits that did not match actual cash on hand.
  • Cash over and short amounts now post correctly. When a counted drawer differs from the expected amount, Arcus now records the variance to Cash Over/Short and updates the register balance accordingly. This ensures shortages and overages are reflected in accounting instead of being only informational.
  • Sales tax subledger now ties to the general ledger. Sales tax balances are now computed from posted journal activity so the tax subledger matches the GL to the cent. This corrects cases where tax liability could appear negative or out of sync after imported history.
  • External payment deposit candidates no longer include negative rows. Negative external or wire transactions, such as refund-related rows, are now excluded from deposit candidate lists. This prevents invalid items from appearing in the deposit workflow.
  • Nested overlays now close correctly with Escape. Pressing Escape now dismisses only the topmost modal or drawer instead of closing multiple layers at once. This makes complex workflows with nested overlays much safer to use.
  • Package template box pickers now show the full list. The box selector in package templates now loads the full available set instead of stopping early on larger lists. This prevents valid box products from being hidden.
  • Historical order and account creation is more robust. Order creation now safely falls back to a default allocation strategy when no account is attached, and very long contact names are trimmed to fit supported limits. This prevents avoidable failures when importing or creating edge-case records.
  • Serial number labels were corrected for affected fulfilled items. A serial capture issue that stored QR test suffixes instead of the real serial values was corrected for impacted records. This restores accurate serial visibility in inventory and fulfillment history.
  • RMA refunds no longer auto-allocate against non-returnable tenders. Refund allocation now excludes non-returnable tender types such as store credit, credit memos, terms, and discounts. Users are guided to valid refund methods when no returnable payment source exists.

API

  • New register reconciliation endpoint. A new endpoint lets integrators reconcile an open register session by submitting the counted cash amount, booking any variance, and keeping the session open. This supports deposit-driven register operations without requiring a close.
  • Reorder coverage endpoint for what-if planning. A new purchasing endpoint returns coverage details, demand windows, seasonal signals, live position, and suggested ordering data for selected products. It powers the new coverage panel and can also be used by custom purchasing workflows.
  • Deposit item types now include ACH and external values. Deposit payloads and related UI now consistently recognize ACH and external or wire item types. API clients can rely on these values being handled as first-class deposit components.
Fixed
v3.221.1
This release makes vendor selection easier across purchasing and payables, while keeping quantity-based coupon discounts accurate as orders change.

Vendor search now works across all vendor pickers

Vendor selectors in purchasing, AP bills, vendor returns, and Pay Bills now use server-side search instead of small preloaded lists. This means you can reliably find vendors even when you have a large vendor directory.

Bug fixes

  • Per-unit coupons now recalculate when order quantities change. Quantity-based discounts now update correctly every time an order is edited. This fixes cases where a per-unit coupon could keep an old discount amount after line quantities increased, decreased, or otherwise changed.
NewImprovedFixedAPIBreaking
v3.221.1
This release sharpens purchasing decisions, cleans up order and return totals, and makes payments and deposits more reliable.

Smarter reorder planning across the purchasing workflow

Purchasing teams now get more accurate reorder recommendations based on real shipped demand, observed supplier lead times, EOQ logic, seasonal context, and price-break analysis. The reorder workbench, product supply and demand views, and PO wizard now present clearer metrics and explanations so buyers can act with more confidence.

New features

  • Return fee rules can now be managed through the coupon engine. You can now create adjustment rules that apply to returns, sales orders, or both, giving teams one consistent way to manage restocking and handling fees. Return settings were also simplified so fee management is easier to understand and maintain.
  • Check receipts and register deposits are now connected end to end. Check payments recorded from invoice applications now flow into the register and deposit workflow correctly, and order payment history shows applied amounts with check numbers. Cash deposits also now show drawer balance, float, and cash sales, with a quick-fill option to deposit cash sales while keeping the float.

Improvements

  • Below Reorder Point workbench is easier to scan. The purchasing workbench now uses a calmer layout with cleaner risk indicators, better alignment for quantities and costs, clearer stockout wording, and less visual noise. Estimated cost also falls back more intelligently when vendor pricing is missing or zero.
  • Order and return totals are clearer for users and customers. Order detail screens now separate line subtotals from allocated order-level coupons and tax so totals no longer conflict across grids and popovers. Return views, PDFs, and customer-facing portal pages now show clearer goods, tax, restocking, fee, and net refund breakdowns.
  • Late shipment detection is more trustworthy. Packages are no longer flagged late unless there is tracking evidence and a carrier on file. This reduces false positives for shipments that were never properly registered with tracking.

Bug fixes

  • Discounted orders now recalculate sales tax correctly. Arcus now re-allocates coupons and re-nets tax after discount changes across order creation, conversion, duplication, and coupon edits. This fixes cases where discounted orders could show incorrect taxable amounts or over-collected tax.
  • Refund calculations are more accurate across complex return scenarios. Several return calculation issues were fixed, including missing tax in cash refunds, dropped restocking fees, misleading even-swap previews, and discount allocation on partial kit shipments. These updates help refund amounts, on-screen totals, and accounting stay in sync.
  • Fulfillment line statuses now update correctly. Line items now reflect their actual fulfillment state instead of staying stuck as pending after shipment activity. This improves accuracy in order detail screens and warehouse workflows.
  • Supply and demand figures are more reliable. Products now show more accurate on-order, safety stock, and reorder values even in edge cases such as missing balance rows or zero-cost products. Receiving inventory also avoids a recompute bottleneck that could previously cause intermittent failures.
  • Accounting safeguards were tightened for payments, AP, and journals. Fixes in this release improve AR balance refresh after refunds, prevent AP and credit memo over-disbursement edge cases, stop duplicate discount journal posting, and keep coupon usage counts in sync. These changes reduce reconciliation surprises without changing normal workflows.
  • Customer RMA portal now shows full refund composition. Customers can now see goods, tax, restocking, and net refund amounts on shared RMA pages when that detail is available. This makes refund math easier to verify without contacting support.

API

  • Coupons can be scoped by document type. Coupon and adjustment rules now support explicit document-type targeting, so order rules do not accidentally apply during return evaluation and return fee rules do not apply to sales orders. API clients can manage this behavior with the new document-type scope field, and invalid values are rejected.
  • Return APIs expose clearer refund breakdown data. Return responses now include the data needed to show goods and tax refund breakdowns separately where supported. This helps customer portals and custom integrations present net refund calculations more clearly.

Breaking changes

  • Check payments applied to invoices now require a check number. If your integration records check payments through invoice application flows, it must now provide a check number. This ensures check payments can be tracked consistently through order history, register activity, and deposits.
NewImprovedFixedAPIBreaking
v3.221.0
This release delivers a major returns overhaul, better shipment visibility, stronger coupon tools, and safer money-handling across payments and refunds.

Unified return creation with live refund preview

Creating returns is now faster and more consistent across Arcus. Staff can start a return from the returns list or an order, choose lines and reasons, add adjustments, and see the expected net refund before submitting.

New features

  • Smarter return policies and fee controls. Arcus now snapshots the return policy on each order so later policy edits do not change eligibility for past purchases. You can also manage final-sale flags plus product, category, and default restocking and handling fees with more predictable fee recalculation as return quantities change.
  • Automated refund follow-up for eligible RMAs. You can now choose whether approved returns settle manually, on receipt, or after carrier delivery. Accounting also gets a new RMAs ready for refund worklist so outstanding customer refunds are easier to find and clear.
  • Return inspection upgrades. Return inspections now support a refurbish disposition, condition-based suggested next steps, and file and video evidence on the return record. This helps teams document returns more clearly and route inventory correctly.
  • Rate shopping for customer and vendor return labels. Customer returns and vendor RTV labels now support live carrier rate shopping instead of a single blind choice. Staff can also fix an invalid ship-from address inline and retry label rating without leaving the workflow.
  • Returns by reason analytics. A new returns by reason report adds SKU-level visibility into why products come back. Teams can filter and analyze return trends more easily from the reporting area.
  • Shipment tracking maps across more surfaces. Shipment tracking now includes the dark map experience in the shipment drawer, public tracking page, and customer portal. The map can show origin, destination, and latest package progress using carrier event location data.
  • Coupon campaigns, per-unit discounts, and multi-reward promotions. Promotions can now be grouped into campaigns, discounts can apply per unit, and a single promotion can include multiple rewards such as a percentage discount plus a free item. The coupon builder also adds clearer guidance and a more accurate live preview.
  • Arcus AI self-service and document matching improvements. Users can now update their own profile photo through Arcus AI. Arcus AI can also suggest purchase order matches while creating vendor bills, helping AP teams link bills to the right PO faster.
  • Per-account control for transactional emails. Transactional customer emails can now be turned off for a specific account when that template allows it. This gives teams more flexibility without changing the global unsubscribe behavior.
  • Arcus Go mobile dashboard foundation. The Arcus Go mobile companion app now includes a redesigned dashboard experience with cleaner visuals, period comparison, and mobile-friendly charts. This lays the groundwork for faster on-the-go visibility into revenue and order trends.

Improvements

  • Clearer refund breakdowns for returns and order refunds. Refund screens now show a more complete breakdown of goods, tax, restocking, handling, and card-fee treatment. This gives accounting and service teams a clearer view of what will be refunded versus retained before they finalize a refund.
  • Processing fee compliance and payment entry usability. Credit card surcharge settings now enforce a 3 percent hard cap and include stronger compliance guidance. The collect payment screen also updates fee previews live, shows the true card charge total, and handles split cash payments more clearly.
  • Better statement and order documents. AR statement emails can now include the statement PDF attachment, and order PDFs now present totals more accurately. Shipment exception and delay emails were also rewritten in a calmer, more customer-friendly tone.
  • Broader but safer Arcus AI data access. Arcus AI can now read from a much wider set of business data that the signed-in user is allowed to access, while sensitive secrets remain blocked. Responses can also better understand who the current user is when interpreting requests like “my” or “my accounts”.

Bug fixes

  • Return creation no longer leaves behind orphan records. Submitting an ineligible return, such as for a final-sale item, now fails cleanly without creating incomplete return headers. Final-sale lines are also disabled consistently across staff and portal return flows.
  • Return refund math and accounting corrections. Several return calculations were corrected so previews and posted refunds stay accurate to the cent. Fixes include proper goods-versus-tax proration, handling and restocking fee treatment, card-fee refund accounting, and better refund routing for external payment sources.
  • Refund allocation starts with usable defaults. Split refunds for multi-tender orders now open with a suggested allocation already filled in. This removes the confusing zero-dollar starting state and helps staff issue refunds with fewer manual steps.
  • Undo fulfillment and packable item handling are more reliable. Undoing fulfillment now fully supports revise and re-fulfill workflows without leaving blocked order lines or stranded inventory and accounting effects. Fulfillment logic also excludes non-packable virtual kit parents and service lines more consistently.
  • Shipment status accuracy improved. Packages now move to delivered or returned in the lifecycle status when carrier events confirm that outcome, and older mismatches can be corrected safely. Delivered packages also display the right status across shipment views instead of appearing stuck in transit.
  • Shipment alerts no longer send false late or exception emails. Customer shipment alerts are now stricter about requiring real carrier evidence before sending late or exception notices. This reduces false alarms for delivered packages or shipments that never fully registered for tracking.
  • Historical return reporting filter fixed. The returns by reason report now handles historical data filtering correctly instead of failing on some queries. This restores reliable reporting when excluding imported history.
  • Audit compliance exports are more reliable. Large compliance report CSV exports are now capped and marked as truncated instead of failing with a server error. Users are guided to narrow the date range when they need a complete export.
  • Coupon usage, rollups, and reward cleanup fixes. Several coupon issues were corrected, including over-decrementing usage counts on multi-reward promotions, campaign rollup inaccuracies, reward cleanup edge cases, and editing errors in campaign routes. These fixes make promotion reporting and lifecycle handling more dependable.
  • Return attachment uploads and suggested dispositions fixed. Attachment upload links for return evidence now work correctly through the v1 file flow, and suggested return dispositions no longer disappear because of a server-side error. Return teams should see more reliable inspection guidance and upload behavior.
  • Shopify payment and allocation recovery fixes. Shopify unpaid-order resync now stops retrying resolved orders and avoids hiding failed captures. Marketplace import also no longer creates phantom reserved inventory for virtual kit-variant parent lines.
  • Shipment and delivery backfills for older records. Older packages and shipments with stale status data can now be healed more safely, including a one-time delivered status correction for pre-cutover shipments. This improves operational reporting without triggering unwanted emails or accounting side effects.

API

  • New dashboard timeseries endpoint. A new read-only GET /dashboard/timeseries endpoint returns revenue and order series for a date range, with automatic day, week, or month bucketing. It also supports previous-period and previous-year comparisons for dashboard and mobile reporting.
  • New returns and refund support endpoints. The API now adds read-only endpoints for previewing return net refunds and refund breakdowns, plus list and rating endpoints that support RMAs ready for refund, customer return-label rates, and vendor RTV label rates. These additions make it easier to build accurate return and accounting experiences on top of Arcus.
  • New returns reporting endpoint. GET /reports/returns-by-reason is now available for return reason analytics with SKU-level reporting support. This endpoint powers the new returns reporting experience.

Breaking changes

  • Coupon delete now performs a real delete with in-use protection. Deleting a coupon now permanently removes unused coupons instead of simply deactivating them. If a coupon has already been used, the delete request is blocked with a 409 response and you should deactivate it instead.
NewImprovedFixedAPIBreaking
v3.221.0
This release adds first-class fulfillment reversal, stronger Shopify and coupon automation, and important safety fixes across orders, refunds, inventory, and API access.

Undo Fulfillment is now first-class

You can now reverse a fulfillment directly in Arcus when an order needs to be corrected after shipment work has started. The system also rolls back related inventory, accounting, serial handling, labels, and order state together so corrections stay consistent.

New features

  • Paid orders can now be revised from the order screen. Teams can now intentionally revise a paid but not yet shipped order from the web app using a guided Revise Order flow with a required reason. This makes legitimate post-payment changes possible without resorting to workarounds.
  • In-app What’s New and forced reload experience. Users now see a full-page update prompt when a new frontend build is available, with release highlights pulled from the changelog. The flow waits briefly before hard-blocking so it does not interrupt a half-finished form without warning.
  • Shopify listing mapping tools expanded. Shopify mapping screens now support richer product search, variant-aware matching, re-pointing active listings, and mapping multiple listings to one Arcus product. This makes it easier to manage alias listings and keep imported orders tied to the correct products.
  • Shopify variant price sync for alias listings. Arcus can now push base list prices to existing Shopify variants across alias listings without creating duplicate Shopify products. Price sync respects both connector-level and per-listing controls so merchants can opt in safely.
  • Scanner device heartbeat support. Scanner devices can now report their presence continuously while in use, helping shared workstations show whether a device is truly online. This improves confidence when assigning and using scanners in fulfillment.
  • Arcus AI assistant feels faster and more natural. The AI assistant now streams responses more smoothly, shows clearer live thinking progress, and handles read-only questions more gracefully even when you are in action-focused modes. Customers should notice a more responsive and less jarring assistant experience.

Improvements

  • Coupon auto-apply now updates on order header changes. Automatic coupons are now re-evaluated when you change order-level fields such as account, sales channel, pricing tier, origin, or delivery method. Discounts appear or are removed immediately instead of waiting for a line item edit.
  • Coupon builder prevents invalid free-item setups. The coupon builder now blocks configurations that looked valid in the UI but could never actually add a free reward item. It also preserves readable product and category names when reopening larger scoped coupons and refreshes pricing tier choices correctly after entity changes.
  • Zero-value orders can auto-resolve as paid. Orders that total to zero, including fully discounted orders, now move into a paid state automatically when appropriate. This prevents free replacement or promotional orders from getting stuck behind payment gates.
  • Pack suggestions and station updates are more accurate. Packing suggestions now respect real preset quantities and product unit conversions, improving carton recommendations for ounce-based and other non-default measurements. Pack-created updates also appear live in fulfillment views without needing a manual refresh.
  • Printing is now asynchronous and more reliable. Print requests are now queued and processed in the background instead of holding up the order workflow. This reduces long waits, avoids false printer offline messages, and gives better status updates as jobs move from queued to printed.
  • Scanner and websocket recovery is more responsive. Fulfillment screens now recover faster from stale browser connections and sleeping devices. First scans after idle should appear sooner, and scanner presence updates are pushed more reliably after login or reclaim events.
  • Shopify order and listing maintenance tooling improved. This release adds safer workflows for rebinding alias listings, backfilling missing listing mirrors, repairing affected live Shopify kit orders, tightening unknown SKU defaults, and validating shipping method mapping defaults. Together these changes reduce import mismatches and make Shopify listing administration safer.

Bug fixes

  • Shipped and packed order lines are now properly locked everywhere. Orders with fulfilled lines or partially packed physical goods can no longer be revised through override paths that were only meant for unpaid-state exceptions. This closes a case where already-shipped lines could still be edited and financial balances reopened incorrectly.
  • Refund cap protection is stronger under concurrency. Concurrent refunds against the same payment are now serialized more safely so Arcus does not over-disburse card or ACH refunds during race conditions. This reduces the risk of duplicate outward refunds when multiple attempts happen at once.
  • External-tender returns now refund to clearing accounts correctly. Returns tied to external tenders now route through the correct book-only refund path instead of failing as if a Stripe refund were required. This fixes blocked refunds for migrated orders and Shopify external payment scenarios.
  • Inventory reversal and re-fulfillment accounting were corrected. Several edge cases in undo fulfillment and re-fulfillment now restore and re-consume inventory correctly, including split packages, repeated undo and re-fulfill cycles, and multi-layer FIFO consumption. This prevents lost units, overstated stock, and related valuation drift.
  • Undo eligibility now respects the real first ship date. The undo window for fulfillment is now anchored to the first physical shipment rather than only the final fully fulfilled timestamp. Partially fulfilled orders can no longer bypass the configured time limit indefinitely.
  • Shopify unfulfill retries now reach Shopify correctly. Arcus now preserves the fulfillment identifiers needed to retry a failed Shopify unfulfill operation. Previously, some retries could be marked as successful without actually canceling fulfillment in Shopify.
  • Amazon and eBay undo attempts now fail loudly instead of silently diverging. If an undo flow reaches a marketplace that does not support the same fulfillment reversal behavior, Arcus now records that clearly instead of quietly leaving marketplace status out of sync. This makes intervention needs visible to operators.
  • Shopify external payment deduplication was hardened. Repeated Shopify payment updates no longer risk inserting duplicate external payment records for the same reference. This helps keep paid and refunded statuses accurate after refund-related webhook activity.
  • Coupons now clamp fixed discounts to the current subtotal. Fixed-amount discounts are now capped against the latest eligible subtotal in all cases. This prevents discounts from exceeding the order value and avoids negative order totals when lines are reduced or removed.
  • Multi-scan serial capture works correctly. Serial capture no longer breaks after the first successful scan in affected barcode modes. Users can continue scanning additional serials without needing to remove earlier captures.
  • Order package cleanup handles serial-linked items more safely. Deleting or unpacking an unfulfilled package now correctly releases linked serials first. This avoids failures when package items still had captured serial references.
  • Tenant data isolation was tightened. Several shared list endpoints now enforce entity scoping consistently, preventing unscoped access to records such as pricing levels, categories, payment terms, sales channels, and general ledger accounts. Customers benefit from stronger tenant isolation and cleaner picker results.
  • Dev deployment reliability improved under parallel releases. Concurrent deployments are less likely to interfere with each other during packaging and upload steps. This reduces failed release attempts during busy deployment windows.

API

  • Undo fulfillment is available through the public API. The new fulfillment reversal capability is exposed through the same canonical backend flow used by the app, so API clients can reverse eligible fulfillments with the same business rules and protections.
  • Order header updates now trigger coupon re-evaluation in API flows. PATCH-style order updates through the API now recalculate automatic coupon eligibility when relevant header fields change. Integrations no longer need a follow-up line edit to get the correct discounts.
  • Order line edit protections now apply consistently to API overrides. API attempts to add, update, or delete lines on shipped or partially packed orders now honor the same physical-goods lock rules as the application. This closes an override gap that previously allowed unsafe edits in some edge cases.

Breaking changes

  • Several list endpoints now require explicit entity context. API callers must now provide valid entity scoping when requesting shared reference lists such as pricing levels, categories, payment terms, sales channels, and chart of accounts data. Requests that previously returned unscoped results will now be rejected.
NewImprovedFixedAPI
v3.221.0
This release makes fulfillment safer and more reliable with label-required shipping controls, better live updates, and more dependable printing and scanner behavior.

Prevent shipping fulfillment without a label

You can now require a shipping label before a parcel shipment can be marked fulfilled, helping prevent orders from being sent without tracking or postage. Pickup orders and freight shipments are excluded, and authorized overrides are still available when needed.

New features

  • Optional label-required fulfillment rule. A new Shipping setting lets your team require a label before fulfilling parcel shipments. The fulfillment screen now clearly blocks ineligible packages and explains why, so operators can fix the issue before shipping.

Improvements

  • Printing settings are clearer for each user. Printing settings now clearly show that printer assignments and auto-print options are personal to each user, not shared across the team. A warning also appears when both auto-print options are enabled so you can avoid duplicate label printing.
  • Fulfillment history is easier to work through. Fulfilled packages now sort with the most recently fulfilled first, making recent work easier to find. Additional filters for carrier, account, date range, and search help teams locate shipments faster.
  • Single-printer fulfillment printing is more flexible. If no separate document printer is set, fulfillment can now use the label printer for both the shipping label and packing slip. This reduces setup friction for stations that use one printer for everything.

Bug fixes

  • Manual serial entry now saves exactly what you type. Manually entered serial numbers are now accepted as typed instead of being forced through barcode scan parsing rules. This fixes cases where valid serials were rejected during manual capture.
  • Shared fulfillment stations now update scanner capture live. Serial capture screens now refresh in real time even when the scanner is tied to a different user than the person logged into the workstation. This makes shared stations more reliable during warehouse operations.
  • Fulfillment screens refresh correctly after changes. Order fulfillment views now update live after label purchases, voids, printing activity, ETA changes, freight dispatches, and related package changes. Teams no longer need to reload pages to see the latest status.
  • Printer status indicator now reflects real live availability. The printer status indicator in the header now responds to real-time printer availability instead of relying on a stale cached list. This helps teams see offline printers quickly and avoid failed print attempts.
  • Auto-print fulfillment preference no longer resets unexpectedly. The auto-print-on-fulfill preference is now saved more reliably and will not be unintentionally cleared during loading or save timing issues. This helps preserve each user’s printing setup.

API

  • Package listing supports more fulfillment filters. Package list endpoints now support additional filtering for carrier, account, and fulfillment date ranges, with the same support carried into the v1 endpoint for parity. This makes it easier to build shipment dashboards and reporting tools.
  • Scanner heartbeat endpoint is available. A scanner heartbeat endpoint is now registered for clients that want to report device presence or keepalive status. This prepares scanner integrations for more reliable online status handling.
NewImprovedFixed
App-wide search, smarter shipping, recurring accounting templates, and a sweep of permission, AR, and fulfillment fixes.

New features

  • App-wide master search. A new global search palette spans 11 record types (accounts, products, orders, invoices, POs, returns, packages, GL accounts, activity, communications, settings) with permission-filtered scopes, a redesigned panel, and match-context that shows why a result matched and disambiguates same-named accounts.
  • Shipping rules suggestion engine + Pack-with-Arcus auto-buy. A rules engine recommends carrier and service at pack time, and Pack-with-Arcus can buy the label automatically when a rule matches confidently, with a full audit trail. See Shipping rules and Packing.
  • Auto-insurance from product toggle. Products with apply_freight_insurance now drive insurance automatically at rate-shop and label-buy, with no per-order toggling. See Shipments and rate preview.
  • Recurring journal entry templates. Build recurring JEs from a wizard with six industry-standard starter templates (rent, depreciation, prepaid expense, accruals, allocations, payroll). See Recurring journal entries.
  • Bulk-recognize pending leases. Recognize multiple ASC 842 pending-recognition leases in one pass, with a guard against future-dated commencement. See Leases.
  • Bulk-reactivate recurring bill templates. Reactivate paused recurring vendor bills in bulk, with an amber KPI banner that surfaces inactive templates. See Recurring bills.
  • Scheduled email send. Schedule outbound customer emails for a later send time, with a dedicated Scheduled tab in the email log. See Email log.
  • Order share-token expiry detection. Customer-share order links now detect expiry and surface a Regenerate CTA inline.
  • Manual order hold. Place a draft or open order on manual hold via a dedicated endpoint and order action. See Order exceptions.
  • Serial capture, full flow. RMA serial validation, 40+ UX improvements on capture, partial-capture, order-state gates, scanner connection status across surfaces, and a serial appendix on PDFs and CS-visible order detail. See Serial capture.
  • Edit Package modal hardening. Item-add now enforces item-on-order and quantity-cap invariants, with clearer disabled-state tooltips. See Label reprint, void, and repack.
  • Pickup no-show queue. A dedicated page mirroring the late-shipments queue for orders the customer never picked up. See Pickup no-show.
  • Operator-driven data export. A new admin surface lets operators self-serve CSV exports of core records. (Now consolidated into Exports & Downloads.)
  • PrintNode job status. A poll-based job-status endpoint and a Check button on the printer dropdown confirm whether the last print actually landed. See PrintNode.
  • Printer selection in the user dropdown. Pick your default printer from the header user menu without leaving the page you’re on.
  • Damaged-unit photo evidence on PO receive. Attach photos when receiving damaged units against a PO. See Receive.
  • Marketplace fee + processing fee tracking. Channel fees and processing fees are now tracked per order and booked to GL. See Marketplace connectors.
  • Quarantine columns on inventory subledger detail. Quarantined quantities are surfaced inline on subledger detail rows. See Transactions.
  • System-generated entity codes. New entities are assigned a collision-safe ENT-NNNNN code automatically. See Entity settings.
  • API: copy product photo by URL. POST /v1/products/:id/images ingests a product photo from a URL into Arcus storage. See the Products API reference.
  • API: polymorphic slug lookup. GET endpoints for accounts, products, and purchase orders now accept either an ID or a slug.
  • Shopify public-app OAuth. The public-app OAuth flow is live for the Shopify App Store listing. See Marketplace connectors.
  • RingCentral voicemail + SMS webhook. RingCentral message-store events now flow into the communications log. See RingCentral.

Improvements

  • Faster search. GL, activity-log, and communications search are now index-backed; a trigram over-match fix and a TOASTed-blob fix drop a worst-case query from ~18.7s to ~148ms.
  • Faster GL subledger reconciliation. The subledger-reconciliation detail view is re-indexed and restructured; a former 29s timeout now clears cleanly. See GL reconciliation integrity.
  • Compact carrier icons everywhere. Operational surfaces now use compact circular monogram icons for every carrier.
  • Arcus Mighty leftover messages. Mighty now shows a per-reason explanation and a dimmed comparison when a box can’t be used, instead of a generic decline. See Packing.
  • Shopify Configure modal. Platform filter, scoped accounting tab (Shopify-only), and a sweep of UI fixes across six tabs.
  • Connector accounting tabs re-homed. Stripe, eBay, and Amazon accounting configuration now lives on the connector itself, with grid UX fixes throughout.
  • Realtime refresh across settings. Sixteen settings sections now refresh automatically when another user changes them, instead of requiring a reload.
  • PDF refresh. Customer-facing PDFs use dynamic line-item rows, cleaner typography, and better long-content wrapping; payment-instructions auto-detect banking patterns and mask sensitive values.

Bug fixes

  • AR figures, one source of truth. Dashboard, AR management, invoices, /ar/summary, and /credit-summary now converge on a single canonical reader, so totals match across screens. See AR management.
  • Voided invoices no longer inflate revenue. The dashboard revenue tile and analytics revenue queries exclude voided invoices via the canonical two-mode predicate. See Dashboard calendar.
  • Order-level discount now reduces taxable base. A P1 overcharge where order-level discounts weren’t reducing tax is fixed; a one-time backfill corrects previously overcharged orders. See Sales tax liability.
  • Restock disposition restores inventory and reverses GL. Restocking a return now restores inventory, reverses the original COGS/Inventory entry, and records the refund payable. See Customer returns.
  • Fulfillment GL posting. Fulfillment journal entries now post DR COGS / CR Inventory correctly, fixing a balance-sheet integrity gap.
  • Refund math + refund JE write-back. Refund duplicate-GL fix, refund JE id write-back, and multi-package tax idempotency.
  • Refund / void Separation of Duties. SoD is now configurable and aware of single-user setups.
  • Kit handling. Kit-component allocated regression fixed; kit receive on returns no longer trips the negative-balance guard; kit-parent on-hand and opening-balance subledger integrity tightened.
  • PO receive 500. A missing KIT_COST_REVALUATION journal-source enum value caused PO receive to 500 in some accounts; fixed.
  • Vendor bill JE dates. Vendor-bill JE entry dates are clamped to the posting date and never future.
  • Vendor credit applications. VENDOR_CREDIT_APPLICATION is now a recognized journal-source type, ending a class of AP posting errors.
  • Customer Credits GL account. GL account 2300 is renamed from “Customer Escrow” to “Customer Credits” to remove name collisions.
  • JE entry date timezone shift. Entry-date timezone shift fixed; JE list now shows the creator.
  • Profile self-edit. Self-edits to your own profile work again under restricted roles.
  • Permission gating sweep. Nine previously ungated mutation domains are now permission-gated; dashboard financial widgets and settings nav links are hidden for roles that can’t use them; warehouse and accountant role defaults narrowed (warehouse accounts.view, accountant users.view, viewer/auditor financial-read scope tightened). See Roles and permissions.
  • Coupons / pricing policies / templates GET endpoints are now permission-gated, and warehouse navigation hides them.
  • Customer-share invoice URL. Two-mode invoice predicate fix ends a P0 where some customer-share document URLs returned the wrong document.
  • Open POs count. The nav badge and the Open POs list now query the same canonical source, ending count mismatches. See Create and manage POs.
  • Returns list account name. The returns list now resolves the customer account name properly. See Customer returns.
  • Unmatched receipts. Real payment-application objects are now inlined on unmatched-receipt rows in the AR bank-feed workspace. See Bank feed match workspace.
  • Shipments page. Credentialed fetches now work end-to-end (CORS), and shipped packages without a tracking number are now displayed instead of hidden.
  • Fulfillment messaging. The fulfillment decoration pipeline now returns a real result or error instead of an opaque modal.
  • Order detail. Variant-order confirm, kit explosion guard, entity-scoped items query, and a clearer SQLSTATE mapping fix three order-detail edge cases.
  • Bin assignment. Bin assignment is now conditional on the bin-tracking setting, so non-bin warehouses no longer see spurious bin prompts. See Bin setup.
  • Cancel Order CTA. Draft and open orders now have a prominent Cancel Order action on the detail page. See Order lifecycle.
  • Walk-in pack path now goes through the standard fulfillment guards. See Walk-in pack.
  • Wave-pick and no-show selects. Native <select> controls on fulfillment-adjacent pages are canonicalized to the styled control.
  • Printer dropdown after entity switch. The printer list no longer shows stale entries after switching entities.
  • Refund-due CTA URL. The refund-due action now routes to the correct payments section. See Customer returns.
NewImprovedFixed
Accounting depth, faster purchasing, smarter fulfillment, and safer entity management.

New features

  • AR bank reconciliation, multi-invoice mode. The match workspace now groups customer payments against multiple open invoices with an auto-suggest matcher and a dedicated unmatched-receipts queue, with live updates as activity comes in. See Bank feed match workspace.
  • Payment wizard, multi-invoice mode. Apply a single customer payment across several invoices in one atomic step, with new entry points from the customer record and AR aging. See Record payment and AR management.
  • AR and AP aging dashboard tiles + DSO. The accounting dashboard adds AR and AP aging tiles and a DSO tile, with net-of-credit-balance exposure for AR. See Dashboard calendar.
  • Customer deposits, before a sales order exists. Take and track a customer deposit before a sales order is written, with a dedicated subledger that later applies cleanly to the resulting order or invoice. See Record payment.
  • Vendor prepayments, before a bill exists. Mirror of the above on the AP side: pay a vendor before a bill is recorded and reconcile when the bill arrives. See Pay bills.
  • Vendor bill write-off. Write off the open balance on an AP bill with a posted, audit-trailed adjustment. See AP bills.
  • Customer statements with opening + running balance. Statements now show an opening balance and a chronological running balance, matching how most customers reconcile. See AR management.
  • GL year-end close + retained earnings rollover. Closing the last period of a fiscal year now rolls income and expense into retained earnings automatically, and Arcus suggests the close when it detects the last-period flip. See Period close.
  • Fiscal year reopen. Reopen a closed fiscal year (for example, to post a late audit adjustment) with a controlled, logged action. See Period close.
  • Finance charges and late fees. Automatic finance-charge assessment with flat-fee and percentage modes, optional caps, and surface on customer statements. See AR management.
  • Multi-vendor reorder wizard. The reorder wizard now spans multiple vendors in one pass, honors MOQ overrides, and exposes on-hand inventory inline. See Reorder report.
  • “Pay bills due in N days” filter. A new quick filter and date param on the Pay Bills screen for prioritizing upcoming payments. See Pay bills.
  • Create Return and Issue Refund on the order action bar. Both actions are now top-level buttons on the order page so they are discoverable without drilling into a menu. See Customer returns.
  • Per-location box availability in Arcus Mighty. Mighty suggestions now respect the box inventory at the location actually shipping the order, so packers stop seeing boxes that aren’t on their shelf. See Packing.
  • Location lifecycle: delete, retire, reactivate. Locations now have a full lifecycle with system-location protection, so unused warehouses can be retired without breaking history. See Settings overview.
  • Entity and organization teardown with Danger Zone. Inline per-tile Delete on the entity admin screen plus a guarded Danger Zone for full entity or organization removal, with a deactivate-first flow for young entities. See Entity settings and Organization access.
  • Manage Access rework. The Manage Access screen has a cleaner two-row layout, an entity selector, and consolidated user-access management. See Users and Organization access.

Improvements

  • Marketplace outbound retry parity across Amazon and eBay connectors so retry behavior is consistent between channels. See Integrations.
  • Vendor account picker now disambiguates same-named vendor accounts inline, instead of showing duplicate rows.
  • Invoice settings consolidated into a single screen with clearer partial-payment UX. See Document numbering and AR management.
  • Purchase order wizard polish plus a Send-to-Vendor action and stricter PO document fields. See Create and manage POs.

Bug fixes

  • Return eligibility had three edge cases where ineligible returns could slip through; the decision tree now closes those holes.
  • Reorder wizard previously showed zero POs in some accounts; the wizard state is now hydrated correctly.
  • PO detail and document screens had three surface defects affecting display and editing; all three are fixed.
  • Refund amounts now compute from a single source of truth, so partial-refund math is consistent across order, invoice, and payment surfaces.
  • Return quantity over-cap now returns a clear, human-readable hint instead of a raw machine code.
  • Auto-fulfillment correctly surfaces the “serial number required” message and no longer double-fulfills when called twice in quick succession.
  • Drop-ship cascade is now atomic - partial failures roll back instead of leaving an order in a split state.
  • Auto-pack respects the missing-tag gate, so untagged orders stop slipping into the packing queue.
  • Walk-in pack path now goes through the same fulfillment guard checks as the rest of the system.
  • MFA email enrollment no longer invalidates the first code when a second is sent, and surfaces send failures instead of silently dropping them.
  • Entity logo and file uploads previously failed with a 403 on the presigned upload; uploads now succeed end-to-end.
  • Onboarding wizard no longer overwrites a random system location when confirming the default warehouse; the step is now clearly framed as confirming a pre-seeded warehouse. See Quick start.
  • Customer credit balance is now reflected in AR aging exposure (gross and net of credit).
  • Dashboard unpaid-invoices action routes to the Invoices screen with the Open tab pre-selected, not to Orders.
  • Packing presets CRUD now reads and writes the correct configuration store, so saved presets persist.
API
Accounting + GL cluster, scope rendering, expand registry expansion, dev-tab fixes.
  • Added accounting / GL endpoints to the spec: GL accounts CRUD, journal entries (with approve, reject, reverse), fiscal periods (close, reopen), bank accounts, recurring journal entries, customer credits, deposits, dimension masters (departments, classes, projects), financial reports (trial balance, P and L, balance sheet, cash flow, AR aging, AP aging).
  • Webhook concepts page rewritten with the canonical 118-event catalog across 14 families and the correct retry schedule (1m, 5m, 30m, 2h, 12h, 24h).
  • ?expand[]= registry expanded to 23 resource types: kit, variant, channel_listing, marketplace_order, vendor_credit, vendor_return, credit_memo, ap_payment, printed_check, label, tracking_event added.
  • Required-scope badges now render under each operation as a Mintlify Note callout.
  • Pagination max limit raised from 100 to 500 for bulk catalog scans.
  • 6 missing component definitions added (Limit, StartingAfter, EndingBefore, Fields, IdempotencyKey, Error).
  • Docs domain docs.arcuserp.com confirmed live via Mintlify CNAME.
New
Initial public release of the Arcus ERP API.

New resources

  • AccountsGET/POST/PATCH/DELETE /v1/accounts
  • OrdersGET/POST/PATCH/DELETE /v1/orders (quotes, sales orders, invoices, purchase orders, returns)
  • ProductsGET/POST/PATCH/DELETE /v1/products
  • InventoryGET/POST /v1/inventory (balances, transactions, adjustments)
  • FulfillmentGET/POST/PATCH /v1/fulfillment (packages, labels, shipments)
  • ReturnsGET/POST/PATCH /v1/returns
  • PurchasingGET/POST/PATCH /v1/purchase-orders
  • PaymentsGET/POST /v1/payments
  • AccountingGET/POST /v1/accounting (GL accounts, journal entries)
  • Master data — Locations, Payment Terms, Units of Measure, Sales Channels, Pricing Levels, Product Categories, Tags
  • IntegrationsGET/PATCH /v1/integrations (connector configuration, read-only credential status)
  • WebhooksGET/POST/PATCH/DELETE /v1/webhooks
  • ActivityGET /v1/activity (audit log)
  • MigrationGET/POST /v1/migrations (bulk import jobs)

New capabilities

  • Cursor pagination on all list endpoints
  • Expand (?expand[]=) — Stripe-style related-resource hydration, depth 4, 10 paths max
  • Idempotency (Idempotency-Key header) — 24-hour replay window
  • Versioning (Arcus-Version header) — date-based version pinning
  • Conditional requests (ETag/If-None-Match) — 304 Not Modified support
  • Sparse fieldsets (?fields=) — reduce response payload size
  • Rate limiting — per-key sliding window, standard 300 req/min
  • Webhook signatures (HMAC-SHA256, Arcus-Signature header)
  • Sunset headers on deprecated endpoints

Future releases will be listed here.