We consider a conservation law of the form (CL) u(t) + f(u)x = a(x), where a(.) is a bounded piecewise smooth source term and f an even convex function. We first characterize the solution to the Riemann problem through a new Lax-type formula. Then we prove that for a(.) fixed, the semigroup associated with (CL) is an L-1 contraction, and we obtain an existence theorem for weak solutions to (CL). We conclude by constructing Godunov-type difference schemes and proving that; these schemes are L-infinity stable and have stable steady solutions similar in structure to those of (CL). Some numerical tests are reported.