My contract reads that the puppy may be returned within the first thirty days, and I will refund all but $50.00 (that's to cover a trip to the vet for a checkup).
On dogs kept over 30 days, I won't refund any money, but state that if a new home is found for the dog, any money received for the dog, minus expenses (i.e. spaying, dental, vaccinations, etc.) will be sent to the former owner at the time the dog is re-homed.
Luckily, I've never had to take a dog back, but perhaps it's better these people changed their mind in 3 days, rather than keep the dog and not take care of him. The dogs always come first, so I would do what is best for him.