I've read all of the books, but most of them years ago. But I can't remember who it was who actually sent the assassin.
Is it made clear, for example an actual confession?
There was no outright confession. Needless to say, spoilers ahead:
Tyrion concluded after his own investigations that it was his nephew Joffrey who did it. Joffrey overheard his father (King Robert Baratheon) saying that putting Bran out of his misery would be the merciful and brave thing to do. Wanting to impress Robert, Joffrey stole the dragon bone hilt dagger, hired an assassin and gave him the dagger with orders to kill Bran.
Later, during a celebration (Joffrey's wedding I think), Tyrion strongly hinted to Joffrey that he knew all about his role in the assassination attempt. Joffrey's demeanor changed, which confirmed it in Tyrion's mind. But of course he never confessed.
Jay Sheth's answer helped me find the section in A Storm of Swords where Jaime and Cersei figure it out:
Cersei:"Of course we were alone. Us and the children." Cersei removed her hairnet and draped it over a bedpost, then shook out her golden curls. "Perhaps Myrcella sent this man with the dagger, do you think so?"
It was meant as mockery, but she'd cut right to the heart of it, Jaime saw at once. "Not Myrcella. Joffrey."
Cersei frowned. "Joffrey had no love for Robb Stark, but the younger boy was nothing to him. He was only a child himself."
"A child hungry for a pat on the head from that sot you let him believe was his father." He had an uncomfortable thought. "Tyrion almost died because of this bloody dagger. If he knew the whole thing was Joffrey's work, that might be why..."
It was Joffrey. Tyrion and Jaime figured it out on their own.
Tyrion was already suspicious of Bran's fall.
Myrcella gave a happy gasp, and Tommen smiled nervously, but it was not the children Tyrion was watching. The glance that passed between Jaime and Cersei lasted no more than a second, but he did not miss it. Then his sister dropped her gaze to the table. “That is no mercy. These northern gods are cruel to let the child linger in such pain.”
AGOT - Tyrion I
And there was something Joffrey said about killing Bran's wolf.
Tyrion glanced down and saw the Hound standing with young Joffrey as squires swarmed around them. "At least he dies quietly," the prince replied. "It's the wolf that makes the noise. I could scarce sleep last night."
Clegane cast a long shadow across the hard-packed earth as his squire lowered the black helm over his head. "I could silence the creature, if it please you," he said through his open visor. His boy placed a longsword in his hand. He tested the weight of it, slicing at the cold morning air. Behind him, the yard rang to the clangor of steel on steel.
The notion seemed to delight the prince. "Send a dog to kill a dog!" he exclaimed. "Winterfell is so infested with wolves, the Starks would never miss one."
Tyrion hopped off the last step onto the yard. "I beg to differ, nephew," he said. "The Starks can count past six. Unlike some princes I might name."
AGOT - Tyrion I
But of course that did not mean anything other than giving a good insight that Joffrey was capable of murdering something for his amusement.
Then Catelyn arrested him on charges of conspiring to murder Bran. Tyrion was innocent but he knew his siblings had something to do with the attempt although he knew them well enough to guess that the second attempt might not have been a product of Cersei's mind or Jaime's hand due to the sheer clumsiness of the idea but he did not entirely dismiss the possibility.
His sister was not without a certain low cunning, but her pride blinded her. She would see the insult in this, not the opportunity. And Jaime was even worse, rash and headstrong and quick to anger. His brother never untied a knot when he could slash it in two with his sword.
He wondered which of them had sent the footpad to silence the Stark boy, and whether they had truly conspired at the death of Lord Arryn. If the old Hand had been murdered, it was deftly and subtly done. Men of his age died of sudden illness all the time. In contrast, sending some oaf with a stolen knife after Brandon Stark struck him as unbelievably clumsy. And wasn’t that peculiar, come to think on it...
AGOT - Tyrion V
Then he heard all about a particular knife and how Littlefinger had framed him.
It wasn't until Joffrey's wedding that Tyrion finally put the pieces together.
“Have a care, Your Grace,” Ser Addam Marbrand warned the king. “Valyrian steel is perilously sharp.”
“I remember.” Joffrey brought Widow’s Wail down in a savage twohanded slice, onto the book that Tyrion had given him. The heavy leather cover parted at a stroke. “Sharp! I told you, I am no stranger to Valyrian steel.”
It took him half a dozen further cuts to hack the thick tome apart, and the boy was breathless by the time he was done. Sansa could feel her husband struggling with his fury as Ser Osmund Kettleblack shouted, “I pray you never turn that wicked edge on me, sire.” “See that you never give me cause, ser.” Joffrey flicked a chunk of Lives of Four Kings off the table at swordpoint, then slid Widow’s Wail back into its scabbard.
“Your Grace,” Ser Garlan Tyrell said. “Perhaps you did not know. In all of Westeros there were but four copies of that book illuminated in Kaeth’s own hand.”
“Now there are three.” Joffrey undid his old swordbelt to don his new one. “You and Lady Sansa owe me a better present, Uncle Imp. This one is all chopped to pieces.”
Tyrion was staring at his nephew with his mismatched eyes. “Perhaps a knife, sire. To match your sword. A dagger of the same fine Valyrian steel... with a dragonbone hilt, say?”
Joff gave him a sharp look. “You... yes, a dagger to match my sword, good.” He nodded. “A... a gold hilt with rubies in it. Dragonbone is too plain.”
ASOS - Sansa IV
Joffrey's reaction confirmed Tyrion's doubts in his mind.
I am no stranger to Valyrian steel, the boy had boasted. The septons were always going on about how the Father Above judges us all. If the Father would be so good as to topple over and crush Joff like a dung beetle, I might even believe it.
He ought to have seen it long ago. Jaime would never send another man to do his killing, and Cersei was too cunning to use a knife that could be traced back to her, but Joff, arrogant vicious stupid little wretch that he was...
He remembered a cold morning when he’d climbed down the steep exterior steps from Winterfell’s library to find Prince Joffrey jesting with the Hound about killing wolves. Send a dog to kill a wolf, he said. Even Joffrey was not so foolish as to command Sandor Clegane to slay a son of Eddard Stark, however; the Hound would have gone to Cersei. Instead the boy found his catspaw among the unsavory lot of freeriders, merchants, and camp followers who’d attached themselves to the king’s party as they made their way north. Some poxy lackwit willing to risk his life for a prince’s favor and a little coin. Tyrion wondered whose idea it had been to wait until Robert left Winterfell before opening Bran’s throat. Joffs, most like. No doubt he thought it was the height of cunning.
The prince’s own dagger had a jeweled pommel and inlaid goldwork on the blade, Tyrion seemed to recall. At least Joff had not been stupid enough to use that. Instead he went poking among his father’s weapons. Robert Baratheon was a man of careless generosity, and would have given his son any dagger he wanted... but Tyrion guessed that the boy had just taken it. Robert had come to Winterfell with a long tail of knights and retainers, a huge wheelhouse, and a baggage train. No doubt some diligent servant had made certain that the king’s weapons went with him, in case he should desire any of them. The blade Joff chose was nice and plain. No goldwork, no jewels in the hilt, no silver inlay on the blade. King Robert never wore it, had likely forgotten he owned it. Yet the Valyrian steel was deadly sharp... sharp enough to slice through skin, flesh, and muscle in one quick stroke. I am no stranger to Valyrian steel. But he had been, hadn’t he? Else he would never have been so foolish as to pick Littlefinger’s knife.
ASOS - Tyrion VIII
Jaime also figured it out on his own and believed that Joffrey did it to impress his father.
Jaime suddenly remembered something else that troubled him about Winterfell. “At Riverrun, Catelyn Stark seemed convinced I’d sent some footpad to slit her son’s throat. That I’d given him a dagger.”
“That,” she said scornfully. “Tyrion asked me about that.”
“There was a dagger. The scars on Lady Catelyn’s hands were real enough, she showed them to me. Did you... ?”
“Oh, don’t be absurd.” Cersei closed the window. “Yes, I hoped the boy would die. So did you. Even Robert thought that would have been for the best. ‘We kill our horses when they break a leg, and our dogs when they go blind, but we are too weak to give the same mercy to crippled children’ he told me. He was blind himself at the time, from drink.”
Robert? Jaime had guarded the king long enough to know that Robert Baratheon said things in his cups that he would have denied angrily the next day. “Were you alone when Robert said this?”
“You don’t think he said it to Ned Stark, I hope? Of course we were alone. Us and the children.” Cersei removed her hairnet and draped it over a bedpost, then shook out her golden curls. “Perhaps Myrcella sent this man with the dagger, do you think so?”
It was meant as mockery, but she’d cut right to the heart of it, Jaime saw at once. “Not Myrcella. Joffrey.”
Cersei frowned. “Joffrey had no love for Robb Stark, but the younger boy was nothing to him. He was only a child himself .”
“A child hungry for a pat on the head from that sot you let him believe was his father.” He had an uncomfortable thought. “Tyrion almost died because of this bloody dagger. If he knew the whole thing was Joffrey’s work, that might be why...”
ASOS - Jaime IX
Citadel also makes note of this:
Evidence revealed in A Storm of Swords points squarely at Joffrey as the instigator. At the queen’s breakfast he revealed, "... I am no stranger to Valyrian steel." (III: 663) Tyrion, suspicious of that statement, suggests that he will give a Valyrian steel dagger with a dragonbone hilt as a gift to Joffrey. Joffrey’s reply is awkward: "Joff gave him a sharp look. ‘You ... yes, a dagger to match my sword, good.’ He nodded. ‘A ... a gold hilt with rubies in it. Dragonbone is too plain.’" (III: 664) Finally, Jaime questions Cersei about the attempt on Bran. She reveals that Robert said in Joffrey’s hearing that it’d be a kindness to end the boy’s misery, but that they were all too weak. Jaime concludes that Joffrey, eager for his father’s attention, may have decided to prove that he was capable of doing it (III: 823).
The Citadel: FAQ - 5.1 Who tried to kill Bran?
It is clear that it was Joffrey the Monster. It was confirmed through Tyrion and Jaime's POV in Storm of Swords when he talks with Cersei and Jaime pisses her off and she says "A pity Lord Tywin Lannister never had a son. I could have been the heir he wanted, but I lacked the cock. And speaking of such, best tuck yours away, brother. It looks rather sad and small, hanging from your breeches like that." ;) Jaime understands and figures out that was Joffrey.
I have to bring another option to the light. It feels the TV-show has set a different solution for this.
As there is no episode where Jaime would attempt to deduct who hired the assassin, that can be excluded from the pile of evidence.
In the second episode, where Tyrion arrives to the breakfast table, bringing the good news how the boy may live, the quote of mercy killing the crippled was given to Jaime in the show, instead of Robert, removing his father's influence over Joffrey.
In the third episode, after the attempt had gone south and Catelyn was investigating the murder, Jaime visits Cersei, where she yells at him for being "so stupid". This would be completely unjustified behind closed doors as Cersei would've had her chances of yelling at him this whole time. She was with him up in that tower when it happened, so this is clearly about something else.
Because this last mentioned scene does not explicitly state what they're talking about, except about Bran, it is left unclear, even though the whole episode is based on the investigations. This, in my opinion, seems clearly like a choice by the show runners to A) change plot points to be more straight forward, and B) ignore the culprit, as it has no emphasis on the bigger picture.
TL;DR: Jaime hired the assassin in the TV-show version, instead of Joffrey in the books.
I have read all 5 books twice, well almost, I am almost to page 700 of the fifth, and I agree that Joffrey may have done it, as the book seems to imply but I don't agree there is any hard evidence that he did. Its all just suspicion and speculation in my opinion. In fact I think you could make a case that Littlefinger set the whole thing up. He is arrogant enough to set it up, hoping that it would fail to start the war he needed to remove the obstacles to his power. I think he is even so conceited to believe he could confess his crime to Catelyn by admitting the knife was his, just so he could have a private jape at the Starks who he considered dull of wit. Anyway I will admit Joffrey could be the culprit, but to me that just seems too obvious an explanation, especially considering the author, who I consider a master at twisting plots.