Back to OOLP

OOLP Contracts API

Programmatic access for partner platforms to issue NBA-sealed contracts. Hand this page — or the downloadable spec — to your engineering team or an LLM and they can integrate end-to-end.

HMAC signed
Every request signed with your partner secret. Replay-protected by a timestamp.
Webhooks → your URL
You host the webhook URL. We POST signed events to it on every state change.
Drop-in widget
One <script> tag opens the intake UI on your site. No PII flows back to you.
Quickstart
  1. OOLP admin creates a Partner record and emails you the API key + HMAC secret (shown once).
  2. You add your webhook URL in Partner Settings on the OOLP dashboard.
  3. Your server POSTs to /v1/requests with an HMAC-signed body. You get back an intake_url.
  4. Forward intake_url to the client. They complete intake, pay, sign, and you receive webhook events for each step.
  5. The final contract.completed webhook contains a verification URL for the sealed PDF (you never see contract content).
Safe API simulator

Visualise the end-to-end flow without calling the live server or exposing any secret.

Partner POST
https://your-oolp-domain.example/api/public/v1/requests
File numberOOLP-0000-000000
Templateresidential-tenancy
LandlordObi Okonkwo
TenantChinedu Nwafor
RentNGN 2,500,000
Property12 Admiralty Way, Lekki, Lagos
✓ 201 intake_required
https://your-oolp-domain.example/intake/req_demo_7K4Q
Webhook timeline → your URL
0/6
  1. Request acceptedpartner.request_accepted
    We acknowledge your API call and mint a file number.
  2. Client emailedclient.acknowledged
    Client receives the intake link — only unanswered fields are asked.
  3. Signer invitedparty.invited
    Each party (and their witness) is invited in sequence.
  4. Party signedparty.signed
    Fires after every signature — principal or witness.
  5. All signedcontract.completed
    Every required signature is in.
  6. NBA sealed PDFcontract.sealed
    Final PDF is rendered, sealed, and a verify URL is delivered.