Skip to main content

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 30 API classes: accounts, ap_payments, ar_invoices, ar_payments, ar_aging, 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, vendors and inventory_control_price_list_entries.
"""
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

Release files for sageintacctsdk 1.28.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sageintacctsdk 1.28.1
File Size Uploaded
sageintacctsdk-1.28.1.tar.gz 24.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sageintacctsdk 1.28.1
File Interpreter ABI Platform
sageintacctsdk-1.28.1-py3-none-any.whl Python 3 none any Details

Total release size:61.3 kB

Release files / sageintacctsdk-1.28.1.tar.gz

Download URL sageintacctsdk-1.28.1.tar.gz
Size 24.2 kB
Tags Source
SHA-256 checksum
How to use checksums
f019d5db09a16a84b5433cd70d7933f3853ba935214f1893b74df4c45a49c9f7
BLAKE2b-256 checksum
How to use checksums
2dcacf331b2044362c8d2bff2c3db1bf45697cab8fb469128fe9e58a3dc2131a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.4

Release files / sageintacctsdk-1.28.1-py3-none-any.whl

Download URL sageintacctsdk-1.28.1-py3-none-any.whl
Size 37.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9284e25b7cb6a42100383e11e45310446e7aa7f282874f11a588c9caeddf17c1
BLAKE2b-256 checksum
How to use checksums
97d19b4d9f74a3ac5614dc12156683934693bb6e98f07b7b672ff4907cc0da74
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.4

Release history Release notifications | RSS feed

This release

1.28.1 This release

2 release files

1.28.0

2 release files

1.27.4

2 release files

1.27.3

2 release files

1.27.0

2 release files

1.26.3

2 release files

1.26.2

2 release files

1.26.1

2 release files

1.26.0

2 release files

1.25.2

2 release files

1.25.1

2 release files

1.25.0

2 release files

1.24.0

2 release files

1.23.4

2 release files

1.23.3

2 release files

1.22.5

2 release files

1.22.1

2 release files

1.22.0

2 release files

1.21.1

2 release files

1.21.0

2 release files

1.20.0

2 release files

1.19.2

2 release files

1.19.1

2 release files

1.18.0

2 release files

1.17.0

2 release files

1.16.1

2 release files

1.15.0

2 release files

1.14.2

2 release files

1.14.0

2 release files

1.13.3

2 release files

1.13.2

2 release files

1.13.1

2 release files

1.12.2

2 release files

1.12.1

2 release files

1.12.0

2 release files

1.11.1

2 release files

1.10.0

2 release files

1.9.6

2 release files

1.9.5

2 release files

1.9.4

2 release files

1.9.3

2 release files

1.9.2

2 release files

1.9.1

2 release files

1.9.0

2 release files

1.8.0

2 release files

1.7.1

2 release files

1.7.0

2 release files

1.6.0

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.13.1

2 release files

0.13.0

2 release files

0.12.0

2 release files

0.11.0

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page