# Arcus ERP Docs ## Docs - [Add a contact to an account](https://docs.arcuserp.com/api-reference/accounts/add-a-contact-to-an-account.md): Idempotent when Idempotency-Key header is supplied. - [Add an address to an account](https://docs.arcuserp.com/api-reference/accounts/add-an-address-to-an-account.md): Adds a shipping or billing address. Calls validateAddress (Shippo USPS CASS + AvaTax jurisdiction merge) per Rule 19. If is_pickup=true, type is forced to 'shipping'. Idempotent when Idempotency-Key header is supplied. - [Create an account](https://docs.arcuserp.com/api-reference/accounts/create-an-account.md): Creates a new account. entity_id is extracted from the API key and may NOT be supplied in the request body (Layer 1 isolation). Auto-assigns account_number, default_pricing_level_id, payment_term_id, and default_location_id from entity settings. - [List accounts](https://docs.arcuserp.com/api-reference/accounts/list-accounts.md) - [List addresses for an account](https://docs.arcuserp.com/api-reference/accounts/list-addresses-for-an-account.md) - [List contacts for an account](https://docs.arcuserp.com/api-reference/accounts/list-contacts-for-an-account.md) - [List saved payment methods for an account](https://docs.arcuserp.com/api-reference/accounts/list-saved-payment-methods-for-an-account.md) - [Merge two accounts (soft merge)](https://docs.arcuserp.com/api-reference/accounts/merge-two-accounts-soft-merge.md): Soft-merges loser_account_id INTO the winner (path id). Both accounts must belong to the same entity and have the same account_type. The loser account is set to is_active=false, merged_into_account_id=winner, merged_at=NOW(). All entity-scoped FK references (orders, payments, etc.) are reassigned to… - [Reactivate a deactivated account](https://docs.arcuserp.com/api-reference/accounts/reactivate-a-deactivated-account.md) - [Remove a contact from an account](https://docs.arcuserp.com/api-reference/accounts/remove-a-contact-from-an-account.md) - [Remove a payment method from an account](https://docs.arcuserp.com/api-reference/accounts/remove-a-payment-method-from-an-account.md): Removes a stored payment method. Per-row delete (Rule 24: no bulk delete). Delegates to `removePaymentMethod` canonical handler. - [Remove an address from an account](https://docs.arcuserp.com/api-reference/accounts/remove-an-address-from-an-account.md) - [Retrieve an account](https://docs.arcuserp.com/api-reference/accounts/retrieve-an-account.md) - [Set a contact as primary](https://docs.arcuserp.com/api-reference/accounts/set-a-contact-as-primary.md) - [Set a payment method as the account default](https://docs.arcuserp.com/api-reference/accounts/set-a-payment-method-as-the-account-default.md) - [Set an address as the default for its type](https://docs.arcuserp.com/api-reference/accounts/set-an-address-as-the-default-for-its-type.md) - [Soft deactivate an account](https://docs.arcuserp.com/api-reference/accounts/soft-deactivate-an-account.md): SOFT DEACTIVATE (sets is_active=false). Account remains readable via GET /v1/accounts/{id}?include_inactive=true. Use POST /v1/accounts/{id}/restore to reverse. Hard delete is NOT exposed via the API. Accounts with transaction history cannot be hard-deleted by design. - [Step 1 -- Create a Stripe SetupIntent for a payment method](https://docs.arcuserp.com/api-reference/accounts/step-1--create-a-stripe-setupintent-for-a-payment-method.md): Creates a Stripe SetupIntent and returns `client_secret` for Stripe.js confirmation. After the client confirms with Stripe.js, call `/attach` to save the PM to Arcus. R4: raw card/bank credentials are NEVER accepted here; use Stripe.js for collection. Idempotent via `Idempotency-Key` header. - [Step 2 -- Attach a confirmed Stripe PaymentMethod to the account](https://docs.arcuserp.com/api-reference/accounts/step-2--attach-a-confirmed-stripe-paymentmethod-to-the-account.md): Called after client-side Stripe.js confirmation of the SetupIntent. Saves the PM to `account_payment_methods` and optionally links the Stripe customer. Idempotent via `Idempotency-Key` header. - [Update a contact](https://docs.arcuserp.com/api-reference/accounts/update-a-contact.md) - [Update an account (PATCH allowlist)](https://docs.arcuserp.com/api-reference/accounts/update-an-account-patch-allowlist.md): Updates the specified fields of an account. Only explicitly allowlisted fields may be set via this endpoint (Rule 23 SSOT). The following fields are blocked and will return 422 forbidden_field if included: credit_balance, is_credit_hold, merged_into_account_id, merged_at, and all 30+ analytics colum… - [Update an address](https://docs.arcuserp.com/api-reference/accounts/update-an-address.md) - [Verify ACH bank account via micro-deposits](https://docs.arcuserp.com/api-reference/accounts/verify-ach-bank-account-via-micro-deposits.md): Confirm an ACH payment method using two micro-deposit amounts (cents). Used when Stripe Financial Connections is not supported by the institution. - [List activity events](https://docs.arcuserp.com/api-reference/activity/list-activity-events.md): Returns a paginated list of activity events for the entity. Activity events are created automatically by every mutating API endpoint via the logActivity() helper. This is a READ-ONLY surface. - [List activity events for a specific resource](https://docs.arcuserp.com/api-reference/activity/list-activity-events-for-a-specific-resource.md): Convenience endpoint equivalent to GET /v1/activity?resource_type=&resource_id=. Returns activity events scoped to a specific resource within the entity. Supports the same pagination and filter parameters as GET /v1/activity. resource_id must be a valid UUID. - [Not allowed (activity log is append-only via logActivity)](https://docs.arcuserp.com/api-reference/activity/not-allowed-activity-log-is-append-only-via-logactivity.md): Returns 405 Method Not Allowed. Activity events are created automatically by other API endpoints via the logActivity() canonical helper. There is no public POST endpoint for the activity log. - [Retrieve a single activity event](https://docs.arcuserp.com/api-reference/activity/retrieve-a-single-activity-event.md): Returns a single activity event by its public id (format: act_). Returns 404 if the event does not exist or belongs to a different entity (Layer 1 entity isolation enforced; no existence leak). - [Aggregate counts for audit log dashboard](https://docs.arcuserp.com/api-reference/auditlog/aggregate-counts-for-audit-log-dashboard.md) - [Distinct resource types present in audit log](https://docs.arcuserp.com/api-reference/auditlog/distinct-resource-types-present-in-audit-log.md): Returns the sorted list of distinct resource_type values for filter dropdowns. - [Get a single audit log entry by ID](https://docs.arcuserp.com/api-reference/auditlog/get-a-single-audit-log-entry-by-id.md) - [List audit log entries](https://docs.arcuserp.com/api-reference/auditlog/list-audit-log-entries.md): Returns a reverse-chronological page of audit log entries for the entity. Supports filtering by actor, resource, action, severity, date range, IP, and session. Use `audit:read` scope for full access or `audit:read:own` for entries generated by the API key's own user only (Privacy Layer 2). - [Not allowed (audit log is append-only)](https://docs.arcuserp.com/api-reference/auditlog/not-allowed-audit-log-is-append-only.md): Returns 405. The audit log is append-only and can only be written by the system via canonical logActivity() calls (Rule 20). - [Time-series event counts for sparkline charts](https://docs.arcuserp.com/api-reference/auditlog/time-series-event-counts-for-sparkline-charts.md) - [Verify cryptographic chain integrity of audit log](https://docs.arcuserp.com/api-reference/auditlog/verify-cryptographic-chain-integrity-of-audit-log.md): Walks the `prev_hash` -> `entry_hash` chain for the entity's audit log and returns whether the chain is intact. A broken chain indicates tampered or deleted rows. On a clean system this always returns `{verified: true}`. - [Create or upsert a channel listing](https://docs.arcuserp.com/api-reference/channel-listings/create-or-upsert-a-channel-listing.md): Creates a marketplace_listing row. connector_type + external_id are immutable after creation (409 if conflict). Delegates to upsertListing. - [Delete a channel listing](https://docs.arcuserp.com/api-reference/channel-listings/delete-a-channel-listing.md): Removes the marketplace_listing row. Does NOT unpublish from the remote connector. Use /sync first to unpublish if needed. - [Get a single channel listing](https://docs.arcuserp.com/api-reference/channel-listings/get-a-single-channel-listing.md) - [List channel listings entity-wide](https://docs.arcuserp.com/api-reference/channel-listings/list-channel-listings-entity-wide.md): Thin wrapper over marketplace_listings (G11 canonical model). All listings across all products/variants for the entity. Cursor-paginated. Layer 1: entity_id from API key only. - [Pause a channel listing](https://docs.arcuserp.com/api-reference/channel-listings/pause-a-channel-listing.md): Sets status to 'paused'. Delegates to upsertListing with status override. - [Push listing to the remote connector](https://docs.arcuserp.com/api-reference/channel-listings/push-listing-to-the-remote-connector.md): Shopify: calls pushArcusProductToShopifyHandler. Amazon + eBay: returns 501 until dedicated sync helpers are implemented. Wrapped in withIdempotency. Returns 202 Accepted. - [Resume a paused channel listing](https://docs.arcuserp.com/api-reference/channel-listings/resume-a-paused-channel-listing.md): Sets status to 'active'. Delegates to upsertListing with status override. - [Update a channel listing](https://docs.arcuserp.com/api-reference/channel-listings/update-a-channel-listing.md): connector_type and external_id are non-writable post-creation. Writable fields: status, listing_url, price_override, metadata, is_active. - [Add an order item to a package](https://docs.arcuserp.com/api-reference/fulfillment/add-an-order-item-to-a-package.md): Required API key scope: `fulfillment:write` - [Create a new package on an order](https://docs.arcuserp.com/api-reference/fulfillment/create-a-new-package-on-an-order.md): Required API key scope: `fulfillment:write` - [Delete an unfulfilled package](https://docs.arcuserp.com/api-reference/fulfillment/delete-an-unfulfilled-package.md): Required API key scope: `fulfillment:write` - [Get packing slip PDF URL or bytes](https://docs.arcuserp.com/api-reference/fulfillment/get-packing-slip-pdf-url-or-bytes.md): Required API key scope: `fulfillment:read` - [List packages](https://docs.arcuserp.com/api-reference/fulfillment/list-packages.md): Required API key scope: `fulfillment:read` - [List shipping labels for the entity](https://docs.arcuserp.com/api-reference/fulfillment/list-shipping-labels-for-the-entity.md): Required API key scope: `fulfillment:read` - [List tracking events; requires package_id or order_id filter](https://docs.arcuserp.com/api-reference/fulfillment/list-tracking-events;-requires-package_id-or-order_id-filter.md): Required API key scope: `fulfillment:read` - [Mark package as fulfilled and post GL entries](https://docs.arcuserp.com/api-reference/fulfillment/mark-package-as-fulfilled-and-post-gl-entries.md): Required API key scope: `fulfillment:write` - [Move an item from this package to another package](https://docs.arcuserp.com/api-reference/fulfillment/move-an-item-from-this-package-to-another-package.md): Required API key scope: `fulfillment:write` - [Override the carrier and service for this package](https://docs.arcuserp.com/api-reference/fulfillment/override-the-carrier-and-service-for-this-package.md): Required API key scope: `fulfillment:write` - [Purchase a Shippo shipping label for this package](https://docs.arcuserp.com/api-reference/fulfillment/purchase-a-shippo-shipping-label-for-this-package.md): Required API key scope: `fulfillment:write` - [Recalculate estimated delivery date from tracking](https://docs.arcuserp.com/api-reference/fulfillment/recalculate-estimated-delivery-date-from-tracking.md): Required API key scope: `fulfillment:write` - [Remove an item from a package](https://docs.arcuserp.com/api-reference/fulfillment/remove-an-item-from-a-package.md): Required API key scope: `fulfillment:write` - [Retrieve a single package](https://docs.arcuserp.com/api-reference/fulfillment/retrieve-a-single-package.md): Required API key scope: `fulfillment:read` - [Retrieve a single shipping label](https://docs.arcuserp.com/api-reference/fulfillment/retrieve-a-single-shipping-label.md): Required API key scope: `fulfillment:read` - [Retrieve a single tracking event](https://docs.arcuserp.com/api-reference/fulfillment/retrieve-a-single-tracking-event.md): Required API key scope: `fulfillment:read` - [Send shipment notification email for this package](https://docs.arcuserp.com/api-reference/fulfillment/send-shipment-notification-email-for-this-package.md): Required API key scope: `fulfillment:write` - [Send the active label to a PrintNode printer](https://docs.arcuserp.com/api-reference/fulfillment/send-the-active-label-to-a-printnode-printer.md): Required API key scope: `fulfillment:write` - [Set or update the freight PRO number for an LTL package](https://docs.arcuserp.com/api-reference/fulfillment/set-or-update-the-freight-pro-number-for-an-ltl-package.md): Required API key scope: `fulfillment:write` - [Swap the box type for this package](https://docs.arcuserp.com/api-reference/fulfillment/swap-the-box-type-for-this-package.md): Required API key scope: `fulfillment:write` - [Update package dimensions / metadata](https://docs.arcuserp.com/api-reference/fulfillment/update-package-dimensions-metadata.md): Required API key scope: `fulfillment:write` - [Update package item quantity or serial numbers](https://docs.arcuserp.com/api-reference/fulfillment/update-package-item-quantity-or-serial-numbers.md): Required API key scope: `fulfillment:write` - [Void the active shipping label for this package](https://docs.arcuserp.com/api-reference/fulfillment/void-the-active-shipping-label-for-this-package.md): Required API key scope: `fulfillment:write` - [Create or initiate a connector connection](https://docs.arcuserp.com/api-reference/integrations/create-or-initiate-a-connector-connection.md) - [Disconnect a connector (soft-keep credentials for 7-day recovery)](https://docs.arcuserp.com/api-reference/integrations/disconnect-a-connector-soft-keep-credentials-for-7-day-recovery.md): Soft-disconnects the connector: sets is_active=false and schedules the AWS Secrets Manager credential blob for deletion after 7 days (per project_shopify_expiring_tokens_contract; extended to ALL connectors). - [Get a single connector by type](https://docs.arcuserp.com/api-reference/integrations/get-a-single-connector-by-type.md) - [List all configured connectors for the entity](https://docs.arcuserp.com/api-reference/integrations/list-all-configured-connectors-for-the-entity.md) - [List recent sync attempts for a connector](https://docs.arcuserp.com/api-reference/integrations/list-recent-sync-attempts-for-a-connector.md) - [Smoke-test the connector connection (auth probe against provider live API)](https://docs.arcuserp.com/api-reference/integrations/smoke-test-the-connector-connection-auth-probe-against-provider-live-api.md): Re-fetches credentials with forceFetch=true to bypass the Powertools 300s cache, ensuring the test reflects the current credential state, not a stale copy. Credentials are NEVER returned in the response. - [Update editable fields on a connector](https://docs.arcuserp.com/api-reference/integrations/update-editable-fields-on-a-connector.md) - [API Reference](https://docs.arcuserp.com/api-reference/introduction.md): Complete reference for every Arcus ERP API endpoint. Auto-generated from the OpenAPI spec with try-it-now. - [Adjust inventory (cycle count, shrinkage, revaluation)](https://docs.arcuserp.com/api-reference/inventory/adjust-inventory-cycle-count-shrinkage-revaluation.md): Positive or negative delta. Hard-blocks negative balance and zero-cost positives. GL: DR/CR Inventory + DR/CR Suspense or Shrinkage via postInventoryAdjustment. Connector: triggers async pushInventoryToMarketplaces. migration:write scope: documents authorization for opening-balance loads. Hard-block… - [Bulk receive serial numbers](https://docs.arcuserp.com/api-reference/inventory/bulk-receive-serial-numbers.md): Enrolls serial numbers with status='available'. Does NOT increment on_hand. For on_hand + serial atomic ingest: POST /v1/inventory/receive with serials[]. Partial success: 200 with per-row errors for duplicates. Max 1000 serials per call. GL: none. - [FIFO consumption detail for a transaction](https://docs.arcuserp.com/api-reference/inventory/fifo-consumption-detail-for-a-transaction.md) - [Get a single inventory balance](https://docs.arcuserp.com/api-reference/inventory/get-a-single-inventory-balance.md) - [Get a single serial number](https://docs.arcuserp.com/api-reference/inventory/get-a-single-serial-number.md) - [List FIFO cost layers for a product](https://docs.arcuserp.com/api-reference/inventory/list-fifo-cost-layers-for-a-product.md): Returns cost basis layers ordered by received_at (FIFO order). Drives COGS computation (postFulfillmentEntries uses these layers). - [List inventory balances](https://docs.arcuserp.com/api-reference/inventory/list-inventory-balances.md): Per-product per-location on_hand balances. Drives from active+tracked products with LEFT JOIN to inventory_balances (all SKUs visible even at 0). The `available` field is GENERATED (on_hand - allocated) and is readOnly. - [List inventory movement history](https://docs.arcuserp.com/api-reference/inventory/list-inventory-movement-history.md) - [List serial numbers](https://docs.arcuserp.com/api-reference/inventory/list-serial-numbers.md) - [Receive inventory (non-PO)](https://docs.arcuserp.com/api-reference/inventory/receive-inventory-non-po.md): Standalone receipt. Hard-blocks zero-cost (unit_cost must be > 0). GL: DR Inventory / CR GRNI via postInventoryReceived. Connector: triggers async pushInventoryToMarketplaces (Shopify/Amazon/eBay). For PO-linked receipts: POST /v1/purchase-orders/{id}/receive. - [Transfer inventory between locations](https://docs.arcuserp.com/api-reference/inventory/transfer-inventory-between-locations.md): Inter-location transfer. Writes transfer_out + transfer_in ledger rows. Intra-entity: no GL. Intercompany: posts Due From / Due To GL entries. - [Transition serial number status](https://docs.arcuserp.com/api-reference/inventory/transition-serial-number-status.md): Status transition matrix: available -> quarantined, damaged, end_of_life, disassembled, allocated allocated -> available (release), sold sold -> returned returned -> available, damaged, quarantined, end_of_life damaged -> quarantined, end_of_life quarantined -> available, damaged, end_of… - [Get a single marketplace order with sync log history](https://docs.arcuserp.com/api-reference/marketplace-orders/get-a-single-marketplace-order-with-sync-log-history.md): Returns order detail plus sync_log array (last 50 events, synced_at DESC). Returns 404 if order.source_platform IS NULL (not a marketplace order). - [Issue a refund for a marketplace order](https://docs.arcuserp.com/api-reference/marketplace-orders/issue-a-refund-for-a-marketplace-order.md): Shopify: delegates to issueShopifyRefund. Posts GL JE per Rule 6/21. eBay: requires ebay_return_id in body; delegates to issueEbayReturnRefund. Amazon: returns 501 until Amazon refund-via-API is implemented. Wrapped in withIdempotency. amount must be a positive number. - [List marketplace orders entity-wide](https://docs.arcuserp.com/api-reference/marketplace-orders/list-marketplace-orders-entity-wide.md): Filtered VIEW over orders WHERE source_platform IS NOT NULL. Includes latest sync_status from marketplace_sync_log (G11b canonical). Layer 1: entity_id from API key. Layer 4: optional location_id filter. Cursor-paginated by (created_at DESC, id). - [Re-import an order from its source platform](https://docs.arcuserp.com/api-reference/marketplace-orders/re-import-an-order-from-its-source-platform.md): Shopify: calls resyncShopifyOrderEndpoint, returns 202 Accepted. Amazon + eBay: returns 501 until dedicated resync helpers are implemented. Wrapped in withIdempotency. - [Attach tags to a resource](https://docs.arcuserp.com/api-reference/masters/attach-tags-to-a-resource.md): Requires BOTH tags:write AND the per-resource scope: order->orders:write, account->accounts:write, product->products:write, return->returns:write, package->fulfillment:write. - [Convert quantity between UoMs](https://docs.arcuserp.com/api-reference/masters/convert-quantity-between-uoms.md) - [Create location](https://docs.arcuserp.com/api-reference/masters/create-location.md) - [Create payment term](https://docs.arcuserp.com/api-reference/masters/create-payment-term.md) - [Create pricing level](https://docs.arcuserp.com/api-reference/masters/create-pricing-level.md) - [Create product category](https://docs.arcuserp.com/api-reference/masters/create-product-category.md) - [Create sales channel](https://docs.arcuserp.com/api-reference/masters/create-sales-channel.md) - [Create tag](https://docs.arcuserp.com/api-reference/masters/create-tag.md) - [Create unit of measure](https://docs.arcuserp.com/api-reference/masters/create-unit-of-measure.md) - [Delete payment term](https://docs.arcuserp.com/api-reference/masters/delete-payment-term.md): Returns 409 payment_term_in_use if accounts or orders reference it. - [Delete pricing level](https://docs.arcuserp.com/api-reference/masters/delete-pricing-level.md): Returns 409 pricing_level_in_use if product_pricing_policies or accounts reference it. - [Delete product category](https://docs.arcuserp.com/api-reference/masters/delete-product-category.md): Returns 409 category_in_use if products reference it. - [Delete sales channel](https://docs.arcuserp.com/api-reference/masters/delete-sales-channel.md): Returns 403 system_row_locked on is_system=true rows. - [Delete tag](https://docs.arcuserp.com/api-reference/masters/delete-tag.md): Returns 400/403 on is_system=true tags. - [Delete unit of measure](https://docs.arcuserp.com/api-reference/masters/delete-unit-of-measure.md): Returns 403 system_row_locked on is_system=true rows. Returns 409 if products/orders reference it. - [Detach a tag from a resource](https://docs.arcuserp.com/api-reference/masters/detach-a-tag-from-a-resource.md): Requires BOTH tags:write AND the per-resource scope: order->orders:write, account->accounts:write, product->products:write, return->returns:write, package->fulfillment:write. - [Get location](https://docs.arcuserp.com/api-reference/masters/get-location.md) - [Get pricing level](https://docs.arcuserp.com/api-reference/masters/get-pricing-level.md) - [List locations](https://docs.arcuserp.com/api-reference/masters/list-locations.md) - [List payment terms](https://docs.arcuserp.com/api-reference/masters/list-payment-terms.md) - [List pricing levels](https://docs.arcuserp.com/api-reference/masters/list-pricing-levels.md) - [List product categories](https://docs.arcuserp.com/api-reference/masters/list-product-categories.md) - [List sales channels](https://docs.arcuserp.com/api-reference/masters/list-sales-channels.md) - [List tags](https://docs.arcuserp.com/api-reference/masters/list-tags.md) - [List tags attached to a resource](https://docs.arcuserp.com/api-reference/masters/list-tags-attached-to-a-resource.md) - [List units of measure](https://docs.arcuserp.com/api-reference/masters/list-units-of-measure.md) - [List UoMs by type](https://docs.arcuserp.com/api-reference/masters/list-uoms-by-type.md) - [Set default location](https://docs.arcuserp.com/api-reference/masters/set-default-location.md) - [Set default payment term](https://docs.arcuserp.com/api-reference/masters/set-default-payment-term.md) - [Soft-deactivate location](https://docs.arcuserp.com/api-reference/masters/soft-deactivate-location.md): Soft-deactivates the location (is_active=false). Returns 409 location_in_use with references envelope if orders, inventory_balances, packages, or user_locations reference it. - [Update location](https://docs.arcuserp.com/api-reference/masters/update-location.md) - [Update payment term](https://docs.arcuserp.com/api-reference/masters/update-payment-term.md) - [Update pricing level](https://docs.arcuserp.com/api-reference/masters/update-pricing-level.md) - [Update product category](https://docs.arcuserp.com/api-reference/masters/update-product-category.md) - [Update sales channel](https://docs.arcuserp.com/api-reference/masters/update-sales-channel.md): Returns 403 system_row_locked on is_system=true rows. - [Update tag](https://docs.arcuserp.com/api-reference/masters/update-tag.md) - [Update unit of measure](https://docs.arcuserp.com/api-reference/masters/update-unit-of-measure.md): Returns 403 system_row_locked on is_system=true rows. - [Emit cutover swap operator commands](https://docs.arcuserp.com/api-reference/migration/emit-cutover-swap-operator-commands.md): Records a swap-initiated action in the cutover audit log and returns the operator command list for Lambda alias swap, DNS flip, and Cognito swap. Does NOT auto-execute any of these steps (per feedback_deploy_authorization_gates). Requires migration:admin + migration:write scopes. - [Emit rollback operator commands](https://docs.arcuserp.com/api-reference/migration/emit-rollback-operator-commands.md): Records a rollback-initiated action and returns the operator command list for: - AWS RDS restore from snapshot (creates NEW instance; does not delete prod) - Lambda alias rollback via scripts/rollback.mjs - DNS revert instructions Does NOT auto-execute any steps (per feedback_prod_db_never_del… - [Freeze entity for migration cutover](https://docs.arcuserp.com/api-reference/migration/freeze-entity-for-migration-cutover.md): Sets the entity into read-only mode. All API mutations from non-migration callers are rejected with HTTP 423 Locked until POST .../unfreeze is called. Idempotent: if the entity is already frozen, returns the existing freeze_token. Requires migration:admin + migration:write scopes. - [Get a single migration job by ID](https://docs.arcuserp.com/api-reference/migration/get-a-single-migration-job-by-id.md): Returns the full job record including the complete errors array. Requires migration:read scope. - [Get current cutover state](https://docs.arcuserp.com/api-reference/migration/get-current-cutover-state.md): Returns the entity's current freeze state, latest cutover log entry, and recent cutover action history. Requires migration:read scope. - [Initiate RDS snapshot for cutover](https://docs.arcuserp.com/api-reference/migration/initiate-rds-snapshot-for-cutover.md): Initiates an RDS point-in-time snapshot of the entity's database instance. Returns HTTP 202 immediately; snapshot creation is async (typically 5-20 min). Operator polls GET .../status or receives migration.snapshot_taken webhook when done. Requires migration:admin + migration:write scopes. In dev en… - [List async migration jobs for this entity](https://docs.arcuserp.com/api-reference/migration/list-async-migration-jobs-for-this-entity.md): Returns a cursor-paginated list of migration jobs scoped to the entity. Supports filtering by resource type, status, and creation timestamp. Requires migration:read scope. - [List cutover action log entries](https://docs.arcuserp.com/api-reference/migration/list-cutover-action-log-entries.md): Paginated read of migration_cutover_log rows for this entity. Requires migration:read scope. - [Run reconciliation suite and return pass/fail](https://docs.arcuserp.com/api-reference/migration/run-reconciliation-suite-and-return-passfail.md): Internally calls the reconciliation endpoints (trial balance, AR aging, AP aging, resource counts) and returns a composite pass/fail result. Logs the result to migration_cutover_log for reference by POST .../unfreeze. Requires migration:write scope. - [Submit a bulk import job for a resource type](https://docs.arcuserp.com/api-reference/migration/submit-a-bulk-import-job-for-a-resource-type.md): Accepts up to 1000 records for one of 6 supported resource types (accounts, products, orders, journal-entries, vendor-bills, ap-payments). Returns 202 + job_id for async processing. Returns 200 + dry_run result if ?dry_run=true (no DB writes made). Idempotency-Key header deduplicates concurrent subm… - [Unfreeze entity and complete cutover](https://docs.arcuserp.com/api-reference/migration/unfreeze-entity-and-complete-cutover.md): Clears the entity's read-only mode token, resuming normal mutation processing. Requires a verify_log_id referencing a passed verify result within the last 4 hours. Automatically logs a cutover_completed action. Requires migration:admin + migration:write scopes. - [Add a single line item to an order](https://docs.arcuserp.com/api-reference/orders/add-a-single-line-item-to-an-order.md) - [Add up to 250 line items in a single atomic transaction](https://docs.arcuserp.com/api-reference/orders/add-up-to-250-line-items-in-a-single-atomic-transaction.md): Canonical multi-item add. All items are inserted in ONE transaction with ONE fullRecalculateOrder at the end. On any item error the entire transaction is rolled back. Returns a partial-success envelope {object:bulk_add_result, processed:N, items:[], errors:[]} (always HTTP 200). Max 250 items per ca… - [Auto-fulfill an order (requires orders:write + fulfillment:write scopes)](https://docs.arcuserp.com/api-reference/orders/auto-fulfill-an-order-requires-orders:write-+-fulfillment:write-scopes.md) - [Cancel an order](https://docs.arcuserp.com/api-reference/orders/cancel-an-order.md): NEW-GAP: body.skip_marketplace_sync flag is not yet implemented in the canonical cancelOrder handler. Will be added via NEW-GAP-API-CANONICAL-MARKETPLACE-SYNC-OPT-OUT. - [Confirm a quote or draft order into a sales_order](https://docs.arcuserp.com/api-reference/orders/confirm-a-quote-or-draft-order-into-a-sales_order.md) - [Create a payment (charge) on an order](https://docs.arcuserp.com/api-reference/orders/create-a-payment-charge-on-an-order.md): Apply a payment to an invoice/order. Routes by payment_method: card/ach -> Stripe PaymentIntent; cash/check/credit/terms -> manual record. Overpayment automatically creates a credit memo. Requires both orders:write AND payments:write scopes. R4: raw card credentials (card_number, cvc) are rejected.… - [Create an order (any document_type)](https://docs.arcuserp.com/api-reference/orders/create-an-order-any-document_type.md) - [Delete (soft-delete) an order](https://docs.arcuserp.com/api-reference/orders/delete-soft-delete-an-order.md) - [Duplicate an existing order as a new draft](https://docs.arcuserp.com/api-reference/orders/duplicate-an-existing-order-as-a-new-draft.md) - [Get order activity timeline](https://docs.arcuserp.com/api-reference/orders/get-order-activity-timeline.md) - [List invoices (document_type=invoice shorthand)](https://docs.arcuserp.com/api-reference/orders/list-invoices-document_type=invoice-shorthand.md) - [List line items on an order](https://docs.arcuserp.com/api-reference/orders/list-line-items-on-an-order.md) - [List orders (all document_type values)](https://docs.arcuserp.com/api-reference/orders/list-orders-all-document_type-values.md): Returns paginated orders. Filter by document_type to narrow to quotes, sales_orders, invoices, returns, or purchase_orders. expand[] supports up to depth 4 via the expand registry (customer, line_items, fulfillments, payments, invoice, tax_lines, refunds). - [List payments on an order](https://docs.arcuserp.com/api-reference/orders/list-payments-on-an-order.md): List all order_payments rows for a specific order. Layer 1 enforced via JOIN on orders.entity_id. Returns rows in chronological order. - [List purchase orders (document_type=purchase_order shorthand)](https://docs.arcuserp.com/api-reference/orders/list-purchase-orders-document_type=purchase_order-shorthand.md) - [List quotes (document_type=quote shorthand)](https://docs.arcuserp.com/api-reference/orders/list-quotes-document_type=quote-shorthand.md) - [Remove a line item from an order](https://docs.arcuserp.com/api-reference/orders/remove-a-line-item-from-an-order.md) - [Retrieve a single order](https://docs.arcuserp.com/api-reference/orders/retrieve-a-single-order.md) - [Send a transactional email for an order (order_confirmation, invoice, etc.)](https://docs.arcuserp.com/api-reference/orders/send-a-transactional-email-for-an-order-order_confirmation-invoice-etc.md) - [Update a line item quantity or notes](https://docs.arcuserp.com/api-reference/orders/update-a-line-item-quantity-or-notes.md) - [Update order fields (14-field allowlist; totals/status/entity_id reject 400)](https://docs.arcuserp.com/api-reference/orders/update-order-fields-14-field-allowlist;-totalsstatusentity_id-reject-400.md): PATCH allowlist (Rule 23 SSOT): account_id, shipping_address_id, billing_address_id, pricing_level_id, payment_term_id, sales_channel_id, notes, customer_notes, internal_notes, requested_ship_date, expected_ship_date, ships_freight, freight_class_effective, metadata. Totals fields (subtotal, tax_tot… - [Apply a credit memo to an order](https://docs.arcuserp.com/api-reference/payments/apply-a-credit-memo-to-an-order.md): Apply some or all of a credit memo's balance to an order's balance due. Returns 422 if the requested `amount` exceeds available balance. Rule 23 lifecycle: `active` / `partially_used` only; `voided`/`expired`/`fully_applied` return 400. Idempotent via `Idempotency-Key` header. - [Issue a credit memo to an account](https://docs.arcuserp.com/api-reference/payments/issue-a-credit-memo-to-an-account.md): Create a credit memo. GL: DR customer_escrow / CR ar_account. `expires_at` accepts ISO date string or number of days from now. Idempotent via `Idempotency-Key` header. - [List credit memos](https://docs.arcuserp.com/api-reference/payments/list-credit-memos.md): List credit memos for the entity. Use `?account_id=` for account-scoped listing. Without `account_id`, returns entity-wide credit memos up to `limit`. Layer 1: entity_id from API key. - [List payments](https://docs.arcuserp.com/api-reference/payments/list-payments.md): List all `order_payments` rows for the entity. Supports filtering by `order_id`, `status`, `payment_method`, date range, and cursor pagination. Layer 1: entity_id from API key. - [Post an atomic multi-line payment batch](https://docs.arcuserp.com/api-reference/payments/post-an-atomic-multi-line-payment-batch.md): Submit a batch of payment lines atomically. All lines succeed or all roll back. Delegates to `postBatch` (HOTFIX-PAYMENTS-SPLIT canonical). Single broadcast `payment.batch.recorded` post-COMMIT. Idempotent via `Idempotency-Key` header. - [Refund a payment](https://docs.arcuserp.com/api-reference/payments/refund-a-payment.md): Issue a refund against a specific payment. `amount` in cents (Stripe-parity). Refund-cap enforced: `amount <= payment.amount - payment.refund_amount` (Rule 23 SSOT). Returns 202 if the Stripe refund is asynchronously pending (bank ACH, etc.). Idempotent via `Idempotency-Key` header. - [Retrieve a payment](https://docs.arcuserp.com/api-reference/payments/retrieve-a-payment.md): Retrieve a single payment by ID. Layer 1 entity_id enforced. - [Void an uncaptured Stripe PaymentIntent](https://docs.arcuserp.com/api-reference/payments/void-an-uncaptured-stripe-paymentintent.md): Cancel a Stripe PaymentIntent that has not yet been captured. Returns 422 `not_a_stripe_payment` for non-Stripe payments; returns 400 `payment_not_voidable` for already-captured PIs (use /refund instead). Idempotent via `Idempotency-Key`. - [Add a component to a kit](https://docs.arcuserp.com/api-reference/products/add-a-component-to-a-kit.md): Writes quantity_per_kit. Idempotent on (kit_id, component_product_id). Requires products:write scope. - [Add a component to a kit/box product](https://docs.arcuserp.com/api-reference/products/add-a-component-to-a-kitbox-product.md) - [Add a component to a variant kit](https://docs.arcuserp.com/api-reference/products/add-a-component-to-a-variant-kit.md): Writes quantity_per_kit on a kit_components row scoped to variant_id. Resolves product_id from variant_id before delegating to addKitComponent. - [Add a marketplace listing (naturally idempotent on entity_id+connector_type+external_id)](https://docs.arcuserp.com/api-reference/products/add-a-marketplace-listing-naturally-idempotent-on-entity_id+connector_type+external_id.md) - [Add a pricing policy to a product](https://docs.arcuserp.com/api-reference/products/add-a-pricing-policy-to-a-product.md) - [Add a variant to a variant_parent product](https://docs.arcuserp.com/api-reference/products/add-a-variant-to-a-variant_parent-product.md) - [Add a vendor relationship to a product](https://docs.arcuserp.com/api-reference/products/add-a-vendor-relationship-to-a-product.md) - [Auto-generate variants from product options](https://docs.arcuserp.com/api-reference/products/auto-generate-variants-from-product-options.md): Cartesian product of all option values creates missing variant combinations. Skips existing SKU combos. Returns created count + skipped count. - [Bulk-reorder product options](https://docs.arcuserp.com/api-reference/products/bulk-reorder-product-options.md): Atomically updates sequence for each option in the order[] array. Body: { order: [uuid, uuid, ...] }. Missing IDs are left unchanged. - [Create a kit or bundle with optional components](https://docs.arcuserp.com/api-reference/products/create-a-kit-or-bundle-with-optional-components.md): R8 atomic: kit header + components[] in one request. product_type defaults to 'kit' if not specified. Each component row writes quantity_per_kit. Requires products:write scope. - [Create a product (R8 unified with product_type discriminator)](https://docs.arcuserp.com/api-reference/products/create-a-product-r8-unified-with-product_type-discriminator.md) - [Create a product variant (entity-wide endpoint)](https://docs.arcuserp.com/api-reference/products/create-a-product-variant-entity-wide-endpoint.md): Equivalent to POST /v1/products/:id/variants but with product_id in the body. Delegates to createProductVariant canonical handler. - [Create an option definition on a product](https://docs.arcuserp.com/api-reference/products/create-an-option-definition-on-a-product.md): option_name must be unique per product. option_values must be a non-empty array of 1-50 string values. - [Delete a variant](https://docs.arcuserp.com/api-reference/products/delete-a-variant.md): Blocked if variant has active channel listings (409 variant_has_listings). Delegates to deleteProductVariant via deleteProductVariantById. - [Delete an option definition](https://docs.arcuserp.com/api-reference/products/delete-an-option-definition.md): Returns 409 option_in_use if any variant references this option's values. Delegates to deleteProductOption canonical handler. - [Get a single kit with components](https://docs.arcuserp.com/api-reference/products/get-a-single-kit-with-components.md) - [Get a single variant by ID](https://docs.arcuserp.com/api-reference/products/get-a-single-variant-by-id.md) - [Get inventory totals and by-location breakdown for a product (dual scope)](https://docs.arcuserp.com/api-reference/products/get-inventory-totals-and-by-location-breakdown-for-a-product-dual-scope.md) - [List approved vendor relationships for a product](https://docs.arcuserp.com/api-reference/products/list-approved-vendor-relationships-for-a-product.md) - [List kit components for a kit/box product](https://docs.arcuserp.com/api-reference/products/list-kit-components-for-a-kitbox-product.md): Returns the kit components (child SKUs) that make up a kit or box product. The `{id}` path parameter MUST be the UUID of a product whose `product_type` is either `kit` or `box`. Calling this on a `physical` / `service` / `variant_parent` product returns an empty list. - [List kits and bundles entity-wide](https://docs.arcuserp.com/api-reference/products/list-kits-and-bundles-entity-wide.md): Returns all products where product_type IN ('kit', 'box'), with their components embedded in a `components` array. Cursor-paginated. Layer 1: entity_id from API key only. - [List marketplace listings for a product](https://docs.arcuserp.com/api-reference/products/list-marketplace-listings-for-a-product.md) - [List option definitions for a product](https://docs.arcuserp.com/api-reference/products/list-option-definitions-for-a-product.md): Returns option definitions (name + values array) ordered by sequence. Delegates to listProductOptions canonical handler in routes/products.mjs. - [List pricing policies for a product](https://docs.arcuserp.com/api-reference/products/list-pricing-policies-for-a-product.md) - [List product variants entity-wide](https://docs.arcuserp.com/api-reference/products/list-product-variants-entity-wide.md): All variants across all products. Cursor-paginated. Search across sku, barcode, variant_title, option values. Layer 1: entity_id from API key only. - [List products](https://docs.arcuserp.com/api-reference/products/list-products.md) - [List variants for a variant_parent product](https://docs.arcuserp.com/api-reference/products/list-variants-for-a-variant_parent-product.md) - [Remove a component from a kit](https://docs.arcuserp.com/api-reference/products/remove-a-component-from-a-kit.md) - [Remove a component from a kit/box product](https://docs.arcuserp.com/api-reference/products/remove-a-component-from-a-kitbox-product.md) - [Remove a component from a variant kit](https://docs.arcuserp.com/api-reference/products/remove-a-component-from-a-variant-kit.md) - [Remove a vendor relationship (referential guard on default+open POs)](https://docs.arcuserp.com/api-reference/products/remove-a-vendor-relationship-referential-guard-on-default+open-pos.md) - [Restore a soft-deleted product](https://docs.arcuserp.com/api-reference/products/restore-a-soft-deleted-product.md) - [Retrieve a product](https://docs.arcuserp.com/api-reference/products/retrieve-a-product.md) - [Soft-delete a product (sets is_active=false, writes metadata._deleted)](https://docs.arcuserp.com/api-reference/products/soft-delete-a-product-sets-is_active=false-writes-metadata_deleted.md) - [Update a kit component row](https://docs.arcuserp.com/api-reference/products/update-a-kit-component-row.md): Allowlist enforced: quantity_per_kit, sequence, metadata. - [Update a product (PATCH allowlist enforced)](https://docs.arcuserp.com/api-reference/products/update-a-product-patch-allowlist-enforced.md) - [Update a product variant](https://docs.arcuserp.com/api-reference/products/update-a-product-variant.md) - [Update a variant](https://docs.arcuserp.com/api-reference/products/update-a-variant.md): Allowlist enforced. shopify_variant_id is non-writable via PATCH; use POST /v1/channel_listings to link connector IDs. - [Update a variant component row](https://docs.arcuserp.com/api-reference/products/update-a-variant-component-row.md) - [Update a vendor relationship (allowlist PATCH)](https://docs.arcuserp.com/api-reference/products/update-a-vendor-relationship-allowlist-patch.md) - [Update an option definition](https://docs.arcuserp.com/api-reference/products/update-an-option-definition.md): Allowlist enforced: option_name, option_values, sequence, metadata. - [Update kit header fields](https://docs.arcuserp.com/api-reference/products/update-kit-header-fields.md): Allowlist enforced: sku, product_name, description, is_active, metadata. Attempting to change product_type returns 400 field_not_writable. Use POST /v1/kits/:id/components to add components. - [Apply a vendor credit (returns 400 with hint to use POST /v1/ap-payments with vendor_credit_ids[])](https://docs.arcuserp.com/api-reference/purchasing/apply-a-vendor-credit-returns-400-with-hint-to-use-post-v1ap-payments-with-vendor_credit_ids[].md) - [Approve a purchase order](https://docs.arcuserp.com/api-reference/purchasing/approve-a-purchase-order.md): Required API key scope: `purchasing:approve` - [Approve a vendor bill](https://docs.arcuserp.com/api-reference/purchasing/approve-a-vendor-bill.md): Required API key scope: `purchasing:approve` - [Batch print multiple checks](https://docs.arcuserp.com/api-reference/purchasing/batch-print-multiple-checks.md): Required API key scope: `purchasing:write` - [Cancel / void a purchase order](https://docs.arcuserp.com/api-reference/purchasing/cancel-void-a-purchase-order.md): Required API key scope: `purchasing:write` - [Confirm NACHA batch sent](https://docs.arcuserp.com/api-reference/purchasing/confirm-nacha-batch-sent.md): Required API key scope: `purchasing:write` - [Create a purchase order](https://docs.arcuserp.com/api-reference/purchasing/create-a-purchase-order.md): Required API key scope: `purchasing:write` - [Create a quick check (one-time payment without bill)](https://docs.arcuserp.com/api-reference/purchasing/create-a-quick-check-one-time-payment-without-bill.md): Required API key scope: `purchasing:write` - [Create a vendor bill](https://docs.arcuserp.com/api-reference/purchasing/create-a-vendor-bill.md): Required API key scope: `purchasing:write` - [Create an AP payment](https://docs.arcuserp.com/api-reference/purchasing/create-an-ap-payment.md): Required API key scope: `purchasing:write` - [Create an AP payment batch](https://docs.arcuserp.com/api-reference/purchasing/create-an-ap-payment-batch.md): Required API key scope: `purchasing:write` - [Download NACHA ACH file for a batch](https://docs.arcuserp.com/api-reference/purchasing/download-nacha-ach-file-for-a-batch.md): Required API key scope: `purchasing:read` - [Get the next check number for this entity](https://docs.arcuserp.com/api-reference/purchasing/get-the-next-check-number-for-this-entity.md): Required API key scope: `purchasing:read` - [List AP payment batches](https://docs.arcuserp.com/api-reference/purchasing/list-ap-payment-batches.md): Required API key scope: `purchasing:read` - [List AP payments](https://docs.arcuserp.com/api-reference/purchasing/list-ap-payments.md): Required API key scope: `purchasing:read` - [List printed checks](https://docs.arcuserp.com/api-reference/purchasing/list-printed-checks.md): Required API key scope: `purchasing:read` - [List purchase orders](https://docs.arcuserp.com/api-reference/purchasing/list-purchase-orders.md): Required API key scope: `purchasing:read` - [List vendor bills](https://docs.arcuserp.com/api-reference/purchasing/list-vendor-bills.md): Required API key scope: `purchasing:read` - [List vendor credits](https://docs.arcuserp.com/api-reference/purchasing/list-vendor-credits.md): Required API key scope: `purchasing:read` - [Record a receipt against a purchase order](https://docs.arcuserp.com/api-reference/purchasing/record-a-receipt-against-a-purchase-order.md): Required API key scope: `purchasing:write` - [Reject a vendor bill](https://docs.arcuserp.com/api-reference/purchasing/reject-a-vendor-bill.md): Required API key scope: `purchasing:approve` - [Reprint a check](https://docs.arcuserp.com/api-reference/purchasing/reprint-a-check.md): Required API key scope: `purchasing:write` - [Retrieve a printed check](https://docs.arcuserp.com/api-reference/purchasing/retrieve-a-printed-check.md): Required API key scope: `purchasing:read` - [Retrieve a purchase order](https://docs.arcuserp.com/api-reference/purchasing/retrieve-a-purchase-order.md): Required API key scope: `purchasing:read` - [Retrieve a vendor bill](https://docs.arcuserp.com/api-reference/purchasing/retrieve-a-vendor-bill.md): Required API key scope: `purchasing:read` - [Retrieve a vendor credit](https://docs.arcuserp.com/api-reference/purchasing/retrieve-a-vendor-credit.md): Required API key scope: `purchasing:read` - [Retrieve an AP payment](https://docs.arcuserp.com/api-reference/purchasing/retrieve-an-ap-payment.md): Required API key scope: `purchasing:read` - [Update a purchase order](https://docs.arcuserp.com/api-reference/purchasing/update-a-purchase-order.md): Required API key scope: `purchasing:write` - [Update a vendor bill](https://docs.arcuserp.com/api-reference/purchasing/update-a-vendor-bill.md): Required API key scope: `purchasing:write` - [Void a printed check](https://docs.arcuserp.com/api-reference/purchasing/void-a-printed-check.md): Required API key scope: `purchasing:write` - [Void a vendor bill with GL reversal](https://docs.arcuserp.com/api-reference/purchasing/void-a-vendor-bill-with-gl-reversal.md): Required API key scope: `purchasing:write` - [Void an AP payment with GL reversal](https://docs.arcuserp.com/api-reference/purchasing/void-an-ap-payment-with-gl-reversal.md): Required API key scope: `purchasing:write` - [AP aging by vendor](https://docs.arcuserp.com/api-reference/reconciliation/ap-aging-by-vendor.md) - [AR aging by customer](https://docs.arcuserp.com/api-reference/reconciliation/ar-aging-by-customer.md) - [Cash and bank account balances](https://docs.arcuserp.com/api-reference/reconciliation/cash-and-bank-account-balances.md) - [Entity resource counts (12 resources)](https://docs.arcuserp.com/api-reference/reconciliation/entity-resource-counts-12-resources.md) - [Inventory valuation snapshot](https://docs.arcuserp.com/api-reference/reconciliation/inventory-valuation-snapshot.md) - [Penny-match external records against Arcus (4 resource types)](https://docs.arcuserp.com/api-reference/reconciliation/penny-match-external-records-against-arcus-4-resource-types.md): Accepts up to 5000 external records, compares them against Arcus data, and returns per-row mismatch details. Requires migration:read scope. Tolerance defaults to 1 cent. - [Trial balance (optionally filtered by source_type)](https://docs.arcuserp.com/api-reference/reconciliation/trial-balance-optionally-filtered-by-source_type.md) - [Add line items to an RMA](https://docs.arcuserp.com/api-reference/returns/add-line-items-to-an-rma.md) - [Cancel a vendor return before shipping](https://docs.arcuserp.com/api-reference/returns/cancel-a-vendor-return-before-shipping.md) - [Cancel an RMA (authorized/expected -> cancelled)](https://docs.arcuserp.com/api-reference/returns/cancel-an-rma-authorizedexpected->-cancelled.md) - [Combined dock shortcut -- receive and disposition in one call](https://docs.arcuserp.com/api-reference/returns/combined-dock-shortcut--receive-and-disposition-in-one-call.md) - [Create a new RMA (status=authorized)](https://docs.arcuserp.com/api-reference/returns/create-a-new-rma-status=authorized.md) - [Create a standalone vendor return](https://docs.arcuserp.com/api-reference/returns/create-a-standalone-vendor-return.md) - [Create advance replacement SO before goods are returned](https://docs.arcuserp.com/api-reference/returns/create-advance-replacement-so-before-goods-are-returned.md): Compound scope required -- returns:write AND orders:write. - [Create exchange SO from an RMA](https://docs.arcuserp.com/api-reference/returns/create-exchange-so-from-an-rma.md): Compound scope required -- returns:write AND orders:write. New SO created in draft. - [Disposition items (restock / writeoff / sent_to_vendor)](https://docs.arcuserp.com/api-reference/returns/disposition-items-restock-writeoff-sent_to_vendor.md): Per-item disposition. Posts COGS reversal (via postCOGSReversal) on restock. Condition guard: damaged/defective items require force_restock=true + force_restock_reason. - [Flag RMA for QC inspection (received -> inspecting)](https://docs.arcuserp.com/api-reference/returns/flag-rma-for-qc-inspection-received->-inspecting.md) - [Generate prepaid return shipping label (AUDIT-022-G3 canonical)](https://docs.arcuserp.com/api-reference/returns/generate-prepaid-return-shipping-label-audit-022-g3-canonical.md): Compound scope required -- returns:write AND fulfillment:write. - [Issue an explicit refund against an RMA](https://docs.arcuserp.com/api-reference/returns/issue-an-explicit-refund-against-an-rma.md): Phase A canonical: refundReturn() extracted from postReturnFinancialSettlement. Routes by payment_method: - original/check/cash: calls processRefund (Stripe + GL via postRefundEntry) - store_credit: calls issueCreditMemo (DR sales_returns_allowances / CR customer_credits) State guard: must be re… - [List RMAs (return merchandise authorizations)](https://docs.arcuserp.com/api-reference/returns/list-rmas-return-merchandise-authorizations.md) - [List vendor returns](https://docs.arcuserp.com/api-reference/returns/list-vendor-returns.md) - [Mark vendor return as shipped to vendor](https://docs.arcuserp.com/api-reference/returns/mark-vendor-return-as-shipped-to-vendor.md) - [Receive items into holding inventory](https://docs.arcuserp.com/api-reference/returns/receive-items-into-holding-inventory.md): STATE authorized/expected -> received. Records inventory_transactions of type return_receive. - [Record vendor credit received for returned goods](https://docs.arcuserp.com/api-reference/returns/record-vendor-credit-received-for-returned-goods.md): Compound scope required -- returns:write AND purchasing:write. - [Retrieve a single RMA](https://docs.arcuserp.com/api-reference/returns/retrieve-a-single-rma.md) - [Retrieve a single vendor return](https://docs.arcuserp.com/api-reference/returns/retrieve-a-single-vendor-return.md) - [Spawn a vendor return from a customer RMA disposition](https://docs.arcuserp.com/api-reference/returns/spawn-a-vendor-return-from-a-customer-rma-disposition.md) - [Update RMA mutable fields (5-field allowlist)](https://docs.arcuserp.com/api-reference/returns/update-rma-mutable-fields-5-field-allowlist.md): PATCH allowlist (Rule 23): restocking_fee, inspection_required, vendor_rma_number, notes, metadata. Status fields must use action endpoints. refund_amount is written only by POST /v1/returns/{id}/refund. - [Update vendor return mutable fields (4-field allowlist)](https://docs.arcuserp.com/api-reference/returns/update-vendor-return-mutable-fields-4-field-allowlist.md) - [Cross-resource search (5-bucket)](https://docs.arcuserp.com/api-reference/search/cross-resource-search-5-bucket.md): Returns up to `limit` results per bucket across orders, products, accounts, invoices, and serial_numbers. Results are ranked by relevance. Use `GET /v1/search/{object}` for per-object deep search with cursor pagination. - [Per-object deep search with cursor pagination](https://docs.arcuserp.com/api-reference/search/per-object-deep-search-with-cursor-pagination.md): Deep search within a single resource type. Supports per-object filters and cursor pagination via `starting_after`. Valid objects: orders, products, accounts, invoices, serial_numbers, quotes, purchase_orders, returns, vendor_bills, payments, fulfillment_packages. - [Authentication](https://docs.arcuserp.com/authentication.md): API keys, scopes, and security features for the Arcus API. - [Bruno Collection](https://docs.arcuserp.com/bruno.md): Download the official Arcus ERP Bruno collection. Bruno is a fast, git-friendly alternative to Postman. - [Changelog](https://docs.arcuserp.com/changelog.md): A history of additions, deprecations, and breaking changes to the Arcus ERP API. - [Deprecation](https://docs.arcuserp.com/concepts/deprecation.md): How Arcus deprecates API features, what the Sunset header means, and how to migrate before end-of-life. - [Errors](https://docs.arcuserp.com/concepts/errors.md): Every Arcus API error uses a consistent JSON envelope. Here is the full taxonomy. - [Expand](https://docs.arcuserp.com/concepts/expand.md): Hydrate related resources inline using the ?expand[] query parameter -- the same Stripe-style pattern you already know. - [Idempotency](https://docs.arcuserp.com/concepts/idempotency.md): Use the Idempotency-Key header to safely retry failed requests without creating duplicates. - [Pagination](https://docs.arcuserp.com/concepts/pagination.md): Navigate large result sets with cursor-based pagination on all Arcus list endpoints. - [Rate Limits](https://docs.arcuserp.com/concepts/rate-limits.md): Per-key rate limits, response headers, and retry guidance for the Arcus API. - [Versioning](https://docs.arcuserp.com/concepts/versioning.md): Date-based API versioning lets you adopt breaking changes on your own schedule. - [Webhooks](https://docs.arcuserp.com/concepts/webhooks.md): Subscribe to real-time events from the Arcus API. Orders, payments, fulfillments, returns, and more. - [Error Handling](https://docs.arcuserp.com/guides/error-handling.md): Production-grade patterns for handling Arcus API errors, retries, and network failures. - [Your First Webhook](https://docs.arcuserp.com/guides/first-webhook.md): Register an endpoint, verify signatures, and handle your first live event in under 15 minutes. - [Managing API Keys](https://docs.arcuserp.com/guides/managing-api-keys.md): Create, scope, rotate, and revoke API keys in Settings > Developers. - [Migrating Data into Arcus](https://docs.arcuserp.com/guides/migration-from-versa.md): Import records from a legacy ERP, spreadsheet, or other source into Arcus via the public API. - [Insomnia Collection](https://docs.arcuserp.com/insomnia.md): Download the official Arcus ERP Insomnia collection for all API endpoints. - [Arcus ERP API](https://docs.arcuserp.com/introduction.md): The complete developer reference for the Arcus ERP public API. Every endpoint tested, built for wholesale distributors. - [Postman Collection](https://docs.arcuserp.com/postman.md): Download the official Arcus ERP Postman collection for every API endpoint. - [Quickstart](https://docs.arcuserp.com/quickstart.md): Send your first Arcus API request in under 5 minutes. - [Go SDK](https://docs.arcuserp.com/sdks/go.md): Official Go client for the Arcus ERP API. - [Python SDK](https://docs.arcuserp.com/sdks/python.md): Official Python client for the Arcus ERP API. - [TypeScript SDK](https://docs.arcuserp.com/sdks/typescript.md): Official TypeScript / Node.js client for the Arcus ERP API. - [1099 Vendors](https://docs.arcuserp.com/support/accounting/1099-vendors.md): Use 1099 Vendor Reporting to review flagged vendors, paid AP totals, W-9 status, tax-year readiness, recipient PDFs, and federal filing files. - [Account Ledger](https://docs.arcuserp.com/support/accounting/account-ledger.md): Account Ledger shows transaction history for one GL account at a time. Use it to explain a financial report balance, investigate a reconciliation variance, or trace how source workflows affected a specific account. - [AP & Bill Pay](https://docs.arcuserp.com/support/accounting/ap-bills.md): Accounts Payable is where Arcus tracks vendor bills, PO-linked receiving accruals, credits, outgoing payments, printable checks, and vendor reporting. Use this page as the map for the payables workflow, then open the focused guides for the exact job you need to complete. - [AR Management](https://docs.arcuserp.com/support/accounting/ar-management.md): Accounts Receivable shows what customers owe, which invoices are aging, where credits exist, and which accounts need collection follow-up or correction. - [Bank Deposits](https://docs.arcuserp.com/support/accounting/bank-deposits.md): Bank Deposits batch received checks and cash into a bank deposit. Use this page when the money has been received in Arcus, but still needs to move from undeposited funds into the cash account that matches the bank statement. - [Cash Registers](https://docs.arcuserp.com/support/accounting/cash-registers.md): Cash Registers track open drawer sessions, cash sales, cash in and out movements, card and check totals, close counts, stale sessions, and deposit handoff for front-counter payment workflows. - [Chart of Accounts](https://docs.arcuserp.com/support/accounting/chart-of-accounts.md): The chart of accounts is the list of GL accounts Arcus uses when it posts invoices, payments, inventory costs, vendor bills, bank activity, and manual journal entries. - [Check Register and AP Checks](https://docs.arcuserp.com/support/accounting/check-register.md): Use the Check Register to find vendor checks, print or reprint them, mark them cleared when they hit the bank, void bad checks, and review the bills and accounting activity tied to each check. - [Accounting Dashboard and Calendar](https://docs.arcuserp.com/support/accounting/dashboard-calendar.md): Use the Accounting Dashboard for daily financial triage, then use the Calendar to review due dates, expected cash movement, period close work, recurring items, leases, and fixed asset events on a shared schedule. - [Disputes and Chargebacks](https://docs.arcuserp.com/support/accounting/disputes.md): Disputes and Chargebacks is the accounting queue for card disputes, marketplace claims, and platform chargebacks. Use it to find deadlines, gather evidence, and track the financial outcome. - [Fixed Assets](https://docs.arcuserp.com/support/accounting/fixed-assets.md): Fixed Assets tracks capitalized property, equipment, vehicles, and other long-lived assets. Use it to create assets, place them in service, run depreciation, record impairments, and dispose of assets with an audit trail. - [GL Reconciliation and Integrity](https://docs.arcuserp.com/support/accounting/gl-reconciliation-integrity.md): Use GL Reconciliation to compare control-account balances to the operational subledgers behind them. Use GL Integrity to confirm journal entries stay balanced across nightly, manual, and period-close checks. - [GRNI and PO-Linked Vendor Bills](https://docs.arcuserp.com/support/accounting/grni-po-bills.md): Use the GRNI Report to find purchase orders that have been received but have not been fully billed, then create linked vendor bills for AP review. - [Journal Entries](https://docs.arcuserp.com/support/accounting/journal-entries.md): Journal entries are the accounting records behind Arcus activity. Most entries are posted automatically by orders, invoices, payments, inventory, purchasing, AP, returns, bank reconciliation, and settings-driven accounting workflows. - [Leases](https://docs.arcuserp.com/support/accounting/leases.md): Leases tracks ASC 842 right-of-use assets and lease liabilities. Use it to create lease records, commence leases, post monthly entries, record payments, modify terms, terminate leases, and support 1099 or check workflows tied to the lessor. - [Pay Bills and Print Checks](https://docs.arcuserp.com/support/accounting/pay-bills.md): Use Pay Bills to select open vendor bills, apply vendor credits, record outgoing payments, print checks, or generate a NACHA file for bank upload. - [Marketplace Payouts](https://docs.arcuserp.com/support/accounting/payouts.md): Marketplace Payouts tracks platform deposits, fees, and clearing-account activity for channels such as Shopify, Amazon, eBay, and Stripe. Use it to confirm what is expected, what posted, and what needs accounting review. - [Period Close](https://docs.arcuserp.com/support/accounting/period-close.md): Period Close locks an accounting date range so backdated postings cannot quietly change prior financial results. Use it after AP, AR, banking, payouts, journal entries, and reports have been reviewed for the period. - [Bank Reconciliation](https://docs.arcuserp.com/support/accounting/reconciliation.md): Bank reconciliation matches bank activity to cash entries in Arcus so your bank statement and general ledger agree. Use it at period close or whenever cash activity needs a formal review. - [Recurring Bills](https://docs.arcuserp.com/support/accounting/recurring-bills.md): Use Recurring Bills for vendor expenses that should generate on a predictable schedule, such as rent, subscriptions, retainers, insurance, and routine services. - [Financial Reports](https://docs.arcuserp.com/support/accounting/reports.md): Financial Reports turn posted journal entries into trial balance, balance sheet, income statement, and cash flow views for accounting review and period close. - [Vendor Credits](https://docs.arcuserp.com/support/accounting/vendor-credits.md): Use Vendor Credits to track money a vendor owes back to your business, then apply that credit during Pay Bills to reduce the cash amount paid. - [Write a Check](https://docs.arcuserp.com/support/accounting/write-check.md): Use Write a Check for one-time vendor payments that do not start from a purchase order or an existing AP bill. - [Contacts and Addresses](https://docs.arcuserp.com/support/accounts/contacts.md): Contacts tell Arcus who works with the account. Addresses tell orders, invoices, tax, shipping, and fulfillment where work should go. Keep both current before creating customer documents or labels. - [Account Management](https://docs.arcuserp.com/support/accounts/management.md): Accounts are the customer, vendor, and lead records that connect orders, invoices, payments, credits, purchase work, communications, and account-level defaults. - [Payment Methods](https://docs.arcuserp.com/support/accounts/payment-methods.md): Payment Methods stores customer cards and bank accounts for future payments, while Payment Health helps teams find expired, unverified, or failing methods before an order gets blocked. - [Email Log and Account Communications](https://docs.arcuserp.com/support/communications/email-log.md): Use Communications to review emails sent by Arcus, preview the message body, resend when needed, and manage account-level email preferences. - [Messaging](https://docs.arcuserp.com/support/communications/messaging.md): Use Messaging for internal team conversations, direct messages, channel updates, and record-linked discussion without leaving Arcus. - [Portal Documents and Email Preferences](https://docs.arcuserp.com/support/customer-portal/documents-preferences.md): Help customers download customer-safe documents and control optional email preferences from the portal. - [Portal Email Preference Links and Unsubscribe](https://docs.arcuserp.com/support/customer-portal/email-preferences-unsubscribe.md): Help customers understand email footer links, preference tokens, unsubscribe choices, and why required transactional emails may still be sent. - [Portal Invoices and Shipments](https://docs.arcuserp.com/support/customer-portal/invoices-shipments.md): Help customers review invoice balances, download invoice PDFs, pay eligible invoices, and track shipments from the customer portal. - [Customer Portal Overview](https://docs.arcuserp.com/support/customer-portal/overview.md): Give customers a secure place to review orders, quotes, shipments, invoices, payments, addresses, payment methods, documents, and profile details. - [Portal Payments and Payment Methods](https://docs.arcuserp.com/support/customer-portal/payments-methods.md): Let customers review payment history, start eligible payments, and review saved payment methods from the customer portal. - [Portal Profile and Addresses](https://docs.arcuserp.com/support/customer-portal/profile-addresses.md): Help customers review their portal profile, update supported account fields, manage billing and shipping addresses, and understand what still requires staff. - [Public Order, Payment, and Quote Links](https://docs.arcuserp.com/support/customer-portal/public-links.md): Use tokenized public links when a customer needs to view an order, pay a balance, track a shipment, or approve a quote without logging in. - [Portal Quotes and Quote Approval](https://docs.arcuserp.com/support/customer-portal/quotes-approval.md): Help customers review quote history, open quote detail, and approve eligible quotes from the customer portal. - [Portal Returns and RMA Links](https://docs.arcuserp.com/support/customer-portal/returns-rma.md): Let customers request eligible returns from a secure public RMA link, then track authorized RMAs from the customer portal. - [Portal Sign In and Registration](https://docs.arcuserp.com/support/customer-portal/sign-in-registration.md): Help customers sign in to the portal with email and account number, request a one-time code or magic link, register a matching account, and recover from expired portal links. - [Document Manager](https://docs.arcuserp.com/support/documents/manager.md): Document Manager is the searchable file library for generated PDFs, shipping labels, tax certificates, reports, product images, account attachments, receipts, and manually uploaded files. Use it when you need to find a document, confirm where it came from, update metadata, download a copy, or add a… - [Batch Packing](https://docs.arcuserp.com/support/fulfillment/batch-packing.md): Use batch packing after a picking wave is created to open each order in the wave, verify package contents, and complete the final packing and label steps in a controlled order. - [Shipping Labels](https://docs.arcuserp.com/support/fulfillment/labels.md): Use shipping labels to rate parcel shipments, purchase the selected carrier service, print the label, track the package, and handle voids when a package has to be corrected before carrier handoff. - [Pack with Arcus](https://docs.arcuserp.com/support/fulfillment/packing.md): Use Arcus package workflows and PackPilot suggestions to turn order items into accurate packages before labels, pickup, or fulfillment are completed. - [Printing Setup (PrintNode)](https://docs.arcuserp.com/support/fulfillment/printnode.md): Configure PrintNode so Arcus can send shipping labels, packing slips, pick lists, invoices, and packet documents directly to the right printer. - [Shipments and Rate Preview](https://docs.arcuserp.com/support/fulfillment/shipments-rate-preview.md): Use Shipments to track packages after labels or tracking numbers exist, and use Rate Shop Preview when a customer needs a carrier estimate before anyone buys a label. - [Fulfillment Station](https://docs.arcuserp.com/support/fulfillment/station.md): Use the Fulfillment Station to pick open work, review packages, print labels or pick lists, and mark packed packages fulfilled from one warehouse-focused queue. - [Wave Picking](https://docs.arcuserp.com/support/fulfillment/wave-picking.md): Create a picking wave when the warehouse needs to group multiple open orders into one controlled picking batch before packing, labeling, or customer pickup. - [Navigation Overview](https://docs.arcuserp.com/support/getting-started/navigation.md): Arcus uses a persistent sidebar, a top utility bar, searchable lists, and consistent detail pages so users can move from daily work to supporting records without losing context. - [Quick Start Guide](https://docs.arcuserp.com/support/getting-started/quick-start.md): Use this guide to understand the minimum path through Arcus: confirm settings, add products and accounts, create an order, fulfill it, invoice it, and collect payment. - [Welcome to Arcus ERP](https://docs.arcuserp.com/support/getting-started/welcome.md): Arcus is an end-to-end enterprise resource planning platform built for wholesale and distribution businesses. This guide will walk you through what Arcus is, how it's organized, and where to go for help. - [Arcus ERP Help Center](https://docs.arcuserp.com/support/index.md): Search operational guides for orders, inventory, fulfillment, purchasing, accounting, settings, integrations, and the customer portal. - [Connector Dashboard](https://docs.arcuserp.com/support/integrations/connector-dashboard.md): The Integrations dashboard is the control room for external services. Use it to review connector mode, connection health, masked credentials, setup guides, sync logs, and safe reconnect or disconnect actions before relying on a workflow in production. - [Marketplace Connectors](https://docs.arcuserp.com/support/integrations/marketplace-connectors.md): Marketplace connectors bring external orders, fulfillments, tracking updates, listings, and sync history into Arcus. Use this guide for Shopify, Amazon, eBay, and other marketplace-style connections managed from Integrations. - [Shippo and PrintNode](https://docs.arcuserp.com/support/integrations/shippo-printnode.md): Shippo powers rate shopping, labels, tracking, and label void/refund workflows. PrintNode connects Arcus to printers for labels, packing slips, pick lists, and warehouse documents. - [Stripe Payments](https://docs.arcuserp.com/support/integrations/stripe-payments.md): Stripe powers card collection, saved payment methods, some payment failures, refunds, disputes, and payout-related accounting context. Configure Stripe carefully because it controls real money workflows when the connector is in production mode. - [Inventory Adjustments](https://docs.arcuserp.com/support/inventory/adjustments.md): Use Inventory Adjustments to correct stock after a physical count, damage review, writeoff, or found-stock check. - [Cycle Counts](https://docs.arcuserp.com/support/inventory/cycle-counts.md): Use cycle counts to verify physical stock by location, bin, zone, or product. Counts create an auditable review step before variances are applied to inventory. - [Inventory Overview](https://docs.arcuserp.com/support/inventory/overview.md): Use Inventory Overview to monitor stock health, review location balances, catch low-stock issues, and spot inventory value anomalies. - [Receive Inventory](https://docs.arcuserp.com/support/inventory/receive.md): Use Receive Inventory for standalone stock receipts such as found stock, opening balances, or non-PO inbound inventory. - [Supply & Demand](https://docs.arcuserp.com/support/inventory/supply-demand.md): Use Supply & Demand to find replenishment pressure, projected stockouts, reorder timing, and demand signals for stocked products. - [Inventory Transactions](https://docs.arcuserp.com/support/inventory/transactions.md): Use Inventory Transactions to audit how inventory moved, why balances changed, and which FIFO cost layers were used. - [Inventory Transfers](https://docs.arcuserp.com/support/inventory/transfers.md): Use transfers when stock is physically moving between locations, entities, or an outside fulfillment destination. Transfers keep the movement separate from count corrections, receiving, and fulfillment. - [Warehouse Overview](https://docs.arcuserp.com/support/inventory/warehouse-overview.md): The Warehouse workspace is where teams organize physical storage, run picking work, receive inbound stock, inspect returned items, move inventory between bins, count stock, and transfer inventory between locations or entities. - [Invoice Management](https://docs.arcuserp.com/support/invoices/management.md): Use Invoices to review customer invoices, post drafts, send invoice emails, download PDFs, record payment, correct mistakes, and void invoices with an audit trail. - [Bills of Materials](https://docs.arcuserp.com/support/manufacturing/boms.md): Bills of Materials define how Arcus builds, disassembles, or converts products. A BOM controls the output product, component quantities, dispositions, cost rollup, availability, default revision, and the work orders that can be created from it. - [MRP Planning](https://docs.arcuserp.com/support/manufacturing/mrp-planning.md): MRP Planning analyzes demand, supply, active BOMs, component availability, safety stock, open work orders, and purchase needs. It suggests work orders for manufactured products and purchase orders for parts that must be bought. - [Manufacturing Reports](https://docs.arcuserp.com/support/manufacturing/reports.md): Manufacturing Reports help supervisors and accounting review open work, aging WIP, estimated-versus-actual cost, build history, and component usage after work orders move through the shop. - [Work Orders](https://docs.arcuserp.com/support/manufacturing/work-orders.md): Work Orders turn an active BOM into shop-floor work. They reserve the intended build, track quantity, location, priority, dates, material issue, completion, cancellation, and the inventory and accounting results of manufacturing. - [Creating Orders](https://docs.arcuserp.com/support/orders/creating-orders.md): Create a sales order, choose the customer account, add products, review pricing and totals, then move the order into payment and fulfillment. - [Order Fulfillment](https://docs.arcuserp.com/support/orders/fulfillment.md): Move a sales order from confirmed work to packed, shipped, picked up, or partially fulfilled without losing inventory, label, serial, or order history. - [Managing Line Items](https://docs.arcuserp.com/support/orders/line-items.md): Line items decide what the customer buys, how pricing is calculated, what inventory is reserved, what fulfillment must pick, and what accounting recognizes later. Make line changes before payment, invoice, and fulfillment locks whenever possible. - [Order Lifecycle and Safe Changes](https://docs.arcuserp.com/support/orders/order-lifecycle.md): Order status controls what can still be changed safely. Use this guide before editing, cancelling, refunding, fulfilling, or correcting an order that already has operational history. - [Packing and Shipping](https://docs.arcuserp.com/support/orders/packing-shipping.md): Prepare an order for carrier shipment, local delivery, freight, or pickup by confirming the order, packing the right items, handling labels, and completing fulfillment only after the physical work is done. - [Record Customer Payments](https://docs.arcuserp.com/support/orders/record-payment.md): Use the order payment screen to collect or record customer money by card, ACH, check, cash, wire, external payment, payment terms, or available account credit. - [Bin Locations](https://docs.arcuserp.com/support/products/bin-locations.md): Map warehouse stock to physical places such as aisles, racks, shelves, receiving areas, staging lanes, picking zones, shipping zones, overflow, and quarantine. - [Inventory Management](https://docs.arcuserp.com/support/products/inventory.md): Inventory in Arcus is product-specific, location-specific, and cost-aware. Use this guide to understand how product records connect to stock balances, receiving, adjustments, transfers, demand planning, fulfillment, and FIFO cost history. - [Kits and Assemblies](https://docs.arcuserp.com/support/products/kits.md): Sell one bundled product while Arcus tracks the component products that determine availability, cost, picking, fulfillment, and returns. - [Marketplace Listings and Mapping](https://docs.arcuserp.com/support/products/marketplace-listings.md): Connect Arcus products and variants to Shopify, Amazon, eBay, and other marketplace listings so imported orders, inventory sync, price sync, and listing performance reports point at the correct canonical item. - [Pricing Rules](https://docs.arcuserp.com/support/products/pricing.md): Configure product list price, cost, customer pricing levels, account-specific prices, quantity breaks, and multiplier policies so order entry can choose the right sell rate. - [Product Types and Costing](https://docs.arcuserp.com/support/products/product-types-costing.md): Understand what product type changes affect, when Arcus blocks them, how product inventory value is calculated, and when Recost should be used to repair a bad value. - [Serial Numbers](https://docs.arcuserp.com/support/products/serial-numbers.md): Track individual units of serialized products through receiving, fulfillment, returns, warranty review, disposition, quarantine, and audit lookup. - [Product Setup](https://docs.arcuserp.com/support/products/setup.md): Create and maintain the product records that drive order entry, pricing, inventory, purchasing, fulfillment, shipping, tax, and customer-facing listings. - [Product Variants](https://docs.arcuserp.com/support/products/variants.md): Use variant parents for products where customers choose options, such as size, color, lid, model, or configuration, while each child variant carries the stock, price, purchasing, shipping, and kit behavior used by Arcus. - [Create and Manage Purchase Orders](https://docs.arcuserp.com/support/purchasing/create-manage-pos.md): Use purchase orders to request inventory from vendors, receive what arrives, and keep accounting aligned with the vendor bill. - [Approve, Reject, or Withdraw a Purchase Order](https://docs.arcuserp.com/support/purchasing/po-approvals.md): Use PO approvals to hold large or sensitive purchases for manager review before the PO can be sent to a vendor or received into inventory. - [Purchase to Pay](https://docs.arcuserp.com/support/purchasing/purchase-to-pay.md): Run the full buying workflow from purchase request to vendor payment: create the PO, receive inventory, match the vendor bill, pay the bill, and keep accounting tied back to what actually arrived. - [Reorder Report](https://docs.arcuserp.com/support/purchasing/reorder-report.md): Use the Reorder Report to find products below reorder point and generate draft purchase orders grouped by vendor. - [Analytics Dashboard](https://docs.arcuserp.com/support/reports/analytics.md): Analytics turns operational data into trend views. Use it for sales direction, product performance, order status mix, fulfillment rate, and links to deeper operational reports. - [Dashboard Overview](https://docs.arcuserp.com/support/reports/dashboard.md): The Dashboard is the daily command center for Arcus. It combines revenue, order, inventory, AR, fulfillment, payment, manufacturing, activity, alerts, recent orders, top products, and active-user context in one place. - [Freight Classification Audit](https://docs.arcuserp.com/support/reports/freight-classification-audit.md): Freight Classification Audit explains why orders were treated as parcel or freight. Use it to review shipping rules, pallet math, freight-class decisions, and manual overrides. - [Listings Performance](https://docs.arcuserp.com/support/reports/listings-performance.md): Listings Performance shows sales activity by marketplace listing. Use it to find channel winners, zero-sales listings, stale listings, and product-mapping issues. - [Notifications](https://docs.arcuserp.com/support/reports/notifications.md): Notifications collect important work events from orders, payments, fulfillment, returns, inventory, purchasing, admin, system activity, and mentions. Use them as a personal work queue and tune preferences so important items reach you. - [Customer Returns](https://docs.arcuserp.com/support/returns/customer-returns.md): Use Returns to create RMAs, receive returned items, inspect condition, choose what happens to the stock, and complete the customer settlement. - [Vendor Returns](https://docs.arcuserp.com/support/returns/vendor-returns.md): Use Vendor Returns when returned or defective stock needs to go back to a supplier for credit, warranty review, or replacement inventory. - [Accounting Automation Settings](https://docs.arcuserp.com/support/settings/accounting-automation.md): Accounting Automation settings control how Arcus creates fixed assets, routes lease payments, and categorizes bank or vendor activity. These are finance-owned settings because they affect GL accounts, depreciation, AP payments, check history, 1099 reporting, and reconciliation work. - [Approval Workflows and Automation](https://docs.arcuserp.com/support/settings/approval-workflows.md): Approval Workflows controls when Arcus pauses high-impact work for review and when workflow automation should run after orders, purchase orders, bills, shipments, and returns move forward. - [Audit Log and Compliance](https://docs.arcuserp.com/support/settings/audit-compliance.md): The Audit Log shows security, settings, data, and workflow activity for the active entity. Use it to answer who did what, when it happened, whether the action succeeded, and which resource was affected. - [Company Setup](https://docs.arcuserp.com/support/settings/company-setup.md): Company settings control the business identity, environment, branding, and physical locations that other Arcus workflows rely on. Review these settings before going live, adding a warehouse, changing labels, or turning on customer-facing documents. - [Documents and Email Settings](https://docs.arcuserp.com/support/settings/documents-email.md): Documents and Email settings control customer-facing PDFs, document numbering, transactional email identity, notification preferences, editable email templates, and quote expiration behavior. - [Entity Configuration](https://docs.arcuserp.com/support/settings/entity.md): Entity configuration controls the business identity, locations, default operating context, and document identity for the company you are working in. Treat these fields as shared operational defaults, not just profile information. - [Integrations](https://docs.arcuserp.com/support/settings/integrations.md): Integrations connect Arcus to outside services for payments, tax, shipping, printing, marketplaces, phone systems, and bank feeds. Review status, mode, test actions, logs, and setup ownership before depending on a connector in production. - [Organization, Entities, and API Access](https://docs.arcuserp.com/support/settings/organization-access.md): Organization administration controls the account container around your Arcus entities. Use it to review plan limits, create sandbox or production entities, manage entity status, and control personal API keys used by scripts and integrations. - [Settings Overview](https://docs.arcuserp.com/support/settings/overview.md): Arcus settings are split by responsibility. Entity Settings control how the business runs. Organization pages control access across entities. Profile controls your own login and security setup. - [Payments and Checks Settings](https://docs.arcuserp.com/support/settings/payments-checks.md): Payments and Checks settings control customer payment behavior, net terms, card fee rules, ACH safety holds, AP check printing, and deposit slip layout. These settings affect sales, fulfillment, accounts receivable, accounts payable, bank reconciliation, and customer-facing payment expectations. - [Products and Pricing Settings](https://docs.arcuserp.com/support/settings/products-pricing.md): Products and Pricing settings define the shared lists that product, account, order, and promotion workflows depend on. Use them to manage pricing levels, product categories, units of measure, and discounts or fees before operators start building orders at scale. - [Profile and Security](https://docs.arcuserp.com/support/settings/profile-security.md): Use your profile page to update personal details, set a quick-unlock PIN, manage MFA, add security keys, and review your entity memberships. - [Purchasing Defaults and Payment Terms](https://docs.arcuserp.com/support/settings/purchasing-defaults.md): Purchasing settings control the fallback lead time used by buying tools, the default expiration policy for vendor credits, and how Arcus handles cost differences between received inventory and the vendor bill. Payment Terms define the net terms available on accounts, channels, orders, and invoices. - [Sales Channels and Customer Portal](https://docs.arcuserp.com/support/settings/sales-channels-portal.md): Sales Channels identify where orders come from and can supply default pricing, payment terms, and origin type. Customer Portal settings control what customers can access when they log in or open shared order, invoice, payment, tracking, quote, and return links. - [Shipping and Fulfillment Setup](https://docs.arcuserp.com/support/settings/shipping.md): Use these settings to control Shippo rate shopping, carrier defaults, freight routing, PackPilot suggestions, warehouse scanners, and direct printing for labels and warehouse documents. - [System Operations Settings](https://docs.arcuserp.com/support/settings/system-operations.md): System Operations settings control day-to-day operator tools: printing, sidebar module visibility, and tags. Use these settings to keep workstations printing correctly, simplify navigation, and label records in ways that can guide or block downstream workflows. - [Tax and AvaTax Operations](https://docs.arcuserp.com/support/settings/tax-avatax.md): Tax settings control how Arcus validates addresses, calculates sales tax, handles exemptions, records marketplace facilitator tax, commits final transactions to AvaTax, and adjusts tax during returns or voids. - [User Management](https://docs.arcuserp.com/support/settings/users.md): User management controls who can access Arcus, which entities they can enter, what role they have in each entity, whether they are limited to certain locations, and how admins respond to access or MFA problems. ## OpenAPI Specs - [openapi](https://docs.arcuserp.com/openapi.yaml)