In 2011 the SPP defined a new methodology to conduct the endorsement process. Now if the authors of a pairing program (in the following: candidate) want their software to be endorsed by FIDE, they are involved in a process that consists essentially in two phases.
With the assistance of a SPP representative that is assigned to that specific endorsement procedure, the first phase is carried out by the authors themselves. If they wish, they could be helped by an auxiliary tool, named javafo(1), that is useful to understand whether the pairings generated by the candidate are compliant with the rules.
This phase is divided essentially in two steps. In the first one, the authors use self-generated TRF(2)(s) related to some tournaments that have very precise peculiarities (usually lot of rounds and a variable number of players, just to see how the candidate reacts in very stressful conditions).
In the second step, the SPP representative may give them some further TRF(s) that the candidate has to correctly identify whether they contain good or wrong pairings.
During the first phase, the SPP representative deals very scarcely with the candidate as a program. He fully trusts the authors, assuming that the TRF(s) generated are produced by the candidate. His only goal is to check if the pairings are correct. The real check of the program is made during the second phase, by other SPP representatives, usually two or more, once that the candidate passes the first phase.
Back to it. As said above, the authors can check the TRF(s) produced by the candidate with javafo. If the latter does not complain, fine. Otherwise the authors are requested to understand why there is a discrepancy (they can obviously ask for help by the SPP representative). Their analysis can open essentially three possibilities:
 the candidate generates wrong pairings: fine, the authors correct their program and repeat the process
 javafo generated wrong negatives; fine again, the problem will be reported to the author of javafo requesting a correction in a reasonable time
 the rules are not written very clearly; they may have some holes which can be interpreted in different ways by the candidate and by javafo; in such instances, it is the SPP duty to fix the wording of the rules as soon as possible, in order to avoid this kind of discrepancies
When the TRF(s) produced by the candidate get to the SPP representative, only discrepancies depending on the second or the third type can be accepted. If there are still discrepancies depending on errors of the candidate, the endorsement process will either be suspended or fail. The authors will be notified when they can resume a suspended procedure (usually it will be some time after the first incoming Congress) or restart a new endorsement process for their software (after about one year).
The authors are strongly recommended to develop a checker on their own, in order to give testers the possibility to input TRF(s) to the candidate and receive a response telling whether the input pairings are right.