Naar de inhoud

Demand API

v1

De koppeling waarmee afnemers geleverde leads ophalen, accepteren en afkeuren binnen jouw OXIAE-platform.

https://api.oxiae.com/api

Introductie

De Demand API is bedoeld voor afnemers die geleverde leads ontvangen en verwerken — de tegenhanger van de Supply API die ze aanlevert. Je haalt je geleverde leads op, bekijkt de details, en accepteert of betwist ze. Wil je realtime geïnformeerd worden bij elke levering? Zet dan een ondertekende webhook aan. Je ziet uitsluitend leads die via matching & routing aan jouw organisatie zijn geleverd. Alle aanroepen verlopen over HTTPS en geven JSON terug.

Authenticatie

De Demand API gebruikt API-sleutels. Stuur je sleutel mee als Bearer-token in de Authorization-header (of via X-Api-Key). Sleutels beheer je onder Instellingen → API-sleutels. Elke sleutel is gekoppeld aan één organisatie en geeft alleen toegang tot de leads die aan díe organisatie zijn geleverd.

GET /api/demand/leads

Leads ophalen

Geeft een gepagineerde lijst van de leads die aan jou zijn geleverd, met prijs, status en de leadgegevens.

Queryparameters

statusenum
Filter: delivered, accepted of rejected. Standaard alle.
per_pageinteger
Aantal per pagina (standaard 25, max 100).
pageinteger
Paginanummer.
Verzoek
curl "https://api.oxiae.com/api/demand/leads?status=delivered&per_page=25" \
  -H "Authorization: Bearer oxa_3f9a2b7c8d1e4f60a1b2c3d4"
Respons · 200 OK
{
  "data": [
    {
      "id": 5031,
      "lead_id": 21503,
      "status": "accepted",
      "price": 82.50,
      "assigned_at": "2026-06-10T16:18:03+00:00",
      "lead": {
        "first_name": "Yara",
        "last_name": "de Groot",
        "email": "yara@voorbeeld.nl",
        "phone": "+31612345678",
        "postcode": "4503BH",
        "category": "Arbeidsrecht"
      }
    }
  ],
  "meta": { "current_page": 1, "per_page": 25, "last_page": 17, "total": 408 }
}
GET /api/demand/leads/{id}

Lead-detail

Geeft het volledige detail van één geleverde lead terug. Buiten je eigen leveringen krijg je 404.

Verzoek
curl https://api.oxiae.com/api/demand/leads/5031 \
  -H "Authorization: Bearer oxa_3f9a2b7c8d1e4f60a1b2c3d4"

Accepteren & afkeuren

POST /api/demand/leads/{id}/accept

Bevestigt de lead. Idempotent: een al geaccepteerde lead blijft geaccepteerd.

Verzoek
curl https://api.oxiae.com/api/demand/leads/5031/accept \
  -X POST \
  -H "Authorization: Bearer oxa_3f9a2b7c8d1e4f60a1b2c3d4"
Respons · 200 OK
{ "data": { "id": 5031, "status": "accepted" } }
POST /api/demand/leads/{id}/reject

Keurt de lead af en opent een dispuut voor beoordeling en eventuele verrekening. Vereist een reason; een al afgekeurde lead geeft 409.

Verzoek
curl https://api.oxiae.com/api/demand/leads/5031/reject \
  -X POST \
  -H "Authorization: Bearer oxa_3f9a2b7c8d1e4f60a1b2c3d4" \
  -H "Content-Type: application/json" \
  -d '{ "reason": "Telefoonnummer onbereikbaar", "reason_code": "unreachable" }'
Respons · 200 OK
{ "data": { "id": 5031, "status": "rejected" } }

Webhooks

In plaats van pollen kun je een webhook-endpoint instellen. Bij elke levering stuurt het platform een lead.delivered-event naar jouw URL. Elk bericht is ondertekend met HMAC-SHA256 in de X-Signature-header; verifieer die met je webhook-secret voordat je het bericht verwerkt. Zie API & webhooks voor hoe realtime koppelingen samenhangen. Endpoints beheer je onder Instellingen → Webhooks.

Voorbeeld-payload
POST https://jouw-domein.nl/webhooks/oxiae
X-Signature: sha256=9f86d081884c7d659a2feaa0c55ad015...

{
  "event": "lead.delivered",
  "data": {
    "id": 5044,
    "lead_id": 21567,
    "price": 82.50,
    "assigned_at": "2026-07-07T09:12:44+00:00",
    "lead": { "first_name": "Sanne", "last_name": "de Vries", "category": "Arbeidsrecht" }
  }
}

Foutafhandeling

De API gebruikt standaard HTTP-statuscodes.

401
Ontbrekende of ongeldige API-sleutel.
404
Lead niet gevonden, of niet aan jouw organisatie geleverd.
409
Lead is al afgekeurd, of er loopt al een dispuut.
422
Validatiefout, bijvoorbeeld een ontbrekende reason bij afkeuren.
429
Rate limit bereikt (standaard 120 per minuut).

Klaar om te koppelen?

Plan een demo of vraag API-toegang aan.