This article is for the web developer who connects the sign-up form. Your website sends the application from the server to the platform.
The address
POST https://panel.souver.nl/api/v1/aanmeldingen
Headers:
Authorization: Bearer sgn_…(the API key)Content-Type: application/jsonAccept: application/json
An application is at most 32 KB.
Required fields
| Field | Description |
|---|---|
privacy |
true: the applicant agrees to the processing of their data |
company.name |
company name |
contact.first_name |
first name of the contact person |
contact.last_name |
last name of the contact person |
contact.email |
email address of the contact person |
Optional fields
| Field | Description |
|---|---|
locale |
nl (default), en or de: the language of the emails and error messages |
company.legal_form |
legal form, for example B.V. |
company.kvk |
Chamber of Commerce (KvK) number, 8 digits in the Netherlands |
company.vat |
VAT number, for example NL123456789B01 |
company.street, company.house_number, company.postal_code, company.city |
address; postal code in the Netherlands as 1234 AB |
company.country |
country code, for example NL, BE or DE; default NL |
contact.role |
job title of the contact person |
contact.phone |
mobile number; a foreign number with + |
billing_email |
email address for invoices, if different |
website |
the applicant's website |
expected |
expected numbers: customers, domains, mailboxes, websites |
source |
how the applicant found you |
note |
comment |
documents |
accepted documents, see the article about documents |
meta.ip, meta.user_agent |
IP address and browser of the visitor (not of your server) |
meta.honeypot |
the value of a hidden field; if it is filled in, it is spam |
meta.form_ms |
time in milliseconds between opening and submitting the form; less than 3000 is spam |
Example with curl
curl -s https://panel.souver.nl/api/v1/aanmeldingen \
-H "Authorization: Bearer $SIGNUP_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"locale": "nl",
"privacy": true,
"company": { "name": "Bakkerij De Test BV", "kvk": "12345678", "postal_code": "1234 AB", "city": "Testdorp", "country": "NL" },
"contact": { "first_name": "Els", "last_name": "Eigenaar", "email": "els@bakkerij.test", "phone": "06 12345678" },
"meta": { "ip": "203.0.113.7", "user_agent": "Mozilla/5.0", "honeypot": "", "form_ms": 48211 }
}'
Example in PHP (Laravel)
$r = Http::withToken(config('services.signup.key'))->acceptJson()
->post('https://panel.souver.nl/api/v1/aanmeldingen', $gegevens + ['meta' => [
'ip' => request()->ip(),
'user_agent' => request()->userAgent(),
'honeypot' => request('website_url'),
'form_ms' => (int) request('form_ms'),
]]);
if ($r->status() === 422) {
return back()->withErrors($r->json('errors'))->withInput();
}
return view('bedankt', ['referentie' => $r->json('reference')]);
Good to know
- Include the visitor's IP address and browser in
meta. That is the proof for accepted documents. - There can be at most 3 open applications at the same time per email address.