Reconcile

Video Thumbnail

Stripe and Xero reconcile

https://vimeo.com/234981605 Stripe Payouts On an individual payout screen run the following to output a list of Stripe transactions with the associated fees. fees = jQuery('tr.Table-row.DataTable-row:nth-child(1) td:nth-child(4)').text(); stripe_transactions = []; jQuery('.bs-ObjectList-group a').ea

Stripe Payouts

On an individual payout screen run the following to output a list of Stripe transactions with the associated fees.

fees = jQuery('tr.Table-row.DataTable-row:nth-child(1) td:nth-child(4)').text();
stripe_transactions = [];
jQuery('.bs-ObjectList-group a').each(function() {
    transaction = jQuery(this).attr('href').replace("/payments/", "");
    stripe_transactions.push(transaction);
    console.log(transaction);
});
console.log( "Fees: "+ fees );
console.log( "stripe_transactions = "); stripe_transactions

This makes matching the transactions within Xero a simple copy/paste and search. For bulk transactions you can bring over the stripe_transactions variable and run through this to automate Xero reconcile.

total_transactions = stripe_transactions.length;
current_transation = 0;
var checkExist = setInterval(function() {
  document.querySelector('.newsearchcol input#searchNameText').value = stripe_transactions[current_transation];
   // Results more then 2 so trigger go button
   if ( document.querySelectorAll('div#availableTransactionList .transaction-row div.checkbox input').length > 2 ) {
       document.querySelector('.newsearchcol a.xbtn.blue').click();
   }
   if ( document.querySelectorAll('div#availableTransactionList .transaction-row div.checkbox input').length == 1 ) {
      document.querySelector('div#availableTransactionList .transaction-row div.checkbox input').click();
      if (document.querySelectorAll('#selectedTransactionList div.transaction-row').length == current_transation ) { 
      document.querySelector('.newsearchcol a.xbtn.blue').click();
      console.log(current_transation);
      current_transation = current_transation + 1;
      }
      if ( current_transation == total_transactions ) {
         clearInterval(checkExist); // final transation processed so stop
      }
   }
}, 400); // check every 100ms