May 31, 2025 — Reap Compliance API v1.0.1
We’re excited to announce the initial public release of the Reap Compliance API. This version introduces endpoints to manage entities, perform KYC operations, retrieve feature requirements, list available features, and configure notification connections. Below is a summary of what’s included in v1.0.1:
Entity (endpoints under /entity)
/entity)-
Create a new entity (
POST /entity)- Accepts an
externalId, atype(INDIVIDUALorBUSINESS), and an array ofrequirements(each withrequirementSlug+value). - Returns the newly created entity’s UUID.
- Accepts an
-
List all entities (paginated) (
GET /entity)- Supports
page,limit, and requires anAccept-Versionheader (v1.0). - Returns a paginated list of entities (with
id,externalId,businessId,createdAt,updatedAt) plus pagination metadata.
- Supports
-
Retrieve an existing entity (
GET /entity/{entityId})- Fetches full details for a single entity:
id,externalId,businessId,type,verifiedBy, enabled features, and all submitted requirements (including status, timestamps, and value).
- Fetches full details for a single entity:
-
Delete an entity (
DELETE /entity/{entityId})- Permanently deletes the specified entity.
KYC (endpoints under /entity/{entityId}/…)
/entity/{entityId}/…)-
Verify signed KYC payload (
POST /entity/verify-signed-payload)- Accepts
firstName,lastName,dob,residentialAddress,idDocumentType,idDocumentNumber,expiresAt, and a cryptographicsignature. - Returns a JSON object
{ valid: boolean }indicating whether the signature is valid.
- Accepts
-
Generate an SDK token for identity verification (
POST /entity/{entityId}/kyc?memberId={memberId})-
Generates a provider-specific SDK token (e.g., SumSub) to launch a web‐based photo ID + liveness check flow.
-
Response includes:
{ "provider": "sumsub", "sdkToken": "_act-sbx-jwt-…" }
-
-
Get signed payload for KYC verification (
GET /entity/{entityId}/signed-payload?memberId={memberId})- Returns the same JSON object that’s used to generate a signature (all required user info plus a
signaturestring).
- Returns the same JSON object that’s used to generate a signature (all required user info plus a
Feature (endpoints under /feature)
/feature)-
Get requirements by feature ID (
GET /feature/{featureId}/requirement)- Returns a list of compliance requirements for a given feature: each item includes
requirementId,requirementLevel(REQUIRED,OPTIONAL,PREFERED),requirementSlug,associatedEntity(INDIVIDUAL,BUSINESS, etc.), andvalueType(BOOLEAN,NUMERIC,STRING,FILE,JSON).
- Returns a list of compliance requirements for a given feature: each item includes
-
List all features (paginated) (
GET /features)- Supports
page,limit, and requires anAccept-Versionheader (v1.0). - Returns paginated results: each feature is an object with
id,name,slug.
- Supports
Notifications (endpoints under /notification)
/notification)-
Add a notification connection (
POST /notification)-
Configure up to 10 webhooks (per business). Req. body fields:
{ "notificationChannel": "WEBHOOK", "notificationTypes": ["verification_status_change", "feature_access_change", "new_feature", "reminder"], "webhookUrl": "https://api.example.com/webhooks/reap" } -
Returns the created connection’s
id,channel,types,config, andcreatedAt.
-
-
List all notification connections (paginated) (
GET /notification)- Supports
page,limit, and requires anAccept-Versionheader (v1.0). - Returns a paginated array of all configured connections for the authenticated business.
- Supports
-
Get a specific notification connection (
GET /notification/{notificationId})- Returns details (
id,channel,types,config,createdAt) for a single connection.
- Returns details (
-
Update a notification connection (
PUT /notification/{notificationId})- Replace channel, types, or webhook URL. Example request body is identical to
POST /notification. - Returns the updated connection object.
- Replace channel, types, or webhook URL. Example request body is identical to
-
Delete a notification connection (
DELETE /notification/{notificationId})- Permanently removes the specified connection (no response body;
204 No Content).
- Permanently removes the specified connection (no response body;
Security & Versioning
-
Authentication: All endpoints require an
x-reap-api-keyheader (seecomponents.securitySchemes.ApiKeyAuth). -
Accept-Version header: For list endpoints (
GET /entity,GET /features,GET /notification), you must setAccept-Version: v1.0in the request header. -
Servers
https://sandbox-compliance.api.reap.global– Sandbox (testing)https://staging-compliance.api.reap.global– Staginghttps://compliance.api.reap.global– Production (allowlist only)
What’s Next?
- We’ll increment to v1.0.2 for minor fixes, improved error messages, and expanded pagination support on KYC endpoints.
- Stay tuned for support of multi‐member feature assignments and batch requirement submissions in v1.1.0.
Feel free to report any issues or feedback via our GitHub repository or Slack channel. We appreciate your support!
