Creating Inventory Transfer Requests
Inventory transfer requests are formal records that document the movement of stock from one business location to another. In AccuArk, transfer requests are linked directly to the invoices that drive the need for the transfer, creating a clear connection between customer orders and internal stock movements. This guide explains how to create transfer requests, what information each request contains, the lifecycle of a transfer request, how to view and manage pending requests, and the benefits of using transfer requests within your invoice workflow.
What Transfer Requests Are
A transfer request is a structured record stored in the inventory_transfer_requests database table that represents a request to move a specific quantity of a specific item from a source location to a destination location. Unlike informal stock movements (such as manually adjusting quantities at two locations), transfer requests provide a documented, trackable process that all parties can reference.
Each transfer request is tied to a specific invoice. This linkage means you can always trace why a transfer happened — it was needed to fulfill a particular customer order. This traceability is valuable for inventory audits, dispute resolution, and understanding stock movement patterns across your locations.
How to Create a Transfer Request
Transfer requests are created through the CreateTransferRequestAsync method, which accepts the following parameters:
- Item ID — The inventory item that needs to be transferred. This identifies exactly which product or material is being moved.
- Quantity — The number of units to transfer. This should match the shortfall at the destination location or the amount recommended by the transfer suggestion.
- Source Location ID — The location where the stock currently resides and will be shipped from. This is typically the location identified by the multi-location fulfillment service as having available stock.
- Destination Location ID — The location where the stock is needed. This is usually the location associated with the invoice that triggered the transfer need.
- Invoice ID — The invoice that is driving the need for this transfer. Linking the transfer to the invoice creates the traceability chain from customer order to stock movement.
- Requested By User ID — The user who is initiating the transfer request. This records who made the decision to transfer stock and provides accountability.
- Notes — An optional free-text field for any additional context about the transfer. Common uses include explaining the urgency, referencing a customer conversation, or noting special handling instructions.
When a transfer request is created, it is stored with all of these details along with a timestamp and an initial status of pending.
Transfer Request Fields in Detail
Each transfer request record contains the following fields:
- Item Being Transferred — The specific inventory item, identified by its item ID. The item name and SKU can be looked up from the inventory system for display purposes.
- Quantity to Transfer — The exact number of units requested. This is a positive integer representing the physical count of items to be moved.
- Source Location — Where the stock currently is. The source location's staff will see this request and are responsible for picking, packing, and shipping the items.
- Destination Location — Where the stock needs to go. The destination location's staff will receive the shipment and confirm receipt.
- Associated Invoice — The customer order that created the need for this transfer. Staff at both locations can reference the invoice to understand the business context.
- Requested By — The user who created the request. This provides an audit trail and a point of contact if the source location has questions about the transfer.
- Notes and Reason — Any additional context provided at the time of creation. This might include delivery deadlines, customer preferences, or special packaging requirements.
- Status — The current state of the request in its lifecycle (see below).
- Created Timestamp — When the request was originally created.
Transfer Request Lifecycle
Transfer requests follow a defined lifecycle that ensures both the source and destination locations are coordinated:
1. Pending
When a transfer request is first created, it enters the pending state. The request is visible to staff at the source location through the GetPendingRequestsForLocationAsync method, which returns all pending transfer requests where their location is the source. This gives the source location a queue of outbound transfer requests that need attention.
During the pending state, the source location staff review the request details, verify that the requested stock is physically available in their inventory, and prepare the items for shipment or internal transport.
2. Processing
Once the source location begins working on the transfer, the request moves to a processing state. This indicates that the staff have acknowledged the request and are actively picking, packing, or preparing the items for transport.
During processing, the source location may update the request with shipment tracking information, expected delivery dates, or notes about any issues encountered (such as finding fewer units than expected during the physical pick).
3. In Transit
After the items have been shipped or dispatched from the source location, the request moves to an in-transit state. This signals to the destination location that the stock is on its way and provides visibility into the expected arrival.
4. Received
When the destination location physically receives the transferred stock, they confirm receipt and the request moves to a received state. At this point, the inventory quantities at both locations are updated — the source location's stock decreases and the destination location's stock increases by the transferred amount.
Confirmation of receipt closes the transfer request and completes the lifecycle. The request remains in the system as a permanent record for audit and reporting purposes.
Viewing Requests for an Invoice
The GetTransferRequestsByInvoiceAsync method retrieves all transfer requests associated with a specific invoice. This is useful when reviewing an invoice to understand what stock movements are pending or have been completed to fulfill the order.
The invoice view shows each transfer request with its current status, source and destination locations, item details, and quantity. Staff can see at a glance whether all required transfers have been completed or if some are still pending.
This per-invoice view is particularly valuable for customer service. If a customer asks about the status of their order, staff can check the invoice's transfer requests to see whether the needed stock has arrived at the fulfillment location or is still in transit.
Managing Pending Requests
Source locations can view all of their pending inbound transfer demands through the GetPendingRequestsForLocationAsync method. This provides a centralized queue of all transfer requests where their location is the designated source.
The pending requests queue allows location managers to:
- Prioritize transfers based on urgency, customer importance, or delivery deadlines noted in the request.
- Batch transfers when multiple requests from the same destination location can be combined into a single shipment.
- Identify conflicts when multiple requests compete for the same limited stock, allowing the manager to allocate available units based on business priority.
Integration with the Invoice Workflow
Transfer requests integrate seamlessly with the broader invoice workflow. When an invoice has items that need stock from another location, the typical flow is:
- The invoice identifies items with insufficient local stock (shown as "Need to Order" status).
- The multi-location fulfillment service checks availability across all locations.
- A transfer suggestion identifies the best source location.
- A transfer request is created, linking the stock movement to the invoice.
- The source location processes and ships the transfer.
- The destination location receives and confirms the stock.
- The invoice can proceed through its remaining workflow steps with the stock now available locally.
This end-to-end integration ensures that no step is missed, every movement is documented, and the invoice workflow can track whether its fulfillment dependencies have been met.
Benefits
- Audit trail — Every inter-location stock movement is recorded with who requested it, when, why, and the associated customer order.
- Source location visibility — Locations can see incoming demands on their stock before the items are physically picked, allowing better resource planning.
- Direct order linkage — Transfers are tied to specific customer orders, making it easy to trace the business reason behind every stock movement.
- Coordination between locations — The lifecycle states provide a shared language for communicating transfer progress between source and destination teams.
- Accountability — The requested-by field and timestamps create a clear record of decisions for management review.
What to Read Next
- Multi-Location Inventory Fulfillment — Understand how the fulfillment service identifies available stock and suggests transfers.
- Setting Up Customer Credit Limits — Configure credit limits to manage customer outstanding balances during order processing.
- How Credit Limit Enforcement Works — Learn how credit checks interact with the invoice save and submit process.