Cara Mengimpor Transaksi PayPal ke Google Spreadsheet

Diterbitkan: 2022-06-16

PayPal transactions in Google Sheets

Tutorial ini akan menunjukkan cara mengimpor transaksi PayPal ke Google Spreadsheet dengan bantuan Google Apps Script. Anda dapat memilih untuk mengimpor pembayaran PayPal standar, pembayaran langganan berulang, donasi, atau bahkan pengembalian uang dan tagihan balik ke Google Spreadsheet.

Setelah data diimpor ke Google Spreadsheet, Anda dapat mengekspornya ke file CSV dan mengimpornya ke perangkat lunak akuntansi Quickbooks. Pengguna Tally di India dapat mengekspor transaksi PayPal dari Google Spreadsheet ke format XML dan mengimpornya secara massal ke Tally.

Lihat juga: Otomatiskan PayPal dengan Google Forms

Impor Transaksi PayPal di Google Spreadsheet

Untuk contoh ini, kami akan mengimpor daftar donatur ke Google Spreadsheet yang telah memberikan donasi melalui PayPal.

1. Buat kredensial API di dalam PayPal

Masuk ke dasbor pengembang PayPal Anda (developer.paypal.com) dan buat aplikasi baru dalam mode langsung. Beri nama Aplikasi Anda - Transaction Importer for Google Sheets dan klik tombol Buat Aplikasi.

PayPal akan membuat ID Klien dan kunci Rahasia Klien yang akan Anda perlukan di langkah selanjutnya. Di bawah bagian Pengaturan Aplikasi Langsung, centang opsi Transaction Search dan matikan semua opsi lain karena kami hanya ingin kunci API mencantumkan transaksi dan tidak memiliki fungsi lain. Klik Simpan untuk melanjutkan.

Paypal Account Credentials

2. Buat Proyek Google Spreadsheet

Buka sheets.new untuk membuat Google Sheet baru. Buka menu Extensions dan pilih Apps Script untuk membuka editor Apps Script.

Copy-paste kode di editor. Ingatlah untuk mengganti kode transaksi dengan kode Anda sendiri. Anda dapat menggunakan T0002 untuk Langganan PayPal, T0014 untuk pembayaran Donasi, atau T1107 untuk Pengembalian Dana dan tagihan balik PayPal.

/* @OnlyCurrentDoc */ adalah komentar Google Apps Script yang memberitahu Google Apps Script untuk hanya menjalankan kode di dalam Google Sheet saat ini dan tidak memerlukan akses ke spreadsheet lain di Google Drive Anda.

 /* @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. Jalankan Fungsi Impor PayPal

Di dalam editor skrip, klik tombol Jalankan untuk mengimpor transaksi dari PayPal. Anda mungkin harus mengotorisasi skrip karena memerlukan izin untuk terhubung ke API PayPal dan juga menulis data ke Google Spreadsheet atas nama Anda.

Itu dia. Jika ada transaksi PayPal untuk diimpor dalam rentang tanggal yang dipilih, skrip akan berjalan dan transaksi akan diimpor ke Google Spreadsheet.

Run PayPal Importer

Di bagian tutorial selanjutnya, kita akan mempelajari cara mengekspor transaksi PayPal dari Google Spreadsheet ke file XML untuk diimpor ke perangkat lunak akuntansi Tally.

Lihat juga: Kirim Faktur PayPal dari Google Spreadsheet