Como importar transações do PayPal para o Planilhas Google

Publicados: 2022-06-16

PayPal transactions in Google Sheets

Este 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.

Paypal Account Credentials

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.

Run PayPal Importer

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