Bill.com
Bill.com is an online billing and invoicing tool. For more information, see Bill.com developer docs
Quick Start
from parsons import BillCom
bc = BillCom(USERNAME, PASSWORD, ORG_ID, DEV_KEY, ENDPOINT_URL)
# List all Customers currently in the system
all_contacts = bc.get_customer_list()
# Create a new customer
customer_data = {
"contactFirstName": "Contact First Name",
}
bc.create_customer('Customer Name', 'customer.email@fakeemail.com', customer_data)
API
- class parsons.BillCom(user_name, password, org_id, dev_key, api_url)[source]
- Args:
- user_name: str
The Bill.com username
- password: str
The Bill.com password
- org_id: str
The Bill.com organization id
- dev_key: str
The Bill.com dev key
- api_url:
The Bill.com end point url
- get_user_list(start_user=0, max_user=999, **kwargs)[source]
- Args:
- start_user: int
The index of first user to return. Starts from 0 (not 1).
- max_user: str
The index of the max user to return
- **kwargs:
Any other fields to pass
- Returns:
A Parsons Table of user information for every user from start_user to max_user.
- get_customer_list(start_customer=0, max_customer=999, **kwargs)[source]
- Args:
- start_customer: int
The index of first customer to return. Starts from 1 (not 0).
- max_customer: str
The index of the max customer to return
- **kwargs:
Any other fields to pass
- Returns:
A Parsons Table of customer information for every user from start_customer to max_customer.
- get_invoice_list(start_invoice=0, max_invoice=999, **kwargs)[source]
- Args:
- start_invoice: int
The index of first customer to return. Starts from 1 (not 0).
- max_invoice: str
The index of the max customer to return
- **kwargs:
Any other fields to pass
- Returns:
A list of dictionaries of invoice information for every invoice from start_invoice to max_invoice.
- read_customer(customer_id)[source]
- Args:
- customer_id: str
The id of the customer to query
- Returns:
A dictionary of the customer’s information.
- read_invoice(invoice_id)[source]
- Args:
- invoice_id: str
The id of the invoice to query
- Returns:
A dictionary of the invoice information.
- check_customer(customer1, customer2)[source]
- Args:
- customer1: dict
A dictionary of data on customer1
- customer2: dict
A dictionary of data on customer2
- Returns:
- True if either
1. customer1 and customer2 have the same id OR 2. customer1 has no id and customer1 customer2 have the same email address
False otherwise
- get_or_create_customer(customer_name, customer_email, **kwargs)[source]
- Args:
- customer_name: str
The name of the customer
- customer_email: str
The customer’s email
- Keyword Args:
- **kwargs:
Any other fields to store about the customer.
- Returns:
A dictionary of the customer’s information including an id. If the customer already exists, this function will not create a new id and instead use the existing id.
- create_invoice(customer_id, invoice_number, invoice_date, due_date, invoice_line_items, **kwargs)[source]
- Args:
- customer_id: str
The customer’s id
- invoice_number: str
The invoice number. Every invoice must have a distinct invoice number.
- invoice_date: str
The invoice date. This can be the date the invoice was generated of any other relevant date.
- due_date: str
The date on which the invoice is due.
- invoice_line_items: list
A list of dicts, one for each line item in the invoice. The only required field is “quantity”.
- **kwargs:
Any other invoice details to pass.
- Returns:
A dictionary of the invoice’s information including an id.
- send_invoice(invoice_id, from_user_id, to_email_addresses, message_subject, message_body, **kwargs)[source]
- Args:
- invoice_id: str
The id of the invoice to send
- from_user_id: str
The id of the Bill.com user from whom to send the email
- to_email_addresses:
The customer’s email address
- message_subject:
The subject of the email to send to the customer
- message_body:
The body of the email to send to the customer
- **kwargs:
Any other details for sending the invoice
- Returns:
A dictionary of the sent invoice.