Consider the following scenario:
You have an account model You have an external service which manages subscriptions (such as CheddarGetter).
You do not want to create a customer on CG unless the data entered passed your own validations, and likewise you don't want to save the customer down to your own database unless CG accepts the customer record and payment details.
However, you want any validation errors from either side to be made available to the user.
So, how would you go about this? Validating either side is simple, but getting both sides working together seems difficult.