With my children, they were always punished far more if they lied than if they were honest and they knew it,
So if they did something (say deliberately broke something), I used to send them to their rooms to think about their answers (so they didn't lie off the cuff), and then would make it clear that if they were honest there would be natural consequences to their actions, but if they lied they would be punished.
So, like the time my daughter put magnets on the tv and broke it, because she was honest about what she had done, she had consequences on that she wasn't allowed to have the tv on when we weren't around... but she didn't get massively punished because she was honest.
In fact only the other day, I was talking about this to my sixteen year old daughter about the magnets and other naughty things she had done. And I said to her but surely she must have lied to me, and she replied no she never had because she was too scared to.
If the lying is the worst punishment they get, they stop the lying. Trust me, my daughter was no angel, could be a right madam, but on the whole she didn't lie. Just don't force them into a corner, give them time to think before they tell you, so they can rationalise that it will be worst if it's honest. For me, my daughter was always allowed to do things that her friends were allowed to do, so long as she was honest and I could trust her, she knew if she broke my trust she would be allowed out with friends to town etc if I didn't trust her. So that's the carrot.
Punishments were then natural consequences of actions - break something deliberately pay for it to be fixed etc.
Long winded and waffle but you get the point.