You need some minor changes.
1 Call sftp with the site and user as command line options:
sftp -b batch_file $SAP_UP_USER@$SAP_UP_SERVER
You can set up a passwordless connection, or enter it at the password prompt.
There is no ascii/binary command.
There is no prompt command
put local_file_name remote_file_name
I have never tried:
sftp -b - $user@$site <<FIN