Giter VIP home page Giter VIP logo

tap-quickbooks's Introduction

tap-quickbooks

This tap is in development.

This is a Singer tap that produces JSON-formatted data following the Singer spec.

Description

This tap:

  • Pulls raw data from Quickbooks API

  • Extracts from the following sources to produce streams. Below is a list of all the streams available. See the streams file for a list of classes where each one has a constant indiciating if the stream's replication_method is INCREMENTAL or FULL_TABLE and what is the replication_key.

    • Stream
    • Accounts
    • Budgets
    • Classes
    • CreditMemos
    • BillPayments
    • SalesReceipts
    • Purchases
    • Payments
    • PurchaseOrders
    • PaymentMethods
    • JournalEntries
    • Items
    • Invoices
    • Customers
    • RefundReceipts
    • Deposits
    • Departments
    • Employees
    • Estimates
    • Bills
    • TaxAgencies
    • TaxCodes
    • TaxRates
    • Terms
    • TimeActivities
    • Transfers
    • VendorCredits
    • Vendors
  • Includes a schema for each resource reflecting most recent tested data retrieved using the api. See the schema folder for details.

  • Incrementally pulls data based on the input state

Authentication

Authentication is handled with oauth v2. In the tap configuration the following fields are required for authentication to work correctly:

  • client_id
  • client_secret
  • refresh_token

These values are all obtained from the oauth steps documented on quickbook's documentation page.

Quick Start

  1. Install

    Clone this repository, and then install using setup.py. We recommend using a virtualenv:

    $ virtualenv -p python3 venv
    $ source venv/bin/activate
    $ pip install -e .
  2. Create your tap's config.json file. The tap config file for this tap should include these entries:

    • start_date - the default value to use if no bookmark exists for an endpoint (rfc3339 date string)
    • user_agent (string, optional): Process and email for API logging purposes. Example: tap-quickbooks <api_user_email@your_company.com>
    • sandbox (string, optional): Whether to communication with quickbooks's sandbox or prod account for this application. If you're not sure leave out. Defaults to false.

    And the other values mentioned in the authentication section above.

    {
    	"client_id": "<app_id>",
    	"start_date": "2020-08-21T00:00:00Z",
    	"refresh_token": "<refresh_token>",
    	"client_secret": "<app_secret>",
    	"sandbox": "<true|false>",
    	"user_agent": "Stitch Tap ([email protected])"
    }
  3. Run the Tap in Discovery Mode This creates a catalog.json for selecting objects/fields to integrate:

    tap-quickbooks --config config.json --discover > catalog.json

    See the Singer docs on discovery mode here.

  4. Run the Tap in Sync Mode (with catalog) and write out to state file

    For Sync mode:

    $ tap-quickbooks --config tap_config.json --catalog catalog.json >> state.json
    $ tail -1 state.json > state.json.tmp && mv state.json.tmp state.json

    To load to json files to verify outputs:

    $ tap-quickbooks --config tap_config.json --catalog catalog.json | target-json >> state.json
    $ tail -1 state.json > state.json.tmp && mv state.json.tmp state.json

    To pseudo-load to Stitch Import API with dry run:

    $ tap-quickbooks --config tap_config.json --catalog catalog.json | target-stitch --config target_config.json --dry-run >> state.json
    $ tail -1 state.json > state.json.tmp && mv state.json.tmp state.json
    

Copyright © 2020 Stitch

tap-quickbooks's People

Contributors

kspeer825 avatar bazarnov avatar cosimon avatar zachharris1 avatar vitaliizazmic avatar kallan357 avatar asaf-erlich avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.