expensify

    0.2.0 • Public • Published

    JavaScript Expensify API for Node.JS

    A Node.JS module providing a wrapper for the Expensify API.

    Installation

    Install with the Node.JS package manager npm NPM version:

      $ npm install expensify
    

    or

    Install via git clone:

      $ git clone git://github.com/brendannee/node-expensify.git
      $ cd node-expensify
      $ npm install
    

    Example

    Generate an Expensify SSO for user 'testuser@test.com'.

    var Expensify = require('expensify');
     
    var expensify = new Expensify({
      expensifyPartnerName: <YOUR EXPENSIFY_PARTNER_NAME>,
      expensifyPartnerPassword: <YOUR EXPENSIFY_PARTNER_PASSWORD>,
      expensifyAesKey: <YOUR EXPENSIFY_AES_KEY>,
      expensifyAesIv: <YOUR EXPENSIFY_AES_IV>
    });

    Create and store a user id and secret for the the user you'd like to connect

    expensify.authenticate({
      userSecret: 'MyGreatSecret'
    }, function(e, sso) {
      console.log(sso);
    });

    Get an formatted Authorize URL

    expensify.authorizeUrl({
      sso: '675sd98769sd69sd',
      userId: 'testuser@test.com',
      exitTo: 'http://mysite.com/expensify/redirect'
    }, function(e, url) {
      console.log(url);
    });

    Create an expense transaction using the sso created above.

    expensify.createDistanceTransaction({
      created: '2015-04-07',
      merchant: 'Tire Emporium',
      amount: 2299,
      currency: 'USD',
      comment: 'New tires for my car',
      sso: sso,
      partnerUserId: 'testuser@test.com'
    }, function(e, body) {
      console.log('Transaction created');
    });

    Create a separate distanceTransaction for that user.

    expensify.createDistanceTransaction({
      created: '2015-04-07',
      distance: 2.3,
      units: 'Mi',
      comment: 'A trip to the store',
      sso: sso,
      partnerUserId: 'testuser@test.com'
    }, function(e, body) {
      console.log('Distance Transaction created');
    });

    Upload a receipt

    expensify.uploadReceipt({
      file: 'R0lGODlhEAAQAKUAAAAAABbkKBfhKRXlJxfiKBjgKRndKhrbKxzYKxbjKBneKhrcKhvZKxzXLB7VLRjfKRzYLB3WLBrbKh7ULR/SLh3VLR/TLSDQLiHOLyLLMCTJMB/RLiHPLyLMLyPKMCTIMSbFMifDMyXGMSjBMym/NCfCMyq9NCu7NSXGMifDMim+NCq8NSu5NSu6Nf///////////////////////////////////////////////////////////////////////yH5BAEKAD8ALAAAAAAQABAAAAZlwJ9wSCwafwDAsZgMCJJL5IBQMBwQSiMgIVAsGA1HlvkwACAR6BEgYQAmFLW2UbFcMBnNmLnhdDwfICF7REkfIgAjJIRDSSAlACYnjEgoKSMqKywslAAlJCYtm5RCSaOkhahRRkEAOw==',
      created: '2015-04-07',
      merchant: 'Tire Emporium',
      amount: 2299,
      currency: 'USD',
      comment: 'New tires for my car',
      sso: sso,
      partnerUserId: 'testuser@test.com'
    }, function(e, body) {
      console.log('Receipt uploaded');
    });

    Fetch a receipt from a URL

    expensify.fetchReceipt({
      location: 'http://we.are.expensify.com/assets/img/icon-rounded.png',
      created: '2015-04-07',
      merchant: 'Tire Emporium',
      amount: 2299,
      currency: 'USD',
      comment: 'New tires for my car',
      sso: sso,
      partnerUserId: 'testuser@test.com'
    }, function(e, body) {
      console.log('Receipt fetched');
    });
     

    LICENSE

    MIT license. See the LICENSE file for details.

    Keywords

    none

    Install

    npm i expensify

    DownloadsWeekly Downloads

    2

    Version

    0.2.0

    License

    none

    Last publish

    Collaborators

    • brendannee