I found that this is a fault in the pagseguro class. The correction is very simple.
Open the Pagseguropaymentparser.class.php file and go to line 72, where there is the following code snippet:
if ($payment->getSender()->getDocuments() != null) {
$documents = $payment->getSender()->getDocuments();
if (is_array($documents) && count($documents) == 1) {
foreach ($documents as $document) {
if (!is_null($document)) {
$data['senderCPF'] = $document->getValue(); //essa linha ta errada.. estão ignorando o tipo do documento q vc informa
}
}
}
}
just change by:
if ($payment->getSender()->getDocuments() != null) {
$documents = $payment->getSender()->getDocuments();
if (is_array($documents) && count($documents) == 1) {
foreach ($documents as $document) {
if (!is_null($document)) {
$data['sender'.$document->getType()] = $document->getValue();
}
}
}
}