It is best for a guarantee to be for an unlimited amount of money rather than it being "capped".
Also the guarantee should be a continuing one with there being no expiry date. However, it may very well be your customer will insist upon a maximum liability and an expiry date. Obviously this will be something for negotiation.
The obligation to pay under the guarantee should be immediate and give no opportunity to your customer to pay after a certain period of time or after certain prescribed actions have taken place.
The guarantor's liability should be met in full without the opportunity being afforded to the customer to offset any monies. The guarantees should be a continuing security applying after your customer has paid off his specific debt so as to cover any future Debtor liability.