P
PayDock Docs

API Reference

REST API voor koppelingen met externe systemen.

Interactieve documentatie beschikbaar via Swagger UI op /api/docs — test endpoints direct in de browser.

Authenticatie

Alle API-verzoeken vereisen een API-sleutel in de X-API-Key header. Maak een sleutel aan via Instellingen > API-sleutels.

curl -X GET "https://your-project.supabase.co/functions/v1/api/contacts" \
  -H "X-API-Key: ftj_your_api_key_here"

Contacten

Volledige CRUD voor klanten.

MethodePathBeschrijving
GET/contactsLijst van alle contacten
POST/contactsContact aanmaken
GET/contacts/{id}Contact ophalen
PUT/contacts/{id}Contact bijwerken
DELETE/contacts/{id}Contact verwijderen

Producten

Volledige CRUD voor producten.

MethodePathBeschrijving
GET/productsLijst van alle producten
POST/productsProduct aanmaken
GET/products/{id}Product ophalen
PUT/products/{id}Product bijwerken
DELETE/products/{id}Product verwijderen

Facturen

Facturen aanmaken, ophalen, filteren en status bijwerken. Ideaal voor externe systemen die facturen registreren.

MethodePathBeschrijving
POST/invoicesFactuur aanmaken met regels (auto berekening)
GET/invoicesLijst met filters: status, contact_id, limit, offset
GET/invoices/{id}Factuur met regels en contactgegevens
PATCH/invoices/{id}Status, vervaldatum of notitie bijwerken

Factuur aanmaken voorbeeld

POST /invoices
X-API-Key: ftj_...

{
  "contact_id": "uuid-of-customer",
  "status": "verzonden",
  "invoice_date": "2026-04-11",
  "due_date": "2026-05-11",
  "lines": [
    {
      "description": "Spont POS Licentie",
      "quantity": 1,
      "unit_price_incl": 89.00,
      "tax_percentage": 21,
      "product_id": "uuid-of-product"
    },
    {
      "description": "Installatie",
      "quantity": 2,
      "unit_price_incl": 125.00,
      "tax_percentage": 21
    },
    {
      "description": "Notitie: Levering binnen 5 werkdagen",
      "is_text_line": true
    }
  ]
}

→ Invoice created with auto-calculated totals

Betaling registreren

Na het aanmaken van een factuur kun je een betaling registreren. De factuurstatus wordt automatisch bijgewerkt naar 'deels_betaald' of 'betaald'.

POST /payments
X-API-Key: ftj_...

{
  "invoice_id": "uuid-of-invoice",
  "amount": 339.00,
  "payment_date": "2026-04-11",
  "external_method": "bank_transfer",
  "external_reference": "TXN-12345",
  "note": "Betaling ontvangen via extern systeem"
}

→ Invoice status updated to "betaald"

Offertes

MethodePathBeschrijving
GET/quotesLijst met filters
GET/quotes/{id}Offerte met regels
PATCH/quotes/{id}Status bijwerken

Abonnementen

MethodePathBeschrijving
GET/subscriptionsLijst met filters
GET/subscriptions/{id}Abonnement met regels
PATCH/subscriptions/{id}Status bijwerken

Betalingen

MethodePathBeschrijving
GET/paymentsLijst van betalingen
POST/paymentsBetaling registreren (werkt amount_paid op factuur bij)
GET/payments/{id}Betaling ophalen

Klantportaal endpoint

Het /client-portal/{external_id} endpoint retourneert alle data voor een klant in één verzoek. Ideaal voor chatbot-integraties.

GET /client-portal/CRM-12345

{
  "contact": { "name": "Acme BV", "email": "info@acme.nl", ... },
  "summary": {
    "open_invoice_count": 2,
    "open_invoice_amount": 850.00,
    "active_subscriptions": 1,
    "balance": 125.50
  },
  "invoices": [...],
  "quotes": [...],
  "subscriptions": [...],
  "recent_payments": [...]
}

Query parameters

De lijst-endpoints ondersteunen deze filters:

ParameterTypeBeschrijving
statusstringFilter op status (bijv. 'verzonden', 'betaald')
contact_idUUIDFilter op klant-ID
limitintegerMaximaal aantal resultaten (standaard 100, max 500)
offsetintegerSkip eerste N resultaten (voor paginering)

Webhook events

De API triggert webhooks voor deze events:

  • contact.created, contact.updated, contact.deleted
  • product.created, product.updated, product.deleted
  • invoice.updated, quote.updated, subscription.updated
  • payment.created

OpenAPI / Swagger

De volledige API-specificatie is beschikbaar als OpenAPI 3.0 JSON op /openapi.json. Interactieve Swagger UI is beschikbaar op /docs.