Cómo importar transacciones de PayPal a Google Sheets
Publicado: 2022-06-16Este 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.
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.
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