We consider an integrated pricing and routing problem on a network. The problem is motivated by applications in freight transportation such as package delivery and less-than-truckload shipping services. The decision maker sets a price for each origin-destination pair of the network, which determines the demand flow that needs to be served. The flows are then routed through the network given fixed arc capacities and costs. Demand for the same origin-destination pair can be routed along multiple paths in the network if desirable. The objective is to maximize the revenues from serving demand minus the transportation costs incurred given the capacity constraints. We propose two algorithms for the solution of this problem: (1) a Frank-Wolfe type algorithm, which requires the objective function to be smooth, and (2) a primal-dual algorithm using an online learning technique, which allows non-smooth objective functions. We prove that the first algorithm has a convergence rate of O(1/T) and the second algorithm has a convergence rate of O(log T/T), where T is the number of iterations. Numerical experiments on randomly generated instances show that coordinating pricing and routing decisions can improve profits significantly compared to independent pricing or routing strategies.