Pro
Most popularVolume pricing
illustrativepay for labels, not for seats
Shipping cost allocation works when every label carries the key you allocate by. GoatLabels writes each USPS, UPS, FedEx, and DHL label to a dated ledger line with your reference, so finance can pivot cost by customer, order, job, or cost center. It is $0 a month on Free or $40 flat on Pro, and it does not post to your ERP or accounting system for you.
USPS, UPS, FedEx, and DHL labels are bought from one account, so parcel cost lands in one dated ledger instead of four invoice formats.
Each label debits the quoted amount from a prepaid wallet to a ledger entry that carries the customer, order, job, or cost center you sent.
Parcel cost allocation works one of four ways: from a reference-carrying label ledger, from carrier invoices keyed into a spreadsheet, through a parcel audit or spend platform, or as a freight accrual inside the ERP. GoatLabels is the first: the key is attached when the label is bought. The table shows where each method gets its key and what it leaves for you to do.
Updated
| GoatLabels | Carrier invoices in a spreadsheet | Parcel audit or spend platform | ERP freight accrual | |
|---|---|---|---|---|
| Where the allocation key comes from | The reference you send with each label: a customer, order, job, or cost center code. It is stored on the ledger line. | Whatever reference fields the shipper filled in, matched by tracking number to your own order list. | Carrier invoice data, mapped to your codes by rules set up in the platform. | The sales order or shipment record already in the ERP. |
| When cost is known | At purchase. The quoted amount is debited from the prepaid wallet and dated that day. | When each carrier invoice arrives, on each carrier's billing cycle. | After invoices are loaded and processed by the platform. | Estimated at shipment, then trued up when the carrier invoice is matched. |
| Later carrier adjustments | A re-weigh adjustment posts to the same ledger as its own line with the same reference. | Appear on a later invoice and must be traced back to the original shipment by hand. | Varies by vendor; check how adjustments are reported and tied to your codes. | Booked as a variance against the accrual when the invoice is matched. |
| Posting to the books | Manual. Export the ledger, pivot or join by reference, then post a journal or rebill. No automatic posting and no GL coding rules. | Manual. The spreadsheet is the working paper for the journal entry. | Varies by vendor. Ask whether GL-coded exports or ERP posting are included. | Inside the ERP. Microsoft documents Dynamics 365 adding the returned parcel rate to the sales order as a miscellaneous charge. |
| Separate balances per unit | No. One wallet and one ledger; there are no sub-accounts. Units are separated by reference only. | Only if each unit holds its own carrier account numbers. | Depends on how your carrier accounts are structured. | Handled by the ERP's own entities and dimensions. |
| Price and commitment | Free $0 a month with 50 shipments, or Pro $40 a month flat with unlimited shipments. No contract. | No software cost; the cost is staff time each period. | Not covered here; pricing is set by each vendor. | Part of the ERP license or an added module. |
Third-party details checked on from each vendor's own pages: Microsoft Learn: small parcel shipping in Dynamics 365 Supply Chain Management. Plans and features change, so confirm on the vendor's current page before you decide.
Shipping cost allocation is assigning each parcel's cost to the customer, order, job, or cost center that caused it, instead of leaving it in one freight expense account. It lets a controller see margin after freight by customer, rebill shipping that was promised as pass-through, and charge departments for what they actually sent.
The hard part is rarely the arithmetic. It is the key. A carrier charge can only be allocated if something on the charge says who it belongs to, and that link is easiest to create at the moment the label is bought. Every method in the table above is a different answer to the question of where that key comes from and when it is attached.
Put the allocation key in the label reference when the label is bought, then group the ledger by that reference. In GoatLabels the reference travels with the label whether it is created in the dashboard, in a bulk CSV import of up to 500 rows, or through the REST API, and it is written to the dated ledger entry next to the amount debited.
Pick one convention and keep it. A sales order number works for freight cost allocation by order, and you can look up the customer from it. A job number suits project and print work. A cost center code suits internal senders such as a mailroom. If you need two keys, combine them in one reference with a fixed separator so a spreadsheet formula can split them later.
Export the ledger for the period, pivot or join it by reference, and post the totals. A pivot by cost center gives the lines of an allocation journal. A join from order reference to your order list gives freight per customer, which is the basis for a rebill line on an invoice or a margin report after freight.
The posting itself is yours to do. GoatLabels has no automatic posting to an ERP or accounting system and no rules engine that maps references to GL codes, so the mapping lives in your spreadsheet, import template, or script. Because labels are paid from a prepaid wallet, the ledger total for a period also ties to the wallet debits, which gives the reconciliation a fixed control total.
The adjustment appears in the ledger as its own dated line carrying the same reference as the original label, so it rolls up to the same customer, order, job, or cost center. Nothing has to be traced back through a later carrier invoice by tracking number to find out whose parcel it was.
For period close, this means an adjustment can land in a later period than the label it relates to. Decide in advance whether you post it in the period it appears or push it back to the original, and whether small adjustments on rebilled orders are passed on or absorbed. Multi-carton orders behave the same way: each carton is a ledger line with the order's reference.
It is the wrong tool if you need separate balances or sub-accounts per department or client, automatic posting into an ERP or accounting system, or a GL coding rules engine, because GoatLabels has none of those. It also covers only labels bought through your one GoatLabels account, and it is parcel only with no LTL or freight.
If most of your spend runs on your own negotiated carrier contracts, the charges you need to allocate are on those carrier invoices, and an invoice-based method fits better. Teams that want invoice auditing and spend analytics across contracts should read the parcel spend management page. GoatLabels suits teams that can buy the labels here and want the key attached from the start.
Need the wider view of parcel spend? See parcel spend management. Looking for the category view first? See B2B shipping software.
If your order system already knows the customer, job, or cost center, a script can pass it as the reference when it buys the label through the REST API. Calls are unlimited on every plan, with live and test keys, Idempotency-Key support, signed replayable webhooks, and rate-limit headers. The dashboard and the API spend the same prepaid wallet and write to the same ledger.
POST /api/v1/shipments
Authorization: Bearer sk_live_…
Idempotency-Key: ord_8421
{
"to": { "name": "Joyce", "city": "Berlin", "country": "DE" },
"parcel": { "weight": 2.6, "weight_unit": "lb" },
"service": "fedex_intl_priority"
}
Free is $0 a month with 50 shipments a month. Pro is $40 a month flat with unlimited shipments and cheaper label rates. Bulk CSV, 13 connectors, and the REST API come with both, and labels are paid from a prepaid wallet.
Volume pricing
illustrativepay for labels, not for seats
$0 / forever
Enough to test your reference convention for a month.
The in-app assistant drafts a label from a pasted order or email for you to confirm. It is part of the product, not an add-on.
GET /api/v1/shipments
200 OK · plan: free
Unlimited calls. The same wallet as the dashboard.
Put real parcels through the side-by-side quotes and compare against what those labels cost you on
ShippoPirate ShipShipStationLabel prices are quoted live from USPS, UPS, FedEx, and DHL and shown as one number, the same number that leaves your wallet. Other vendors' plans move, so compare against their current pricing page. Full pricing details
Related reading: B2B shipping software, parcel spend management, bookkeeping for shipping costs, carrier billing adjustments, corporate mailroom shipping software, ERP shipping integration.
B2B shipping operations guides: Multi-carrier shipping software, Shipping rate shopping software, Sample shipping software, Shipping software RFP template, ShipStation alternative for B2B.
Put the customer, order, job, or cost center in the label reference, export the ledger, and allocate. Free is $0 a month; Pro is $40 flat with unlimited shipments.
No contract. No card for the Free plan.