Close
It is actually
Model 31C707
Type 0?54-E1
Code 040320ZE
made March 20 2004
So you are missing a digit
Go to Jacks Small Engines & click on the parts look up link on the right side
When the window redraws go down to engines and click on B & S
This brings up a numerical listing of the engines made for the USA market
So click on the one that has your engine series in it ( 200000 -> 399999 )
When the window redraws scroll down to see where 31c707 will be (
31C700 to 31C799 )
Click on the + or right click to get another new window and scroll down slowly looking 31c707
Open that window and scroll down checking for every code that ends in your numbers ( 54 ) with the E1 on the end.
I found 1 of them .
But the aim of all this typing is to show you how it is done properly.
The other way is to do 10 google searches with the numbers 0->9 for the missing digit
Both ways work but the Jacks search works better