Como importar transações do PayPal para o Planilhas Google
Publicados: 2022-06-16Este tutorial mostrará como importar transações do PayPal para o Planilhas Google com a ajuda do Google Apps Script. Você pode optar por importar pagamentos padrão do PayPal, pagamentos recorrentes de assinatura, doações ou até mesmo reembolsos e estornos para o Planilhas Google.
Depois que os dados forem importados para o Planilhas Google, você poderá exportá-los para um arquivo CSV e importá-los para o software de contabilidade Quickbooks. Os usuários do Tally na Índia podem exportar transações do PayPal do Planilhas Google para o formato XML e importá-las em massa para o Tally.
Veja também: Automatize o PayPal com o Google Forms
Importar transações do PayPal no Planilhas Google
Para este exemplo, importaremos a lista de doadores para o Planilhas Google que fizeram as doações por meio do PayPal.
1. Crie credenciais de API dentro do PayPal
Faça login no seu painel de desenvolvedor do PayPal (developer.paypal.com) e crie um novo aplicativo no modo ao vivo. Dê um nome ao seu aplicativo - Transaction Importer for Google Sheets
e clique no botão Criar aplicativo.
O PayPal criará um ID do cliente e uma chave secreta do cliente que você precisará em uma etapa posterior. Na seção de configurações do aplicativo ao vivo, marque a opção Transaction Search
e desative todas as outras opções, pois queremos apenas que as chaves de API listem transações e não tenham outra funcionalidade. Clique em Salvar para continuar.
2. Crie um projeto do Planilhas Google
Acesse sheets.new
para criar uma nova Planilha Google. Vá para o menu Extensões e escolha Apps Script para abrir o editor de Apps Script.
Copie e cole o código no editor. Lembre-se de substituir o código da transação pelo seu. Você pode usar T0002
para assinaturas do PayPal, T0014
para pagamentos de doação ou T1107
para reembolsos e estornos do PayPal.
O comentário /* @OnlyCurrentDoc */
é um comentário do Google Apps Script que informa ao Google Apps Script para executar apenas o código dentro da Planilha Google atual e não exigir acesso a nenhuma outra planilha no 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. Execute a função de importação do PayPal
Dentro do editor de scripts, clique no botão Executar para importar transações do PayPal. Talvez seja necessário autorizar o script, pois ele requer permissões para se conectar à API do PayPal e também gravar dados no Planilhas Google em seu nome.

É isso. Se houver alguma transação do PayPal para importar no período selecionado, o script será executado e as transações serão importadas para o Planilhas Google.
Na próxima parte do tutorial, aprenderemos como exportar as transações do PayPal do Planilhas Google para um arquivo XML para importação no software de contabilidade Tally.
Veja também: Enviar faturas do PayPal do Planilhas Google