Cómo importar transacciones de PayPal a Google Sheets

Publicado: 2022-06-16

PayPal transactions in Google Sheets

Este tutorial le mostrará cómo importar transacciones de PayPal a Hojas de cálculo de Google con la ayuda de Google Apps Script. Puede optar por importar pagos estándar de PayPal, pagos de suscripciones recurrentes, donaciones o incluso reembolsos y devoluciones de cargo a Hojas de cálculo de Google.

Una vez que los datos se han importado a Hojas de cálculo de Google, puede exportarlos a un archivo CSV e importarlos al software de contabilidad Quickbooks. Los usuarios de Tally en India pueden exportar transacciones de PayPal desde Hojas de cálculo de Google a formato XML e importarlas de forma masiva a Tally.

Ver también: Automatice PayPal con Formularios de Google

Importar transacciones de PayPal en Hojas de cálculo de Google

Para este ejemplo, importaremos la lista de donantes a Hojas de cálculo de Google que hayan realizado las donaciones a través de PayPal.

1. Cree credenciales de API dentro de PayPal

Inicie sesión en su panel de desarrollador de PayPal (developer.paypal.com) y cree una nueva aplicación en el modo en vivo. Asigne un nombre a su aplicación: Transaction Importer for Google Sheets y haga clic en el botón Crear aplicación.

PayPal creará una ID de cliente y una clave secreta de cliente que necesitará en un paso posterior. En la sección de configuración de la aplicación en vivo, marque la opción Transaction Search y desactive todas las demás opciones, ya que solo queremos que las claves API enumeren las transacciones y no tengan ninguna otra funcionalidad. Haga clic en Guardar para continuar.

Paypal Account Credentials

2. Crea un Proyecto de Hojas de cálculo de Google

Vaya a sheets.new para crear una nueva hoja de cálculo de Google. Vaya al menú Extensiones y elija Apps Script para abrir el editor de Apps Script.

Copie y pegue el código en el editor. Recuerde reemplazar el código de transacción con el suyo propio. Puede usar T0002 para suscripciones de PayPal, T0014 para pagos de donaciones o T1107 para reembolsos y contracargos de PayPal.

El comentario /* @OnlyCurrentDoc */ es un comentario de Google Apps Script que le dice a Google Apps Script que solo ejecute el código dentro de la hoja de Google actual y que no requiera acceso a ninguna otra hoja de cálculo en su 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. Ejecute la función de importación de PayPal

Dentro del editor de secuencias de comandos, haga clic en el botón Ejecutar para importar transacciones de PayPal. Es posible que deba autorizar la secuencia de comandos, ya que requiere permisos para conectarse a la API de PayPal y también escribir datos en Hojas de cálculo de Google en su nombre.

Eso es todo. Si hay transacciones de PayPal para importar en el rango de fechas seleccionado, el script se ejecutará y las transacciones se importarán a Hojas de cálculo de Google.

Run PayPal Importer

En la siguiente parte del tutorial, aprenderemos cómo exportar las transacciones de PayPal desde Hojas de cálculo de Google a un archivo XML para importarlo al software de contabilidad Tally.

Ver también: Enviar facturas de PayPal desde Hojas de cálculo de Google