Q:

What does Pokémon Bank's legality checker react to?

As you may or may not know, Pokémon Bank has logic to determine whether or not a Pokémon is legal or not. What this is meant to do is to see if a Pokémon could be obtained as it is, or if it must've been hacked in. If it isn't legal, transfer into Poké Bank isn't allowed.
What I'd like to know is what criteria the checker actually react to. I've seen different sources saying different things, so it'd be nice to know for sure. Which of these does it check?

Moves
Moves compared to level
EVs
IVs
Generation caught
Caught location
Caught level
Caught level compared to location

If there are any I've missed, feel free to mention those too if you know.

A:

To quote:

Location & Version: Their location must be correct (i.e. Kyogre from    the Cave of Origin in Sapphire Version) - however, some of my test Pokémon got by anyhow, like a Rayquaza from Route 101 in Sapphire.
  It's based on version - you can't get Groudon in Sapphire, for example, so it won't go. 
Shiny-Locked Pokémon: Certain Pokémon that    cannot be ever Shiny cannot be Transported except in extremely rare    circumstances -
  Reshiram and Zekrom, for example, cannot be Shiny as    I recall.
  There are placeholder Shiny sprites in the game to prevent    crashing
  as I understand it, but if it's not allowed to be Shiny    without
  hacking, then it's not allowed to be Shiny. The specific list    is
  supposed to include Celebi, Jirachi, Arceus, Victini, Reshiram,
  Zekrom, Keldeo, and Meloetta; Xerneas, Yveltal, Zygarde, Diancie, Hoopa, and Volcanion also can't be Shiny without hacks. (Note that Shiny Jirachi, since it was given out in the summer of 2014 in Japan, 
  can now be brought from Pokémon Black/White games to Pokémon Bank.
  This seemingly-odd expansion was also made to accommodate "WISHMKR" Jirachis, but will include pretty much any Shiny Jirachi from Pokémon 
  Ruby/Sapphire. Furthermore, Reshiram/Zekrom can be Shiny as of OR/AS's release, and will be allowed through Poké Transporter from Gen. V, but are still illegal if not from OR/AS's Fabled Cave!)
EVs & IVs: Their EVs and IVs cannot exceed certain limits. Their EVs cannot exceed 255 in any given stat (note that 253-255 EVs will be cut down to 252 upon Transportation), nor can they exceed 510 total. Their IVs cannot exceed 31 in any one stat.
Ability: Their ability must be correct. For example, a Pikachu with Wonder Guard cannot be transferred since Pikachu never has that ability. A Pokémon born on a game prior to Pokémon Black/White also cannot have its Hidden Ability, nor can Pokémon whose Hidden Ability is considered unreleased.      
Types: Their type must be correct. You cannot have a Water/Fire Pikachu, for example, since it is only Electric-type.
Level: Their level can only be from Level 1 to Level 100. (I note this since Level is a 1-byte stat in the game limited between $00 and $FF (0 and 255) in hexadecimal. Extreme hacking programs or proper use of variables will circumvent the limit.)
Gender: Pokémon solely of a certain gender (such as Kangaskhan, which is only female) must be of that gender. No-gender Pokémon cannot have a gender, such as Ditto.
Moveset: Their moves must be correct. For example, a Pikachu with Water Spout cannot be transferred. However, some event Pokémon do have alternate movesets that will get by (as long as everything else checks out): for example, Surfing Pikachus.
Pokémon Eggs: Eggs cannot be Transported, nor can Bad Eggs, as far as I know.
Glitch Pokémon: Since the game operates with the Pokémon B/W games, only Pokémon with their ID #'s (like #001 for Bulbasaur) from    #001
  to #649 ($0001 to $0289 in hex) can be foreseeably transferred.
  Anything outside that range is a glitch Pokémon that, in all
  likelihood from my knowledge of Gen. I/II mechanics, would transform
  into one of the new X/Y Pokémon or another glitch upon import. That
  said, B/W were supposed to have mechanics in place to prevent Pokémon 
  outside that range from being found, so this is just speculation.

Event Exceptions: Assuming all of the above have been considered and a certain few - and really, just the moveset, location, and  version - will be given a second check. This check is the Event-legitimacy check for Pokémon distributed through an Event.
  Assuming that the moveset, location, or version for Pokémon that can  be found in the wild tipped off the checker, PokéBank cross-checks   the illegitmate aspects (i.e. Extreme Speed on a Pikachu) with a   database that contains the info for the Event-distributed Pokémon. If  the Pokémon is legal under the Event distribution's details (even to  the point of Trainer ID, OT, ribbons, and real-world region), and   meets the other more-obvious ones outlined above, then it will go through.

To summarise, it appears that it will check for most things on your list, apart from caught level and gender caught .
Souce: http://www.gamefaqs.com/3ds/746375-pokemon-bank/faqs/68616?page=1

