Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

a REST client class for the API of

Project Description


The factuursturen package is a client for the dutch webservice API.

To be able to use the API, you will need an API key. You can get one with these steps:
* log in on
* click 'Instellingen'
* click 'Verbindingen'
* click 'Maak API Sleutel'

API documentation can be found at (or there might be a newer version
present at the moment you read this)

Typical usage is something like this:

#!/usr/bin/env python
import factuursturen

username = 'foo'
apikey = 'some_long_string'

fact = factuursturen.Client(apikey, username)

clients = fact.get('clients')

new_product = {'code': 'Productcode',
'name': 'Name of this product',
'price': 123.45,
'taxes': 21}
try:'products', data)
except FactuursturenWrongPostvalue as errormessage:
print "oops! {errormessage}".format(errormessage=errormessage)

invoices = fact.get('invoices')

for invoice in invoices:
invoicenr = invoice[u'invoicenr']
pdf = fact.get('invoices_pdf', invoicenr)

filename = '/tmp/{invoicenr}.pdf'.format(invoicenr=invoicenr)
with open(filename, 'w') as f:
print "{} written".format(filename)
except factuursturenEmptyResult:
print "factuur {invoicenr} is empty".format(invoicenr=invoicenr)


* type this command:
sudo pip install factuursturen

* download source
* extract
* cd into directory containing
* type this command
python install

Changes from the API documentation
This client is pythonic, so some things are translated:
- booleans are returned as true booleans (not as strings with 'true')
- nested dictionaries can be used in posting (will be flattened automatically)
- returned dicts are the same structure as a dict that can be used for posting


You can either pass username and apikey when instantiating an object:

import factuursturen
username = 'foo'
apikey = 'some_long_string'
fact = factuursturen.Client(apikey, username)

or create a file named .factuursturen_rc in the current directory or your home directory like this:

username = foo
apikey = some_long_string

(note: no quotes!), and create the object without explicitely passing them:

import factuursturen
fact = factuursturen.Client()

create a product

import factuursturen
fact = factuursturen.Client()
new_product = {'code': 'Productcode',
'name': 'Name of this product',
'price': 123.45,
'taxes': 21}
try:'products', new_product)
except factuursturen.FactuursturenWrongPostvalue as errormessage:
print "oops! {errormessage}".format(errormessage=errormessage)

create a client

client = {'contact' : 'John Doe',
'showcontact' : True,
'company' : 'Johnny Bravo Inc.',
'address' : 'Sir John Road 100',
'zipcode' : '1337 JB',
'city' : 'Johnsville',
'country' : 146,
'phone' : '010 123 4567',
'mobile' : '0612 34 56 78',
'email' : '',
'bankcode' : '123456789',
'taxnumber' : 'NL001234567B01',
'tax_shifted' : False,
'sendmethod' : 'email',
'paymentmethod' : 'bank',
'top' : 3,
'stddiscount' : 5.30,
'mailintro' : 'Dear Johnny,',
'reference' : {'line1': 'Your ref: ABC123',
'line2': 'Our ref: XZX0029/2932/001',
'line3': 'Thank you for your order'},
'notes' : 'This client is always late with his payments',
'notes_on_invoice' : False

clientid ='clients', client)
print "client added with id {id}".format(id=clientid)
except factuursturen.FactuursturenError as errormessage:
print "oops! {errormessage}".format(errormessage=errormessage)

send an invoice to a client

Release History

This version
History Node


History Node


History Node


History Node


Download Files

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

Filename, Size & Hash SHA256 Hash Help File Type Python Version Upload Date
(9.7 kB) Copy SHA256 Hash SHA256
Source None Aug 6, 2013

Supported By

Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Google Google Cloud Servers