Error PagSeguro recurrent payment – stack overflow in Portuguese

I'm having a problem with the secure payment API in the method / pre-approvals it always returns me missing parameters but I'm sending yes the parameters that the documentation asks for. and in the case that it is a problem.

$ data['plan'] = & # 39; CEC9F172-DDDD-DACD-D408-EF866A920B11 & # 39 ;;
$ data['sender.name'] = $ data['nome'];
$ data['sender.email'] = $ data['email'];
$ data['sender.hash'] = $ data['hash_comprador'];
$ data['sender.phone.number'] = str_replace ("-", "", substr ($ data["telefone"]5));
$ data['senderPhone'] = str_replace ("-", "", substr ($ data["telefone"]5));
$ data['sender.phone.areaCode'] = substr ($ data["telefone"]1, 2);
$ data['senderAreaCode'] = (int) substr ($ data["telefone"]1, 2);

$ data['sender.address.street'] = $ data['rua'];
$ data['sender.address.number'] = $ data['numero'];
// $ date['senderAddressComplement'] = $ data['nome'];
$ data['sender.address.district'] = $ data['bairro'];
$ data['sender.address.city'] = $ data['cidade'];
$ data['sender.address.state'] = $ data['uf'];
$ data['sender.address.country'] = & # 39; BRA & # 39 ;;
$ data['sender.address.postalCode'] = str_replace ("-", "", $ data["cep"]);
// $ date['senderDocumentsType'] = $ data['nome'];
// $ date['senderDocumentsValue'] = $ data['nome'];
$ data['paymentMethod.type'] = & # 39; creditCard & # 39 ;;
$ data['paymentMethod.creditCard.token'] = $ data['card_token'];
$ data['paymentMethod.creditCard.holder.name'] = $ data['nome'];
$ data['paymentMethod.creditCard.holder.birthDate'] = $ data['nascimento'];

$ data = http_build_query ($ data);

$ curl = curl_init ($ url);
curl_setopt ($ curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt ($ curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt ($ curl, CURLOPT_POST, true);
curl_setopt ($ curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt ($ curl, CURLOPT_HTTPHEADER, array (
"Content-type: application / x-www-form-urlencoded; charset = ISO-8859-1 & # 39 ;,"
"Accept: application / vnd.pagseguro.com.v3 + xml; charset = ISO-8859-1 & # 39;
));
curl_setopt ($ curl, CURLOPT_POSTFIELDS, $ data);
$ xml = curl_exec ($ curl);

In the previous code, I recover the data of the form, the documentation is quite confusing I found some with the sending of that form & # 39; senderPhone & # 39; and others with the sending of that form & # 39; sender.phone.number & # 39 ;, I am sending the mail and token, I am already getting to make only payment via ticket and card, but the recurring payment always returns errors such as:
insert the description of the image here

In my HTML form I am sending all the required information, I debugged the code and I am really sending everything:

insert the description of the image here

Please, if it has been confused to apologize, but I am desperate.