I do it the same way Srini suggests.
Use scheduling agreement type "LK" to ship material to the customer or external agent.
This goes into a special stock.
Then when the material is consumed, use an "ED" order with reference to the scheduling agreement to post the consumed quantity. This removes it from special stock and triggers billing.
The "ED" Orders can be created via EDI/Idoc if the customer or external agent sends you something.