Earny API v2

Dit is de documentatie voor de nieuwe API van Earny. Het is een RESTful API die enkel met JSON werkt.

Deze API is publiek beschikbaar sinds november 2012 en vervangt de oude XML-RPC API.

Basis

De API is bereikbaar via https://secure.earny.nl/api/. De API is alleen over HTTPS bereikbaar en niet over HTTP. Er wordt geen gebruik gemaakt van versioning in de URL. In de toekomst kan de gewenste API versie worden meegegeven via een HTTP Header. Zonder aparte header wordt altijd de laatste versie van de API gebruikt.

Rate limiting

Er is een rate limit per gebruiker per IP adres. Deze ligt in normale gevallen rond de 500 requests per minuut, maar kan dynamisch worden bijgesteld aan de hand van de load op het platform. Middels de header X-RateLimit-Limit wordt weergegeven wat op dat moment de rate limit is. Via X-RateLimit-Remaining wordt weergegeven hoeveel requests er nog remaining zijn.

X-RateLimit-Limit: 500
X-RateLimit-Remaining: 429

User-Agent

Het is verplicht een User-Agent header mee te geven. Vermeld daarin de naam van de applicatie of plugin, met daarbij een website adres of e-mailadres zodat we contact kunnen opnemen mocht daar aanleiding voor zijn.

User-Agent: MyEarnyClient (www.earny.nl/api)

Authenticatie

Authenticatie gebeurd middels HTTP AUTH Basic. Gebruikersnaam en wachtwoord zijn dezelfde als waarmee op Earny zelf wordt ingelogd. Het is verstandig om een aparte API gebruiker toe te voegen en die te gebruiken voor API toegang. Het is niet mogelijk de API te gebruiken met gebruikers waarvoor dubbele verificatie is ingeschakeld.

Later zal OAuth 2.0 worden toegevoegd.

Response codes

Voor het teruggeven van het resultaat, gebruiken we HTTP Status Codes. Bij een succesvolle request wordt de status 200 OK teruggegeven, of in het geval van een create een 201 Created.

Errors

Bij een mislukte request, wordt er een 4xx of een 500 code meegegeven. Als JSON komt in de meeste gevallen een melding terug waarom er een fout is opgetreden.

CodeReden
400 Bad RequestDe data die wordt meegegeven als JSON is niet correct. Zie de message voor meer info.
401 UnauthorizedLogingegevens zijn incorrect of de functionaliteit is niet beschikbaar voor het huidige abonnement.
403 ForbiddenGeen toegang tot dit object.
404 Not FoundObject kon niet worden gevonden.
429 Too Many RequestsAls er meer requests dan de rate limit worden gebruikt.
500 Internal Server ErrorAls de functie/endpoint niet bestaat of door een fout in Earny.

JSON

Alle data in de request en in de response wordt in JSON weergegeven.

POST https://secure.earny.nl/api/contacts
Request
{
	"name": "Websites B.V."
}
Response
HTTP/1.1 201 Created

{
	"idcontact": 29,
	"name": "Websites B.V."
}

Limit en start

Alle lijsten die opgehaald worden, worden standaard gelimiteerd op 100 items per request. Middels de querystring ?start=100 kun je de volgende ophalen, en met ?start=200 items 200 tot 299.

Filtering en full optie

Sommige lijsten zijn te filteren met queryparameters. Zo kunnen bijvoorbeeld alleen de contacts opgehaald worden van het type 'client':

GET /api/contacts?client=1

Standaard worden in lijsten minder informatie gegeven dan er van het object beschikbaar zijn. Met de optie full=1 wordt in de lijst alle beschikbare informatie teruggegeven. Bijvoorbeeld:

GET /api/contacts?full=1

Onderdelen

De verschillende onderdelen die op dit moment via de API beschikbaar zijn, zijn de volgende:

Contacts

Alle contacten ophalen

GET https://secure.earny.nl/api/contacts
Request
Response
HTTP/1.1 200 OK

[
	{
		"idcontact":493,
		"name":"Websites B.V.",
		"saluation":"geen",
		"contactname":"",
		"emailaddress":"",
		"contacttype":"company",
		"datetimeadded": "2011-02-10 14:22:12",
		"datetimeedited": "2012-11-08 10:33:46"
	},
	{
		"idcontact":460,
		"name":"Drogist B.V.",
		"saluation":"Mevrouw",
		"contactname":"Lianne de Boer",
		"emailaddress":"test@example.com",
		"contacttype":"person",
		"datetimeadded": "2011-02-10 14:22:12",
		"datetimeedited": "2012-11-08 10:33:46"
	}
]

Queryparamaters (optioneel)

updatedsince Geef een datum in om alleen de toegevoegde/gewijzigde relaties te zien sinds die datum (formaat: 2012-01-01)
client Geef alleen clients weer als deze 1 is
supplier Geef alleen suppliers weer als deze 1 is

Eén contact ophalen

GET https://secure.earny.nl/api/contacts/{idcontact}
Request
Response
HTTP/1.1 200 OK

{
	"idcontact":195,
	"name":"Websites B.V.",
	"saluation":"De heer",
	"contactname":"Jan Jansen",
	"emailaddress":"test@example.com",
	"contacttype":"company",
	"datetimeadded": "2011-02-10 14:22:12",
	"datetimeedited": "2012-11-08 10:33:46",
	"supplier":false,
	"client":true,
	"postaddress":{
		"address":"Gouderegenstraat 8",
		"zipcode":"6953 BE",
		"city":"Amsterdam",
		"country":"nl"
	},
	"visitaddress":{
		"address":"",
		"zipcode":"",
		"city":"",
		"country":"nl"
	},
	"phone":"+31313484422",
	"mobilephone":"",
	"fax":"",
	"chamberofcommerce":"",
	"taxnumber":"",
	"directdebitaccount":"",
	"directdebitname":"",
	"idpaymentmethod":null,
	"idtemplate":null,
	"contactcategories":[48,201]
}

Contact toevoegen

POST https://secure.earny.nl/api/contacts
Request
{
	"name":"Websites B.V.",
	"saluation":"De heer",
	"contactname":"Jan Jansen",
	"emailaddress":"test@example.com",
	"contacttype":"company",
	"supplier":false,
	"client":true,
	"postaddress":{
		"address":"Goudenregenstraat 8",
		"zipcode":"6953 BE",
		"city":"Amsterdam",
		"country":"nl"
	},
	"phone":"+31313484422",
	"contactcategories":[48,201]
}
Response
HTTP/1.1 201 Created

{
	"idcontact":195,
	"name":"Websites B.V.",
	"saluation":"De heer",
	"contactname":"Jan Jansen",
	"emailaddress":"test@example.com",
	"contacttype":"company",
	"datetimeadded": "2011-02-10 14:22:12",
	"datetimeedited": "2012-11-08 10:33:46",
	"supplier":false,
	"client":true,
	"postaddress":{
		"address":"Goudenregenstraat 8",
		"zipcode":"6953 BE",
		"city":"Amsterdam",
		"country":"nl"
	},
	"visitaddress":{
		"address":null,
		"zipcode":null,
		"city":null,
		"country":"nl"
	},
	"phone":"+31313484422",
	"mobilephone":null,
	"fax":null,
	"chamberofcommerce":null,
	"taxnumber":null,
	"directdebitaccount":null,
	"directdebitname":null,
	"idpaymentmethod":null,
	"idtemplate":null,
	"contactcategories":[48,201]
}
name verplicht Naam van het contact (bedrijfsnaam of persoonsnaam)
saluation Aanhef, mogelijkheden: null, "De heer" of "Mevrouw"
contactname Naam van de contactpersoon of afdeling, als contacttype = company
emailaddress Hier wordt standaard de factuur naar toe gestuurd
contacttype verplicht "company" of "person"
supplier verplicht true of false, er kunnen alleen inkomende facturen worden toegevoegd als de contact een supplier is
client verplicht true of false, er kunnen alleen uitgaande facturen worden toegevoegd als de contact een client is
postaddress dit adres wordt op de factuur vermeld, bevat address, zipcode, city en country. Country kan alleen de ISO landcode bevatten
visitaddress bevat address, zipcode, city en country. Country kan alleen de ISO landcode bevatten
phone
mobilephone
fax
chamberofcommerce KvK nummer
taxnumber BTW nummer
directdebitaccount rekeningnummer voor automatische incasso
directdebitname naam van rekeninghouder voor automatische incasso
idpaymentmethod standaard paymentmethod voor nieuwe facturen
idtemplate standaard template voor nieuwe facturen
contactcategories alle contactcategories waar deze contact in zit

Contact wijzigen

PUT https://secure.earny.nl/api/contacts/{idcontact}
Request
{
	"name":"Websites B.V.",
	"saluation":"Mevrouw",
	"contactname":"Jansen"
}
Response
HTTP/1.1 200 OK

{
	"idcontact":195,
	"name":"Websites B.V.",
	"saluation":"Mevrouw",
	"contactname":"Jansen",
	"emailaddress":"test@example.com",
	"contacttype":"company",
	"datetimeadded": "2011-02-10 14:22:12",
	"datetimeedited": "2012-11-08 10:33:46",
	"supplier":false,
	"client":true,
	"postaddress":{
		"address":"Goudenregenstraat 8",
		"zipcode":"6953 BE",
		"city":"Amsterdam",
		"country":"nl"
	},
	"visitaddress":{
		"address":null,
		"zipcode":null,
		"city":null,
		"country":"nl"
	},
	"phone":"+31313484422",
	"mobilephone":null,
	"fax":null,
	"chamberofcommerce":null,
	"taxnumber":null,
	"directdebitaccount":null,
	"directdebitname":null,
	"idpaymentmethod":null,
	"idtemplate":null,
	"contactcategories":[48,201]
}

Alle facturen van contact ophalen

GET https://secure.earny.nl/api/contacts/{idcontact}/invoices
Request
Response
HTTP/1.1 200 OK

[
	{
		"idinvoice":"20080200",
		"idcontact":195,
		"idpaymentmethod":12,
		"idtemplate":6,
		"invoicedate":"2008-09-17",
		"reference":null,
		"address":"Websites B.V.\nDe heer Jan Jansen\Goudenregenstraat 8\n6954 BE Amsterdam",
		"total":625,
		"vat":118.75
	},
	{
		"idinvoice":"20080235",
		"idcontact":195,
		"idpaymentmethod":12,
		"idtemplate":6,
		"invoicedate":"2008-10-21",
		"reference":null,
		"address":"Websites B.V.\nDe heer Jan Jansen\Goudenregenstraat 8\n6954 BE Amsterdam",
		"total":350,
		"vat":66.5
	}
]

Invoices

De invoices zijn de afgesloten facturen. Deze zijn daarom niet te wijzigen. Wel zijn ze te versturen en betalingen in te boeken. Nieuwe facturen maken verloopt middels de Drafts.

Alle invoices ophalen

GET https://secure.earny.nl/api/invoices
Request
Response
HTTP/1.1 200 OK

[
	{
		"idinvoice":"20070001",
		"idcontact":20,
		"idpaymentmethod":10,
		"idtemplate":6,
		"invoicedate":"2007-02-15",
		"reference":null,
		"address":"De heer Klaas Vaak\nDominee Hulsmanplantsoen 89\n6996 AM Beneden Leeuwen",
		"total":42.02,
		"vat":7.98
	},
	{
		"idinvoice":"20070002",
		"idcontact":102,
		"idpaymentmethod":10,
		"idtemplate":6,
		"invoicedate":"2007-02-16",
		"reference":null,
		"address":"De heer Klaas Vaak\nDominee Hulsmanplantsoen 89\n6996 AM Beneden Leeuwen",
		"total":58.82,
		"vat":11.18
	}
]

Queryparamaters (optioneel)

idcontact Alleen invoices van deze contact
startdate Geef invoices weer vanaf deze datum (formaat: 2012-01-01)
enddate Geef invoices weer tot en met deze datum (formaat: 2012-01-01)

Eén invoice ophalen

GET https://secure.earny.nl/api/invoices/{idinvoice}
Request
Response
HTTP/1.1 200 OK

{
	"idinvoice":"20120604",
	"idcontact":20,
	"idpaymentmethod":10,
	"idtemplate":6,
	"invoicedate":"2012-11-07",
	"reference":null,
	"address":"De heer Klaas Vaak\nDominee Hulsmanplantsoen 89\n6996 AM Beneden Leeuwen",
	"total":42.02,
	"vat":7.98,
	"paid":null,
	"paidamount":0,
	"remarks":"Op deze factuur zijn onze algemene voorwaarden van toepassing",
	"language":null,
	"publicurl":"https:\/\/secure.earny.nl\/view\/5jay1234cqezhqvedycfnmxj663b2dbp7g8vi\/",
	"pdf":"https:\/\/secure.earny.nl\/printpdf\/5jay1234cqezhqvedycfnmxj663b2dbp7g8vi\/",
	"rules":[
		{
			"idcategory":77,
			"idvatgroup":5,
			"productcode":"4",
			"name":"Hardware",
			"description":"Samsung DVD+\/- DUAL IVORY",
			"price":29,
			"amount":1
		},
		{
			"idcategory":77,
			"idvatgroup":5,
			"productcode":"3",
			"name":"Uurtarief",
			"description":"Installatie DVD brander + Software + Onderhoud PC",
			"price":13.02,
			"amount":1
		}
	],
	"attachments":[]
}

Versturen van invoice

POST https://secure.earny.nl/api/invoices/{idinvoice}/send
Request
{
	"documenttype": "invoice",
	"method": "email",
	"receivername": "Piet Dirksen",
	"receiveremail": "piet@example.com",
	"subject": "Factuur [factuurnummer]",
	"message": "Geachte heer Dirksen,\n\nBij deze sturen we uw nieuwe factuur.\n\nMet vriendelijke groet,\n\nEarny"
}
Response
HTTP/1.1 200 OK
""
documenttype "invoice" of "reminder", welk document gestuurd moet worden. Standaard: "invoice"
method verplicht "email", "earnymail" of "manual", op welke manier verstuurd moet worden. "email" stuurt direct een e-mail vanuit Earny, "earnymail" stuurt een echt geprinte factuur/herinnering via PostNL (extra kosten van toepassing), "manual" is alleen een logging dat de factuur verstuurd is
receivername Naam van ontanger, standaard contactname van contact
receiveremail E-mailadres waar factuur naar gestuurd wordt, standaard emailaddress van contact
subject onderwerp van de e-mail, standaard "Factuur [factuurnummer]"
message bericht van de e-mail, standaard zoals is ingesteld in de voorkeuren

Payment toevoegen

POST https://secure.earny.nl/api/invoices/{idinvoice}/payments
Request
{
	"amount": 45.20,
	"idpaymentmethod": 281,
	"date": "2012-07-09"
}
Response
HTTP/1.1 200 OK

{
	"idpaymentmethod":281,
	"date":"2012-07-09",
	"amount":45.2,
	"ideal":false
}
amount bedrag dat is betaald, standaard hele factuurbedrag
idpaymentmethod paymentmethod waarmee is betaald, standaard de paymentmethod van de invoice
date datum waarop de betaling heeft plaatsgevonden, standaard vandaag

Drafts

Drafts zijn de conceptfacturen. Je maakt eerst een draft aan, die je nog kunt aanpassen. Zodra deze helemaal gereed is, maak je een invoice van de draft. Invoices zijn definitief en kunnen niet gewijzigd worden.

Alle drafts ophalen

GET https://secure.earny.nl/api/drafts
Request
Response
HTTP/1.1 200 OK

[
	{
		"iddraft":18290,
		"idcontact":132,
		"idpaymentmethod":10,
		"idtemplate":29,
		"dateadded":"2012-06-30 23:58:42",
		"reference":null,
		"total":39,
		"vat":7.41
	},
	{
		"iddraft":18291,
		"idcontact":110,
		"idpaymentmethod":10,
		"idtemplate":29,
		"dateadded":"2012-07-01 00:00:01",
		"reference":null,
		"total":249,
		"vat":47.31
	}
]

Queryparamaters (optioneel)

idcontact Alleen drafts van deze contact

Eén draft ophalen

GET https://secure.earny.nl/api/drafts/{iddraft}
Request
Response
HTTP/1.1 200 OK

{
	"iddraft":18290,
	"idcontact":132,
	"idpaymentmethod":10,
	"idtemplate":29,
	"dateadded":"2012-06-30 23:58:42",
	"reference":null,
	"total":39,
	"vat":7.41,
	"remarks":"LET OP: Vanaf 1 juli 2012 ontvangt u deze factuur enkel nog per e-mail.\r\n\r\nDank u wel voor uw vertrouwen in Logict. Heeft u nog vragen of opmerkingen? Neemt u dan gerust contact met ons op, wij staan u graag te woord.",
	"language":"standaard",
	"rules":[
		{
			"iddraftrule":80401,
			"idcategory":86,
			"idvatgroup":3,
			"productcode":"",
			"name":"Kerio e-emailadres (200 MB)",
			"description":"info@example.com\nPeriode: van 01-07-2012 tot 01-07-2013",
			"price":39,
			"amount":1
		}
	],
	"attachments":[]
}

Draft aanmaken

POST https://secure.earny.nl/api/drafts
Request
{
	"idcontact":132,
	"idpaymentmethod":10,
	"idtemplate":29,
	"reference":"Uw inkoopnummer: 291882",
	"remarks":"Heeft u nog vragen of opmerkingen? Neemt u dan gerust contact met ons op, wij staan u graag te woord.",
	"language":"nl",
	"rules":[
		{
			"idcategory":86,
			"idvatgroup":3,
			"productcode":"",
			"name":"Kerio e-emailadres (200 MB)",
			"description":"info@example.com\nPeriode: van 01-07-2012 tot 01-07-2013",
			"price":39,
			"amount":1
		}
	]
}
Response
HTTP/1.1 201 Created

{
	"iddraft":18576,
	"idcontact":132,
	"idpaymentmethod":10,
	"idtemplate":29,
	"dateadded":"2012-07-10 08:49:56",
	"reference":"Uw inkoopnummer: 291882",
	"total":39,
	"vat":7.41,
	"remarks":"Heeft u nog vragen of opmerkingen? Neemt u dan gerust contact met ons op, wij staan u graag te woord.",
	"language":"nl",
	"rules":[
		{
			"iddraftrule":81600,
			"idcategory":86,
			"idvatgroup":3,
			"productcode":"",
			"name":"Kerio e-emailadres (200 MB)",
			"description":null,
			"price":39,
			"amount":1
		}
	],
	"attachments":[]
}
idcontact verplicht Naar wie de invoice verstuurd moet worden
idpaymentmethod De paymentmethod die op de invoice vermeld staat
idtemplate De template/layout van deze invoice
reference
remarks
language verplicht "nl" of "en"
rules Alle regels die op de invoice komen

Van de rules:

idcategory verplicht Op welke category deze omzet geboekt moet worden
idvatgroup De vatgroup bepaalt de BTW die op deze regel gerekend wordt. Standaard: 3
productcode
name verplicht
description
price In het formaat 18.29
amount In het formaat 2.50

Draft wijzigen

Regels die bij het wijzigen van de draft worden opgegeven, worden toegevoegd aan de draft.

PUT https://secure.earny.nl/api/drafts/{iddraft}
Request
{
	"reference":"Uw inkoopnummer: 10",
	"language":"en",
	"rules":[
		{
			"idcategory":80,
			"idvatgroup":2,
			"productcode":"",
			"name":"Kerio e-emailadres (200 MB)",
			"description":"Extra product",
			"price":291.29,
			"amount":2.50
		}
	]
}
Response
HTTP/1.1 200 OK

{
	"iddraft":18576,
	"idcontact":132,
	"idpaymentmethod":10,
	"dateadded":"2012-07-10 08:49:56",
	"reference":"Uw inkoopnummer: 10",
	"total":767.23,
	"vat":51.10,
	"remarks":"Heeft u nog vragen of opmerkingen? Neemt u dan gerust contact met ons op, wij staan u graag te woord.",
	"language":"en",
	"rules":[
		{
			"iddraftrule":81600,
			"idcategory":86,
			"idvatgroup":3,
			"productcode":"",
			"name":"Kerio e-emailadres (200 MB)",
			"description":null,
			"price":39,
			"amount":1
		},
		{
			"iddraftrule":81601,
			"idcategory":80,
			"idvatgroup":2,
			"productcode":"",
			"name":"Kerio e-emailadres (200 MB)",
			"description":null,
			"price":291.29,
			"amount":2.5
		}
	],
	"attachments":[]
}

Regel van draft verwijderen

PUT https://secure.earny.nl/api/drafts/{iddraft}
Request
{
	"rules":[
		{
			"iddraftrule":81600,
			"delete":true
		}
	]
}
Response
HTTP/1.1 200 OK

{
	"iddraft":18576,
	"idcontact":132,
	"idpaymentmethod":10,
	"dateadded":"2012-07-10 08:49:56",
	"reference":"Uw inkoopnummer: 10",
	"total":728.23,
	"vat":43.69,
	"remarks":"Heeft u nog vragen of opmerkingen? Neemt u dan gerust contact met ons op, wij staan u graag te woord.",
	"language":"en",
	"rules":[
		{
			"iddraftrule":81601,
			"idcategory":80,
			"idvatgroup":2,
			"productcode":"",
			"name":"Kerio e-emailadres (200 MB)",
			"description":null,
			"price":291.29,
			"amount":2.5
		}
	],
	"attachments":[]
}

Attachment toevoegen aan draft

Attachments zijn alleen mogelijk bij betaalde abonnementen.

Attachments zelf moeten base64 encode zijn en kleiner dan 2MB. Er is een maximum van 3 attachments per draft.

POST https://secure.earny.nl/api/drafts/{iddraft}/attachments
Request
{
	"name":"urenspecificatie.pdf",
	"contenttype":"application/pdf",
	"file":"JVBERi0xLjMKJcTl8uXrp/Og0MTGCjQgMCBkwOWQzOTRlYj4gXSA+PgpzdGFydHhyZWYKOTczMgolJUVPRgo="
}
Response
HTTP/1.1 200 OK

{
	"idattachment":155,
	"dateadded":"2012-07-10 09:20:27",
	"filename":"urenspecificatie.pdf",
	"filetype":"application\/pdf",
	"filelocation":"https:\/\/secure.earny.nl\/downloadbijlage\/155\/51033837736054742b074ab1a2f689839d076"
}

Verwijderen van attachment

DELETE https://secure.earny.nl/api/drafts/{iddraft}/attachments/{idattachment}
Request
Response
HTTP/1.1 200 OK
""

Invoice maken van draft

Zodra de draft wordt omgezet in een invoice, wordt er automatisch een idinvoice (factuurnummer) en invoicedate gegenereerd.

Let op: De Draft wordt verwijderd en is niet meer beschikbaar. In plaats daarvan is de factuur nu te vinden onder /api/invoices.

POST https://secure.earny.nl/api/drafts/{iddraft}/createinvoice
Request
Response
HTTP/1.1 200 OK

{
	"idinvoice":"20120624",
	"idcontact":132,
	"invoicedate":"2012-07-10",
	"reference":"Uw inkoopnummer: 10",
	"address":"Stichting Samenwerkende Industrie\nMs Klaas Speciaal\nRozendaalseweg 34-9\n6734 LD Velp",
	"total":728.23,
	"vat":43.69,
	"paid":null,
	"paidamount":0,
	"remarks":"Heeft u nog vragen of opmerkingen? Neemt u dan gerust contact met ons op, wij staan u graag te woord.",
	"language":"en",
	"publicurl":"https:\/\/secure.earny.nl\/view\/2d2800cab7adcd76fea84c8d0c7272415c18d0d1\/",
	"pdf":"https:\/\/secure.earny.nl\/printpdf\/2d2800cab7adcd76fea84c8d0c7272415c18d0d1\/",
	"rules":[
		{
			"idcategory":80,
			"idvatgroup":2,
			"productcode":"",
			"name":"Kerio e-emailadres (200 MB)",
			"description":"",
			"price":291.29,
			"amount":2.5
		}
	],
	"attachments":[
		{
			"idattachment":155,
			"dateadded":"2012-07-10 09:20:27",
			"filename":"urenspecificatie.pdf",
			"filetype":"application\/pdf",
			"filelocation":"https:\/\/secure.earny.nl\/downloadbijlage\/155\/5103355181af0d054742b074ab1a2f689839d076"
		}
	]
}

Products

Alle products ophalen

GET https://secure.earny.nl/api/products
Request
Response
HTTP/1.1 200 OK

[
	{
		"idproduct":375,
		"productcode":"colo",
		"name":"1U Colocatie - 50 GB dataverkeer",
		"description":"",
		"price":65
	},
	{
		"idproduct":636,
		"productcode":"hostcmsabo",
		"name":"Abonnement website en webhosting",
		"description":"",
		"price":45
	}
]

Eén product ophalen

GET https://secure.earny.nl/api/products/375
Request
Response
HTTP/1.1 200 OK

{
	"idproduct":375,
	"productcode":"colo",
	"name":"1U Colocatie - 50 GB dataverkeer",
	"description":"",
	"price":65,
	"idvatgroup":3,
	"idcategory":86,
	"interval":"year"
}

Product toevoegen

POST https://secure.earny.nl/api/products
Request
{
	"productcode":"colo",
	"name":"1U Colocatie - 50 GB dataverkeer",
	"description":"",
	"price":65,
	"idvatgroup":3,
	"idcategory":86,
	"interval":"year"
}
Response
HTTP/1.1 201 Created

{
	"idproduct":375,
	"productcode":"colo",
	"name":"1U Colocatie - 50 GB dataverkeer",
	"description":"",
	"price":65,
	"idvatgroup":3,
	"idcategory":86,
	"interval":"year"
}
productcode
name verplicht
description
price In het formaat 18.29
idvatgroup
idcategory
interval "month", "quarter", "halfyear" of "year". Interval wordt gebruikt voor recurringinvoices.

Product wijzigen

PUT https://secure.earny.nl/api/products/{idproduct}
Request
{
	"name":"1U Colocatie - onbeperkt dataverkeer"
}
Response
HTTP/1.1 200 OK

{
	"idproduct":375,
	"productcode":"colo",
	"name":"1U Colocatie - onbeperkt dataverkeer",
	"description":"",
	"price":65,
	"idvatgroup":3,
	"idcategory":86,
	"interval":"year"
}

Product verwijderen

DELETE https://secure.earny.nl/api/products/{idproduct}
Request
Response
HTTP/1.1 200 OK
""

Categories

Alle categories ophalen

GET https://secure.earny.nl/api/categories
Request
Response
HTTP/1.1 200 OK

[
	{
		"idcategory":75,
		"name":"Maatwerk verkoop"
	},
	{
		"idcategory":78,
		"name":"Portokosten"
	},
	{
		"idcategory":81,
		"name":"Huur"
	}
]

Eén category ophalen

GET https://secure.earny.nl/api/categories/{idcategory}
Request
Response
HTTP/1.1 200 OK

{
	"idcategory":75,
	"name":"Maatwerk verkoop"
}

Category toevoegen

POST https://secure.earny.nl/api/categories
Request
{
	"name":"Omzet buitenland"
}
Response
HTTP/1.1 201 Created

{
	"idcategory":2971,
	"name":"Omzet buitenland"
}
name verplicht

Category wijzigen

PUT https://secure.earny.nl/api/categories/{idcategory}
Request
{
	"name":"Omzet Spanje"
}
Response
HTTP/1.1 200 OK

{
	"idcategory":2971,
	"name":"Omzet Spanje"
}

Contactcategories

Alle contactcategories ophalen

GET https://secure.earny.nl/api/contactcategories
Request
Response
HTTP/1.1 200 OK

[
	{
		"idcontactcategory":75,
		"name":"Prospects"
	},
	{
		"idcontactcategory":78,
		"name":"Klanten"
	},
	{
		"idcontactcategory":81,
		"name":"Mailing december"
	}
]

Eén contactcategory ophalen

GET https://secure.earny.nl/api/contactcategories/{idcontactcategory}
Request
Response
HTTP/1.1 200 OK

{
	"idcategory":75,
	"name":"Prospects",
	"contacts":23
}

Contactcategory toevoegen

POST https://secure.earny.nl/api/contactcategories
Request
{
	"name":"Leads"
}
Response
HTTP/1.1 201 Created

{
	"idcontactcategory":2971,
	"name":"Leads",
	"contacts":0
}
name verplicht

Contactcategory wijzigen

PUT https://secure.earny.nl/api/contactcategories/{idcontactcategory}
Request
{
	"name":"Leads 2012"
}
Response
HTTP/1.1 200 OK

{
	"idcontactcategory":2971,
	"name":"Leads 2012",
	"contacts":0
}

Paymentmethods

Alle paymentmethods ophalen

GET https://secure.earny.nl/api/paymentmethods
Request
Response
HTTP/1.1 200 OK

[
	{
		"idpaymentmethod":11,
		"name":"Automatische incasso",
		"standard":true
	},
	{
		"idpaymentmethod":354,
		"name":"Creditcard",
		"standard":false
	}
]

Eén paymentmethod ophalen

GET https://secure.earny.nl/api/paymentmethods/{idpaymentmethod}
Request
Response
HTTP/1.1 200 OK

{
	"idpaymentmethod":11,
	"name":"Automatische incasso",
	"standard":true,
	"textoninvoice":"Let op: Het factuurbedrag wordt rond de vervaldatum automatisch van uw rekening afgeschreven.",
	"textonreminder":null,
	"paymentperiod":14,
	"idealavailable":true
}

Paymentmethod toevoegen

POST https://secure.earny.nl/api/paymentmethods
Request
{
	"name":"Overmaken 14 dagen",
	"textoninvoice":"Gaarne het factuurbedrag binnen 14 dagen overmaken.",
	"textonreminder":null,
	"paymentperiod":14,
	"idealavailable":true
}
Response
HTTP/1.1 201 Created

{
	"idpaymentmethod":813,
	"name":"Overmaken 14 dagen",
	"standard":false,
	"textoninvoice":"Gaarne het factuurbedrag binnen 14 dagen overmaken.",
	"textonreminder":null,
	"paymentperiod":14,
	"idealavailable":true
}
name verplicht
standard true of false. Of deze paymentmethod standaard moet zijn voor alle komende drafts.
textoninvoice Tekst die onder de factuurregels op de invoice komt te staan
textonreminder Tekst die onder de factuurregels op de reminder komt te staan, als deze leeg is komt textoninvoice op de reminder
paymentperiod Aantal dagen dat de klant heeft om de factuur te betalen
idealavailable Of facturen met deze paymentmethod de factuur ook met iDEAL mogen betalen, als iDEAL geactiveerd is

Paymentmethod wijzigen

PUT https://secure.earny.nl/api/paymentmethods/{idpaymentmethod}
Request
{
	"name":"Overmaken 21 dagen",
	"textoninvoice":"Gaarne het factuurbedrag binnen 21 dagen overmaken.",
	"paymentperiod":21
}
Response
HTTP/1.1 200 OK

{
	"idpaymentmethod":814,
	"name":"Overmaken 21 dagen",
	"standard":false,
	"textoninvoice":"Gaarne het factuurbedrag binnen 21 dagen overmaken.",
	"textonreminder":null,
	"paymentperiod":21,
	"idealavailable":true
}

Vatgroups

Alle vatgroups ophalen

GET https://secure.earny.nl/api/vatgroups
Request
Response
HTTP/1.1 200 OK

[
	{
		"idvatgroup":1,
		"name":"Nultarief",
		"percentage":0
	},{
		"idvatgroup":2,
		"name":"Laag",
		"percentage":6
	},{
		"idvatgroup":3,
		"name":"Hoog (oud)",
		"percentage":19
	},{
		"idvatgroup":4,
		"name":"Buitenland",
		"percentage":0
	},{
		"idvatgroup":5,
		"name":"Hoog",
		"percentage":21
	}
]

Eén vatgroup ophalen

GET https://secure.earny.nl/api/vatgroups/{idvatgroup}
Request
Response
HTTP/1.1 200 OK

{
	"idvatgroup":4,
	"name":"Buitenland",
	"percentage":0
}

Templates

Alle templates ophalen

GET https://secure.earny.nl/api/templates
Request
Response
HTTP/1.1 200 OK

[
	{
		"idtemplate":6182,
		"name":"Hoofd BV",
		"standard":true
	},{
		"idtemplate":6489,
		"name":"Speelgoed webshop",
		"standard":false
	}
]

Eén template ophalen

GET https://secure.earny.nl/api/template/{idtemplate}
Request
Response
HTTP/1.1 200 OK

{
	"idtemplate":6489,
	"name":"Speelgoed webshop",
	"standard":false
}

Periodieke facturen

Alle periodieke facturen ophalen

GET https://secure.earny.nl/api/recurringinvoices
Request
Response
HTTP/1.1 200 OK

[
	{
        "idrecurringinvoice": 122,
        "idcontact": 37,
        "idvatgroup": 5,
        "idcategory": 91,
        "productcode": "19811289",
        "name": "Levering potloden (periodiek)",
        "description": "Alle kleuren en hardheden",
        "price": 254.95,
        "amount": 1,
        "interval": "month",
        "startdate": "2010-09-01",
        "enddate": null,
        "showperiod": true
	},
	{
        "idrecurringinvoice": 432,
        "idcontact": 37,
        "idvatgroup": 5,
        "idcategory": 291,
        "productcode": "018237",
        "name": "Levering stiften (periodiek)",
        "description": "Alle kleuren",
        "price": 192.29,
        "amount": 1,
        "interval": "month",
        "startdate": "2010-09-01",
        "enddate": null,
        "showperiod": true
	}
]

Eén periodieke factuur ophalen

GET https://secure.earny.nl/api/recurringinvoices/{idrecurringinvoice}
Request
Response
HTTP/1.1 200 OK

{
    "idrecurringinvoice": 432,
    "idcontact": 37,
    "idvatgroup": 5,
    "idcategory": 291,
    "productcode": "018237",
    "name": "Levering stiften (periodiek)",
    "description": "Alle kleuren",
    "price": 192.29,
    "amount": 1,
    "interval": "month",
    "startdate": "2010-09-01",
    "enddate": null,
    "showperiod": true
}

Periodieke factuur toevoegen

POST https://secure.earny.nl/api/recurringinvoices
Request
{
    "idcontact": 37,
    "idvatgroup": 5,
    "idcategory": 291,
    "productcode": "018237",
    "name": "Levering stiften (periodiek)",
    "description": "Alle kleuren",
    "price": 192.29,
    "amount": 1,
    "interval": "month",
    "startdate": "2010-09-01",
    "enddate": null,
    "showperiod": true
}
Response
HTTP/1.1 201 Created

{
    "idrecurringinvoice": 432,
    "idcontact": 37,
    "idvatgroup": 5,
    "idcategory": 291,
    "productcode": "018237",
    "name": "Levering stiften (periodiek)",
    "description": "Alle kleuren",
    "price": 192.29,
    "amount": 1,
    "interval": "month",
    "startdate": "2010-09-01",
    "enddate": null,
    "showperiod": true
}
idcontact verplicht contact waar de periodieke factuur voor is
idvatgroup verplicht
idcategory verplicht
productcode
name verplicht
description
price verplicht In het formaat 18.29
amount verplicht In het formaat 18.29
interval "month", "quarter", "halfyear" of "year". Hoe vaak deze periodieke factuur moet terugkeren
startdate verplicht Moment van starten van de periodieke factuur. Mag in de toekomst en in het verleden liggen. Startdatum kan na toevoegen niet meer worden gewijzigd. In het formaat 2013-01-01
enddate In het formaat 2013-01-01
showperiod Of de periode van op de (concept)factuur moet worden weergegeven

Periodieke factuur wijzigen

PUT https://secure.earny.nl/api/recurringinvoices/{idrecurringinvoice}
Request
{
    "description": "55 kleuren",
    "price": 98.12,
}
Response
HTTP/1.1 200 OK

{
    "idrecurringinvoice": 432,
    "idcontact": 37,
    "idvatgroup": 5,
    "idcategory": 291,
    "productcode": "018237",
    "name": "Levering stiften (periodiek)",
    "description": "55 kleuren",
    "price": 98.12,
    "amount": 1,
    "interval": "month",
    "startdate": "2010-09-01",
    "enddate": null,
    "showperiod": true
}
 

Probeer Earny zelf

Ontdek Earny door er zelf mee te spelen.
Maak een account aan en ervaar hoe snel en leuk Earny werkt.

Probeer gratis