Carrier import
Import shipment and purchase-cost files received from carriers and normalize their operational data.
Custom business software · Logistics · Billing
RFC is a custom application for companies whose business includes managing and reselling national and international shipping services. It imports carrier shipment reports, associates each shipment with the correct customer and selling price list, calculates accessory charges and prepares outgoing billing from large monthly datasets.
The application was built around the operational reality of logistics companies working with multiple carriers such as SDA, DHL, FedEx, UPS, BRT, GLS and TNT. Each provider can deliver hundreds or thousands of shipment rows using different service names, formats and exceptions. RFC turns those heterogeneous files into a controlled billing workflow.
Operational overview
Once the initial onboarding and price-list configuration are complete, the monthly process becomes repeatable: carrier files are imported, customer codes are matched, the appropriate selling tariff is selected, shipment and accessory charges are calculated and the resulting movements are grouped into customer invoices. The goal is to reduce work that would otherwise require many hours of spreadsheet manipulation and manual checking.
Import shipment and purchase-cost files received from carriers and normalize their operational data.
Match the customer code and map carrier service names or aliases to the correct internal service.
Apply customer-specific price lists by service, destination, weight and accessory charges.
Generate customer billing for a selected period and analyse margin shipment by shipment.
Initial configuration
The Italian application documentation describes the following setup sequence before monthly invoice processing starts.
From User → User management, an administrator creates a new user and selects the Supplier / carrier type. Once saved, the supplier appears both in the general user list and in the dedicated carrier-management section.
Carrier records can expose provider-specific import options. One documented example is the SDA format: when enabled, the purchase-invoice spreadsheet also requires importo_esubero and importo_reso. For normal export shipments, freight is combined with the excess amount; for a return/import shipment, the return amount is used according to that format.
To understand which selling tariff must be applied to a shipment, RFC maintains canonical service names and aliases for each carrier. Aliases can be added from Price lists → Price-list names or managed directly from the supplier record.
One service name can be associated with multiple customer selling price lists, while the same service can have several aliases so that different carrier naming conventions are recognized during import.
Customers are created from the same user-management area by selecting the Customer type. After saving, customer-specific options become available and the account can be used when matching imported shipment rows and assigning selling tariffs.
Each customer can have multiple selling price lists. Existing lists can be viewed from the customer record or from the general Price lists section and filtered by customer.
When a new selling price list is created, the customer is selected together with its validity period and carrier. The service-name selector is then limited to the services configured for that carrier. Zone and weight files can be uploaded immediately, and accessory charges can be configured after saving.
Monthly purchase-invoice import
Each month a carrier can provide an Excel file containing all shipments performed. RFC creates a purchase invoice / carrier batch and imports the spreadsheet so that every shipment row can be processed in the next steps.
The first row is a header. The documented format includes the shipment identifier LDV, shipping date, order number, number of parcels, weight, service, customer code/name, import/return flag, sender and recipient details, origin/destination city, province, postal code and country, freight amount and the related package/weight information. Column order is flexible except that the first column must be LDV, used as the unique shipment code.
For the SDA-specific format, two additional columns are required: importo_esubero and importo_reso. Additional optional columns can carry accessory charges. Header matching is case-insensitive.
The default service direction is export/shipment. During an export-file import, a non-empty import/reso value marks that row as an import/return shipment.
The raw alias strings below are intentionally preserved because they correspond to headings received from different carrier files.
Purchase-invoice processing
Processing a carrier purchase invoice prepares the data required for outgoing customer invoices. For every shipment, the system identifies the customer, resolves the carrier service to the relevant selling price list, verifies destination and weight coverage, and then calculates the customer-side shipment and accessory charges.
The Recalculate customers action matches the customer code contained in each imported shipment row with the customer master data. Missing or incorrect codes are reported so an operator can correct the data and repeat the calculation.
After customers are resolved, Assign selling price lists applies the configured tariff. Problems are reported explicitly: for example an unknown service name/alias, or a valid service whose destination or weight is outside the configured tariff.
Large files are processed in batches of 500 shipments. The action can be repeated until completion. A purchase invoice can also be reset and recalculated, except for shipments that have already been included in an outgoing sales invoice; those rows remain frozen because they have already been billed.
Some shipments cannot be matched automatically because of an incorrect customer code, a weight outside the price-list range, an unknown service name or another exception. The operator can edit the individual shipment and repeat tariff assignment, or switch that shipment to manual mode and apply a specific amount / markup without changing the standard tariff configuration for the other rows.
Outgoing billing
Once shipment rows have been processed, creating a customer sales invoice becomes a controlled aggregation step. RFC brings together the relevant shipments for the selected period, with the appropriate selling amounts and accessory charges already calculated.
The system also calculates the net margin for each individual shipment. This makes it easier to identify profitable and loss-making services and provides concrete data when customer tariffs need to be renegotiated. In addition to the on-screen view, the original workflow provides two Excel exports: one intended for customer invoicing and one internal version containing additional operational information.
Why this project matters
The difficult part is not displaying a shipment table. It is dealing with different carrier formats, service aliases, customer-specific pricing rules, destination and weight matrices, accessory charges, exceptions, correction workflows and billing periods in a repeatable process that operators can audit and trust.