Developer API

Build on ClarAccord

REST API, webhook events, and client portal. Automate agreements. Integrate with your CRM, project management tool, or billing system.

Quick Start

1. Authenticate with your session cookie or API key:

curl -H "Cookie: claraccord_session=..." \
  https://claraccord.com/api/receipts

2. Create your first receipt:

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Cookie: claraccord_session=..." \
  -d '{"subject":"Scope agreement","bullets":["Redesign homepage"],"clientEmail":"client@example.com","requireOtp":true}' \
  https://claraccord.com/api/receipts

Endpoints

POST/api/receiptsCookie + API Key

Create a new receipt with scope bullets, amount, due date, and OTP settings.

{
  "subject": "Website redesign agreement",
  "bullets": ["Homepage redesign", "Mobile responsive"],
  "amount": 8500,
  "currency": "USD",
  "dueDate": "2025-06-15",
  "clientEmail": "client@example.com",
  "clientName": "Sarah",
  "requireOtp": true,
  "channel": "email"
}
GET/api/receipts/{id}Cookie + API Key

Get receipt details including status, signatures, audit trail.

POST/api/receipts/{id}/remindCookie

Send a manual reminder email to the client for a pending receipt.

GET/api/sign/{token}None (public)

Retrieve receipt for client sign-off page. Token is unique per receipt.

POST/api/sign/{token}None (public)

Client signs or disputes the receipt. Validates OTP if required.

{
  "action": "acknowledged",
  "clientName": "Sarah Johnson",
  "otp": "4829"
}
GET/api/clientsCookie + API Key

List all clients for the authenticated user.

POST/api/clientsCookie + API Key

Add a new client with email, name, phone, and preferred channel.

{
  "email": "client@example.com",
  "name": "Sarah Johnson",
  "phone": "+14155551234",
  "channel": "email"
}
GET/api/analyticsCookie + API Key

User analytics: receipt counts, sign-off rate, time-to-sign, client stats, trends.

GET/api/webhooks/settingsCookie

Get configured webhook URL, secret, and event subscriptions.

POST/api/webhooks/testCookie

Send a test webhook payload to the configured URL.

{
  "event": "receipt.signed"
}
GET/api/teamCookie

List team members and pending invites.

POST/api/team/inviteCookie

Invite a team member by email. Returns invite URL.

{
  "email": "teammate@company.com",
  "role": "admin"
}
GET/api/public/statsNone (public)

Public stats: total receipts signed, completion rate, weekly activity. Cached 60s.

Webhook Events

Configure a webhook URL in your dashboard settings. Every event is sent with an HMAC-SHA256 signature in the X-Webhook-Signature header.

receipt.createdA new receipt was created by a user
receipt.sentReceipt was delivered to the client
receipt.signedClient signed the receipt (acknowledged)
receipt.disputedClient disputed the receipt
client.createdA new client was added to the address book
template.createdA new template was created

Webhook payload example:

{
  "event": "receipt.signed",
  "timestamp": "2025-05-13T15:30:00Z",
  "data": {
    "receiptId": "rcpt_abc123",
    "subject": "Website redesign agreement",
    "clientEmail": "client@example.com",
    "clientName": "Sarah Johnson",
    "action": "acknowledged",
    "signedAt": "2025-05-13T15:30:00Z"
  }
}

Stop losing money to scope creep

Start sending receipts after every client call. Free to try. No credit card.