Skip to main content

Python SDK for accessing Sage Intacct APIs

Project description

Sage Intacct SDK

Python SDK to access Sage Intacct web services

Installation

This project requires Python 3+ and Requests library (pip install requests).

  1. Download this project and use it (copy it in your project, etc).

  2. Install it from pip.

     $ pip install sageintacctsdk
    

Usage

To use this SDK you'll need these Sage Intacct credentials used for authentication: sender ID, sender password, user ID, company ID and user password.

This SDK is very easy to use.

  1. First you'll need to create a connection using the main class SageIntacctSDK.
from sageintacctsdk import SageIntacctSDK

connection = SageIntacctSDK(
    sender_id='<YOUR SENDER ID>',
    sender_password='<YOUR SENDER PASSWORD>',
    user_id='<YOUR USER ID>',
    company_id='<YOUR COMPANY ID>',
    user_password='<YOUR USER PASSWORD>'
)
  1. After that you'll be able to access any of the 28 API classes: accounts, ap_payments, ar_invoices, ar_payments, attachments, bills, charge_card_accounts, charge_card_transactions, checking_accounts, classes, contacts, customers, departments, employees, expense_payment_types, expense_reports, expense_types, gl_detail, items, locations, order_entry_transactions, projects, reimbursements, revenue_recognition_schedules, revenue_recognition_schedule_entries, savings_accounts, tasks and vendors.
"""
USAGE: <SageIntacctSDK INSTANCE>.<API_NAME>.<API_METHOD>(<PARAMETERS>)
"""

# Create a new Expense Report of 3800 USD, spent at 2019-28-11 and from employee with employee id E101
data = {
    'employeeid': 'E101',
    'datecreated': {
        'year': 2019,
        'month': 11,
        'day': 28
    },
    'state': 'Approved',
    'description': 'Team lunch',
    'expenses': {
        'expense': [
            {
                'expensetype': 'Food',
                'amount': 3800,
                'expensedate': {
                    'year': 2019,
                    'month': 11,
                    'day': 28
                }
            }
        ]
    }
}
response = connection.employees.post(data)

# Use get_all methods to get all objects of certain types
response = connection.accounts.get_all()

# Get details of Employee with EMPLOYEEID E101
response = connection.employees.get(field='EMPLOYEEID', value='E101')

Advanced Queries

Several methods of querying the Sage Inacct API exists within the SDK. <get_by_query> allows you to specify multiple critera using textual mathematical operators and logical filters.

Arguments are passed to and_filter, or_filter, or both. The and_filter is the default operator to pass filters to. For example if you want to pass a single operator without a logical context you would pass it to and_filter.

You must pass multiple operators to or_filter.

You may also format your own filter payload in accordance with API documentation and pass to the function.

See query structures here: https://developer.intacct.com/web-services/queries/

Warning: Operators can only be used once in a given logical context. and_filter cannot accept multiple 'equalto' operators for example. This is an API limitation.

#
# Returns Data Structure of object to perform query on.  Helpful to identify field keys.
print(connection.gl_detail.get_lookup())

# Returns records between specified dates
query_tuple_between = [('between','ENTRY_DATE',['01/01/2020','12/31/2020'])]
fields = ['RECORDNO','ENTRY_DATE','BATCH_NO','ACCOUNTNO','DEBITAMOUNT']
response = connection.gl_detail.get_by_query(fields=fields,and_filter=query_tuple_between)

# Returns records between specified accounts
query_tuple_multiple =[('greaterthan','ACOUNTNO','6000'),('lessthan','ACCOUNTNO','7000')]
response = connection.gl_detail.get_by_query(fields=fields,and_filter=query_tuple_multiple)

# Returns records that match list
in_list = ['1000','1100','1200']
query_tuple_in = [('in','ACCOUNTNO',in_list)]
response = connection.gl_detail.get_by_query(fields=fields,and_filter=query_tuple_in)

payload = {'and':{'equalto':{'field':'ACCOUNTNO','value':'1000'}}}
response = connnection.gl_detail.get_by_query(filter_payload=payload)

See more details about the usage into the wiki pages of this project.

License

This project is licensed under the MIT License - see the LICENSE file for details

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sageintacctsdkdiob-1.1.0.tar.gz (4.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sageintacctsdkDIOB-1.1.0-py3-none-any.whl (4.1 kB view details)

Uploaded Python 3

File details

Details for the file sageintacctsdkdiob-1.1.0.tar.gz.

File metadata

  • Download URL: sageintacctsdkdiob-1.1.0.tar.gz
  • Upload date:
  • Size: 4.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.7

File hashes

Hashes for sageintacctsdkdiob-1.1.0.tar.gz
Algorithm Hash digest
SHA256 7c2a6d957c5e9bbb5c87b63ff3aed7a3694e87e049d655bba1ec7193752fae94
MD5 d63fec13e0d7e70f53c4816516686803
BLAKE2b-256 557b1ae982bae908271ddeb4ad054bfcc61f55ccf4e68c5c5b1c26f8834dad84

See more details on using hashes here.

File details

Details for the file sageintacctsdkDIOB-1.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for sageintacctsdkDIOB-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3e543e66eb103c3183691eab9c311bf778f895b182edd053fd5688e275298ded
MD5 9ca9d3daaf3b8d9f4cd846aa83d2791f
BLAKE2b-256 3d467d9e9ea4437ed9a3f448f367770671c8854eab8f4ad9055d3bfacb7bf058

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page