Tenora voor ontwikkelaars

Verstuur contracten vanuit je eigen app.

Tenora's OAuth2-API laat externe applicaties — havenbeheersystemen, verhuurplatformen, makelaarssoftware — namens hun klanten contracten versturen voor digitale ondertekening. In tien minuten gekoppeld.

Hoe het werkt

1

Registreer je app

Login op Tenora en maak in /landlord/developer een OAuth-client aan. Je krijgt eenmalig een client_id en client_secret.

2

Plaats een Verbind-knop

Stuur je gebruiker naar /oauth/authorize. Hij of zij keurt jouw app goed op een door Tenora-gehoste consent-pagina.

3

Wissel code voor token

Op je redirect_uri krijg je een code, die je via /api/oauth/token omruilt voor een access_token (1u) en refresh_token (90d).

4

Verstuur en luister

POST /api/integrations/v1/contracts om te versturen, en ontvang webhooks zodra een contract verstuurd, bekeken of ondertekend is.

Eén POST verstuurt een contract.

Upload een eigen PDF of render een Tenora-template met variabelen. De ontvanger krijgt een mail met een unieke tekening-link; jouw applicatie hoort het via webhook zodra het ondertekend is.

  • Templates of eigen PDF — jouw keuze
  • Webhooks ondertekend met HMAC-SHA256
  • Refresh-token rotatie volgens RFC 6749
  • PKCE verplicht voor elke client
  • Geen gebruiker? prefill_email start een magic-link bootstrap
curl -X POST https://app.tenora.nl/api/integrations/v1/contracts \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "templateId": "ct_abc123",
    "sharedVariables": {
      "adres": "Havenkade 12",
      "huurprijs": "€ 950"
    },
    "recipients": [
      { "name": "Jan de Vries",
        "email": "jan@example.org" }
    ],
    "deadline": "2026-06-15T00:00:00Z"
  }'

Voor wie?

Marina & haven-software

Stuur ligplaatscontracten elk seizoen automatisch opnieuw uit naar al je leden.

Vakantieparken en campings

Jaarlijkse verlengingen van staan- en chaletcontracten, met één klik vanuit het CRM.

Volkstuin- en sportverenigingen

Lidmaatschapsovereenkomsten en huurcontracten ondertekenen zonder pen en papier.

Garagebox- en opslagverhuur

Korte huurcontracten met dynamische looptijden, gerenderd uit je eigen tariefdata.

Makelaars en verhuurplatformen

Voeg juridisch geldige ondertekening toe aan je bestaande huurder-flow.

Interne tooling

Eigen scripts of admin-panels die uit jouw database direct getekende contracten genereren.

Prijs voor partners

Geen aparte API-abonnementen of platformkosten. Je gebruikt het abonnement van de eindgebruiker — als de gebruiker een actief Tenora-abonnement heeft, kan jouw app onbeperkt namens hem of haar contracten versturen.

Zonder abonnement geldt het standaard gratis quotum (2 contracten/maand). Bij overschrijding krijgt jouw app een 402 Payment Required response inclusief een upgrade-URL die je rechtstreeks kunt tonen aan de gebruiker.

Aan de slag

Veelgestelde vragen

Welke authenticatie gebruikt Tenora?

OAuth2 authorization_code grant met PKCE (S256). Werkt zowel voor server-side clients met een client_secret als voor browser- en mobiele apps zonder secret.

Hoe vaak moet ik refreshen?

Access tokens leven 1 uur, refresh tokens 90 dagen. Elke refresh rotates: de oude refresh_token wordt onmiddellijk ongeldig. Hergebruik van een verbruikte refresh_token revoked alle tokens van die consent (RFC 6749 §10.5).

Kan ik mijn eigen PDF versturen of moet ik Tenora-templates gebruiken?

Beide. Stuur een document via base64 of een publieke URL, of laat Tenora een eigen template renderen met variabelen die je per ontvanger meegeeft.

Hoe verifieer ik webhook-signatures?

HMAC-SHA256 over `<timestamp>.<body>` met de signing secret die je krijgt bij endpoint-registratie. Een Node voorbeeldsnippet staat in OAUTH.md §8.3.

Wat als de gebruiker geen Tenora-account heeft?

Geef `prefill_email` mee in de authorize-URL. Tenora stuurt dan een magic-link die de gebruiker terugleidt naar de consent-flow, en maakt automatisch een sluimerend landlord-account aan.

Is dit betaald?

Nee. Partners betalen niets voor de API. Eindgebruikers gebruiken hun bestaande Tenora-abonnement (of het gratis quotum). Bij overschrijding krijg je een 402 met een upgrade_url die je in jouw UI kunt tonen.