il file da scaricare ovviamente deve stare sul tuo server.
creare il pulsante è la parte più semplice, i problemi arrivano dopo.
paypal ha funzioni apposite per questo tipo pagamento,
ti fornisce anche le istruzioni per registrare le transizioni tramite la procedura IPN

ti suggerisco di farti aiutare da un professionista che conosca bene l'argomento perché non è per nulla semplice od intuitivo. serve un linguaggio server e supporto di database


altrimenti usa le procedure di pagamento con notifica via mail, poi invii tu il file "a mano" o crei un link provvisorio per scaricare