Hieronder vind je een overzicht van alle API endpoints en welke opties daar tot nu toe bij beschikbaar zijn.
Toegang tot de API
Om toegang te krijgen tot de API dien je allereerst een token te genereren en die token voldoende rechten te geven. Hieronder vind je gerelateerde artikelen:
Gebruik van endpoints
Het gebruik van de endpoints doe je door de URL bij je verzoek (dit kan een GET
, PATCH
of POST
zijn) uit te breiden met het endpoint die je wilt gebruiken.
Opbouw van het adres
Het basisadres is als volgt, vervang dit uiteraard zodat dit werkt voor jouw Neoforce-omgeving:
https://{bedrijfsdomein}.neoforce.app/api/v1/
Plak daarachter het gewenste endpoint. Als voorbeeld gebruiken we hieronder het endpoint voor organisaties, dat wordt in dit geval dus organisations. De volledige URL wordt dan:
https://{bedrijfsdomein}.neoforce.app/api/v1/organisations
đŸ’¡Verschillende adressen?
Het kan voorkomen dat je in documentatie van Neoforce verschillende soorten adressen tegenkomt. De opbouw die hierboven genoemd wordt, is de aanbevolen opbouw. Echter werkt het gebruik van een adres zoals hieronder ook gewoon.
https://{bedrijfsdomein}.neoforce.app/?api=organisations
Overzicht endpoints
Endpoint | Neoforce-entiteit | Opties | Opmerkingen |
---|---|---|---|
users |
Gebruikers | Lezen, Toevoegen, Wijzigen | - |
timeline_items |
Tijdlijn-items | Lezen, Toevoegen | - |
lists |
Opzoeklijsten | Lezen | - |
files |
Bestanden | Lezen | - |
history |
Geschiedenis | Lezen | - |
persons |
Personen | Lezen, Toevoegen, Wijzigen | - |
organisations |
Organisaties | Lezen, Toevoegen, Wijzigen | Extra informatie |
processes |
Processen | Lezen | Toont ook gekoppelde klanten en personen. |
contracts |
Contracten | Lezen | Toont ook gekoppelde klanten en personen. |
tickets |
Tickets | Lezen, Toevoegen, Wijzigingen | - |
timesheets |
Tijd / urenregistratie | Lezen | - |
datasets |
Alle datasets-schema's | Lezen, Toevoegen, Wijzigingen | đŸ’¡ Je dient nog te filteren op het schema. Zie ook dit artikel |
datasets_schemas |
Datasets schema beheer | Lezen | - |
datasets_fields |
Datasets velden beheer | Lezen | - |
datasets_tabs |
Datasets tabbladen beheer | Lezen | - |
events |
Planner | Lezen, Toevoegen, Wijzigingen | - |
reservations |
Reserveringen | Lezen | - |
wiki |
Wiki | Lezen, Toevoegen, Wijzigingen | - |
applications |
Applicaties | Lezen | Toont ook gekoppelde klanten en personen. |
certificates |
Certificaten | Lezen | Toont ook gekoppelde klanten en personen. |
databases |
Databases | Lezen | Toont ook gekoppelde klanten en personen. |
servers |
Servers | Lezen | Toont ook gekoppelde klanten en personen. |
Voorbeeld requests
In de onderstaande voorbeeld requests halen we een organisatie op en voegen we een nieuwe toe.
Ophalen van organisatie
URL (GET):
https://{bedrijfsdomein}.neoforce.app/api/v1/organisations/?filter[id]=
Headers:
X-Authorization: Bearer [token]
Antwoord: (Let op: ingekort)
[
{
"id": 2,
"active": 1,
"name": "Cyber4Z BV",
"customerNr": null,
"supplierNr": null,
"shortName": "C4Z",
"is_supplier": 1,
"is_customer": 1,
"typeOrganisation": [
"customer",
"supplier",
"administrator"
],
"relationManagerID": null,
"accountancyID": null,
"vatID": {
"id": 344,
"parentID": null,
"spaceID": 1,
"value": "21%",
"type": "vat",
"defaultSelected": 1,
"meta": {
"use_visibility": "0",
"background-color": false,
"icon": null,
"code": "",
"percentage": "21.00"
},
"active": 1,
"position": 3
},
"is_vatLiable": 1,
"is_sublocation": 0,
"parentLocationID": null,
"statusID": {
"id": 9,
"parentID": null,
"spaceID": 1,
"value": "Actief",
"type": "organisations_status",
"defaultSelected": 0,
"meta": {
"use_visibility": "0",
"background-color": "#2eb9ff",
"icon": "fas fa-check-double",
"percentage": null
},
"active": 1,
"position": 1
},
"tags": [],
"address": "High Tech Campus 9",
"zipcode": "5656 AE",
"city": "Eindhoven",
"country": "nl",
"locationName": "High Tech Campus",
"billing_locationName": null,
"billing_address": null,
"billing_zipcode": null,
"billing_email": null,
"billing_city": null,
"billing_country": null,
"post_address": "High Tech Campus 9",
"post_zipcode": "5656 AE",
"post_city": "Eindhoven",
"post_country": "nl",
"post_postbox": null,
"post_locationName": "High Tech Campus",
"has_primaryPerson": 1,
"has_visitingAddress": 1,
"has_billingAddress": 0,
"has_postAddress": 1,
"email": [
"4z4u@cyber4z.com"
],
"website": "https://cyber4z.com",
"linkedIn": null,
"telephone": [
null
],
...............
Bash (cURL)
curl -X GET "https://[bedrijfsdomein].neoforce.app/api/v1/organisations" -H "X-Authorization: Bearer [token]"
PHP
<?php
// Basis URL en token
$bedrijfsdomein = 'uw_bedrijfsdomein'; // Vervang met uw bedrijfsdomein
$token = 'uw_token'; // Vervang met uw token
// Volledige URL
$url = 'https://'.$bedrijfsdomein.'.neoforce.app/api/v1/organisations';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'X-Authorization: Bearer ' . $token
];);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
// Controleer op fouten
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
} else {
// Verwerk de response zoals gewenst
echo $response;
}
// Sluit de cURL sessie
curl_close($ch);
?>
Python
import requests
# Basis URL en token
bedrijfsdomein = 'uw_bedrijfsdomein' # Vervang met uw bedrijfsdomein
token = 'uw_token' # Vervang met uw token
# Volledige URL
url = f'https://{bedrijfsdomein}.neoforce.app/api/v1/organisations'
# Headers instellen
headers = {
'X-Authorization': f'Bearer {token}'
}
# Het GET-verzoek uitvoeren
response = requests.get(url, headers=headers)
# Controleer de statuscode en print de response
if response.status_code == 200:
print("Succesvolle respons:")
print(response.json()) # JSON-response
else:
print(f"Fout bij het aanroepen van API: {response.status_code}")
Aanmaken van een nieuwe organisatie
URL (POST):
https://{bedrijfsdomein}.neoforce.app/api/v1/organisations
Headers:
X-Authorization: Bearer [token]
Body:
{
"name": "Cyber4Z Solutions BV",
"cocNr": "77736761",
"vatNr": "NL861.117.359.B01",
"ibanNr": "NL64 SNSB 0320 1471 18",
"website": "https://neoforce.app",
"email": "support@neoforce.app",
"telephone": "085 - 487 40 90",
"has_visitingAddress": "1",
"address": "Kloosterweg 1",
"zipcode": "6412CN",
"city": "Heerlen",
"country": "nl"
}
Antwoord:
{
"status": "success",
"datetime": "2023-12-11T20:50:02+01:00",
"nonce": "tULPlc0iK8u7gxjYWQ9vIMsrdC1qSpob",
"message": "Created organisation #964"
}
PHP
<?php
// Basis URL en token
$bedrijfsdomein = 'uw_bedrijfsdomein'; // Vervang met uw bedrijfsdomein
$token = 'uw_token'; // Vervang met uw token
// Volledige URL
$url = "https://{$bedrijfsdomein}.neoforce.app/api/v1/organisations";
// Data voor de body van het verzoek
$data = [
'name' => 'Cyber4Z Solutions BV',
'cocNr' => '77736761',
'vatNr' => 'NL861.117.359.B01',
'ibanNr' => 'NL64 SNSB 0320 1471 18',
'website' => 'https://neoforce.app',
'email' => 'support@neoforce.app',
'telephone' => '085 - 487 40 90',
'has_visitingAddress' => '1',
'address' => 'Kloosterweg 1',
'zipcode' => '6412CN',
'city' => 'Heerlen',
'country' => 'nl'
];
$jsonData = json_encode($data);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'X-Authorization: Bearer ' . $token,
'Content-Type: application/json',
'Content-Length: ' . strlen($jsonData)
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
$response = curl_exec($ch);
// Controleer op fouten
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
} else {
// Verwerk de response zoals gewenst
echo $response;
}
// Sluit de cURL sessie
curl_close($ch);
?>
Python
import requests
import json
# Basis URL en token
bedrijfsdomein = 'uw_bedrijfsdomein' # Vervang met uw bedrijfsdomein
token = 'uw_token' # Vervang met uw token
# Volledige URL
url = f'https://{bedrijfsdomein}.neoforce.app/api/v1/organisations'
# Data voor de body van het verzoek
data = {
"name": "Cyber4Z Solutions BV",
"cocNr": "77736761",
"vatNr": "NL861.117.359.B01",
"ibanNr": "NL64 SNSB 0320 1471 18",
"website": "https://neoforce.app",
"email": "support@neoforce.app",
"telephone": "085 - 487 40 90",
"has_visitingAddress": "1",
"address": "Kloosterweg 1",
"zipcode": "6412CN",
"city": "Heerlen",
"country": "nl"
}
# Headers instellen
headers = {
'X-Authorization': f'Bearer {token}',
'Content-Type': 'application/json'
}
# Het POST-verzoek uitvoeren
response = requests.post(url, headers=headers, data=json.dumps(data))
# Controleer de statuscode en print de response
if response.status_code == 200:
print("Succesvolle respons:")
print(response.json()) # JSON-response
else:
print(f"Fout bij het aanroepen van API: {response.status_code}")