“I haven’t paid him for the ticket” is indeed “Je ne l’ai pas payé pour le billet”.
“Je ne lui ai pas payé le billet” is “I haven’t paid him the ticket” (I haven’t paid his ticket).
You have a slight difference in the meaning of your two sentences.
Je ne l’ai pas payé pour le billet.
means that someone bought the ticket for you and you haven’t paid it back, while
Je ne lui ai pas payé le billet.
would mean that the person you’re talking about bought the ticket on it’s own, in which case there is no notion of refund.
If you pay someone for a service, you say:
Je paie X pour qu’il fasse Y.
which can be translated by:
I pay X to do Y.
Here:
Je le paie pour le ticket.
Can be a shortening of:
Je le paie pour m’avoir donné le ticket.
But it can also mean:
Je le paie pour qu’il s’achète un ticket.
The second sentence can also be shortened in:
Je lui paie son ticket.
So for the sake of clarity it’s assumed the shortening is the one of the first sentence.
Leave a comment