Comment importer des transactions PayPal dans Google Sheets

Publié: 2022-06-16

PayPal transactions in Google Sheets

Ce didacticiel vous montrera comment importer des transactions PayPal dans Google Sheets à l'aide de Google Apps Script. Vous pouvez choisir d'importer des paiements PayPal standard, des paiements d'abonnement récurrents, des dons ou même des remboursements et des rétrofacturations dans Google Sheets.

Une fois les données importées dans Google Sheets, vous pouvez les exporter dans un fichier CSV et les importer dans le logiciel de comptabilité Quickbooks. Les utilisateurs de Tally en Inde peuvent exporter les transactions PayPal de Google Sheets au format XML et les importer en masse dans Tally.

Voir aussi : Automatiser PayPal avec Google Forms

Importer des transactions PayPal dans Google Sheets

Pour cet exemple, nous allons importer la liste des donateurs dans Google Sheets qui ont fait des dons via PayPal.

1. Créez des informations d'identification API dans PayPal

Connectez-vous à votre tableau de bord de développeur PayPal (developer.paypal.com) et créez une nouvelle application en mode direct. Donnez un nom à votre application - Transaction Importer for Google Sheets et cliquez sur le bouton Créer une application.

PayPal créera un identifiant client et une clé secrète client dont vous aurez besoin ultérieurement. Dans la section Paramètres de l'application en direct, cochez l'option Transaction Search et désactivez toutes les autres options, car nous souhaitons uniquement que les clés API répertorient les transactions et n'aient aucune autre fonctionnalité. Cliquez sur Enregistrer pour continuer.

Paypal Account Credentials

2. Créer un projet Google Sheets

Accédez à sheets.new pour créer une nouvelle feuille Google. Accédez au menu Extensions et choisissez Apps Script pour ouvrir l'éditeur Apps Script.

Copiez-collez le code dans l'éditeur. N'oubliez pas de remplacer le code de transaction par le vôtre. Vous pouvez utiliser T0002 pour les abonnements PayPal, T0014 pour les paiements de dons ou T1107 pour les remboursements et rétrofacturations PayPal.

Le commentaire /* @OnlyCurrentDoc */ est un commentaire Google Apps Script qui indique à Google Apps Script de n'exécuter le code qu'à l'intérieur de la feuille Google actuelle et de ne pas avoir besoin d'accéder à une autre feuille de calcul dans votre Google Drive.

 /* @OnlyCurrentDoc */ /* Author: digitalinspiration.com */ const TRANSACTION_TYPE = 'T0001' ; // Enter your own PayPal Client ID and Client Secret key const PAYPAL_CLIENT_ID = '<YOUR_PAYPAL_CLIENT_ID>' ; const PAYPAL_CLIENT_SECRET = '<YOUR_PAYPAL_CLIENT_SECRET>' ; // Enter start and end dates in the format YYYY-MM-DD const START_DATE = '2022-03-01' ; const END_DATE = '2022-03-15' ; // Generate the PayPal access token const getPayPalAccessToken_ = ( ) => { const credentials = ` ${ PAYPAL_CLIENT_ID } : ${ PAYPAL_CLIENT_SECRET } ` ; const headers = { Authorization : ` Basic ${ Utilities . base64Encode ( credentials ) } ` , Accept : 'application/json' , 'Content-Type' : 'application/json' , 'Accept-Language' : 'en_US' , } ; const options = { method : 'POST' , headers , contentType : 'application/x-www-form-urlencoded' , payload : { grant_type : 'client_credentials' } , } ; const request = UrlFetchApp . fetch ( 'https://api.paypal.com/v1/oauth2/token' , options ) ; const { access_token } = JSON . parse ( request ) ; return access_token ; } ; // Append the query parameters to the PayPal API URL const buildAPIUrl_ = ( queryParams ) => { const baseUrl = [ ` https://api-m.paypal.com/v1/reporting/transactions ` ] ; Object . entries ( queryParams ) . forEach ( ( [ key , value ] , index ) => { const prefix = index === 0 ? '?' : '&' ; baseUrl . push ( ` ${ prefix } ${ key } = ${ value } ` ) ; } ) ; return baseUrl . join ( '' ) ; } ; // Fetch the list of PayPal transaction const fetchTransactionBatchFromPayPal = ( queryParams ) => { const options = { headers : { Authorization : ` Bearer ${ getPayPalAccessToken_ ( ) } ` , 'Content-Type' : 'application/json' , } , } ; const request = UrlFetchApp . fetch ( buildAPIUrl_ ( queryParams ) , options ) ; const { transaction_details , total_pages } = JSON . parse ( request ) ; return { transaction_details , total_pages } ; } ; // Extract the transaction details including the transaction ID, // donation amount, transaction date and buyer's email and country code const parsePayPalTransaction_ = ( { transaction_info , payer_info } ) => [ transaction_info . transaction_id , new Date ( transaction_info . transaction_initiation_date ) , transaction_info . transaction_amount ?. value , transaction_info . transaction_note || transaction_info . transaction_subject || '' , payer_info ?. payer_name ?. alternate_full_name , payer_info ?. email_address , payer_info ?. country_code , ] ; const fetchPayPalTransactions_ = ( ) => { const startDate = new Date ( START_DATE ) ; const endDate = new Date ( END_DATE ) ; startDate . setHours ( 0 , 0 , 0 , 0 ) ; endDate . setHours ( 23 , 59 , 59 , 999 ) ; const transactions = [ ] ; const params = { start_date : startDate . toISOString ( ) , end_date : endDate . toISOString ( ) , page_size : 100 , transaction_type : TRANSACTION_TYPE , fields : 'transaction_info,payer_info' , } ; for ( let page = 1 , hasMore = true ; hasMore ; page += 1 ) { const response = fetchTransactionBatchFromPayPal ( { ... params , page } ) ; const { transaction_details = [ ] , total_pages } = response ; transaction_details . map ( parsePayPalTransaction_ ) . forEach ( ( e ) => transactions . push ( e ) ) ; hasMore = total_pages && total_pages > page ; } return transactions ; } ; // Import the transactions from PayPal and write them to the active Google Sheet const importTransactionsToGoogleSheet = ( ) => { const transactions = fetchPayPalTransactions_ ( ) ; const { length } = transactions ; if ( length > 0 ) { const sheet = SpreadsheetApp . getActiveSheet ( ) ; sheet . getRange ( 1 , 1 , length , transactions [ 0 ] . length ) . setValues ( transactions ) ; const status = ` Imported ${ length } PayPal transactions into Google Sheets ` ; SpreadsheetApp . getActiveSpreadsheet ( ) . toast ( status ) ; } } ;

3. Exécutez la fonction d'importation PayPal

Dans l'éditeur de script, cliquez sur le bouton Exécuter pour importer des transactions depuis PayPal. Vous devrez peut-être autoriser le script car il nécessite des autorisations pour se connecter à l'API PayPal et également écrire des données dans Google Sheets en votre nom.

C'est ça. S'il y a des transactions PayPal à importer dans la plage de dates sélectionnée, le script s'exécutera et les transactions seront importées dans Google Sheets.

Run PayPal Importer

Dans la prochaine partie du didacticiel, nous apprendrons comment exporter les transactions PayPal de Google Sheets vers un fichier XML pour les importer dans le logiciel de comptabilité Tally.

Voir aussi : Envoyer des factures PayPal à partir de Google Sheets