July 2026

In July, we launched the Business Verification (KYB) APIs with full questionnaire and custom dictionary support, aligned Individual profiles with wire contracts, added AML alert webhooks, and unified the application submission interface.

2026-07-30 — KYB Open Platform contract sync (Applications + errors + shareRatio)

Aligned Business and Questionnaire OpenAPI with live api-kyb-open-platform controllers.

Changed

  • Applications API unified submission:
    • POST /v1/business/applications with mode (FORM | STRUCTURED) and nested payloads
    • GET /v1/business/applications with cursor pagination (replaces POST /applications/page offset)
    • GET /v1/business/applications/{applicationId} (removes /detail suffix)
    • POST /v1/business/applications/{applicationId}/documents (replaces PATCH)
    • Form payload field names: subjectQuestions, associatedProfiles[].entities[].questions
    • List row shape: dropped profileId, added steps[]
  • Errors: Business, Questionnaire, Dictionary paths now $ref shared openapi/components/responses/errors.yaml
    • Removed KYB-only open-platform-errors.yaml overlay
  • Shareholding fields:
    • ShareholderInfo.ownerships → shareRatio
    • Application detail: sharedRatio → shareRatio
  • Custom fields: response items use CustomFieldItem (fieldId / fieldValue) at the Open API boundary

Removed

  • Path files: applications_form.yaml, applications_structured.yaml, applications_page.yaml, applications_{applicationId}_detail.yaml
  • openapi/components/responses/open-platform-errors.yaml

2026-07-28 — Individual Profile wire contract (UPPER_SNAKE + WriteAck)

Aligned Individual profiles with Helios Tenant Open API wire format.

Changed

  • Profile enums now UPPER_SNAKE:
    • Lifecycle: INIT, ACTIVE, INACTIVE
    • IdDoc category: DOC, SELFIE
    • Address category: FIXED, VERIFIED
    • AML switch: ENABLED, DISABLED
    • Risk tag source: AML, DEVICE, SELFIE
  • Create / Update / Activate success responses: switched from full Profile to ProfileWriteAck
    • Contains: profileId, externalUserId, status
  • Profile lookup by externalUserId: canonical form GET /v1/individual/profiles?externalUserId=...
    • Legacy routes remain accepted with Deprecation: @1785369600 (2026-07-30) header
    • New integrations must use profileId for subsequent operations
  • Errors: shared InternalError type renamed internal_error → api_error
    • Added ServiceUnavailable (503) for Profile create failures
    • Updated docs/guides/errors.md

2026-07-23 — AML Alert Create Webhook

New webhook event for AML alert creation monitoring.

Added

  • AML_ALERT_CREATE webhook: Triggered when a new AML alert is created (screening, re-screening, or ongoing monitoring)
    • Fields: profileId, caseId, alertId, createdAt
  • Integration manual: Updated scripts/generate-aml-manual.py to include AML_ALERT_CREATE event

2026-07-09 — KYB Business Verification, Questionnaire & Dictionary APIs

Launch of complete Business Verification (KYB) platform with questionnaires and custom dictionaries.

Added

  • Business Applications API (/v1/business/applications/):
    • POST /form — Submit via questionnaire
    • POST /structured — Submit via structured payload
    • POST /page — List applications (paginated)
    • GET /{applicationId}/detail — Get detail
    • GET /{applicationId}/checks — Get risk checks
    • PATCH /{applicationId}/documents — Attach documents
  • Business Checks API (/v1/business/checks/):
    • POST /matches — Basic registry existence
    • POST /standard_checks — Standard verification
    • POST /enhanced_checks — Enhanced with officers & shareholders
    • POST /bo_checks — Beneficial owner verification
    • GET /{id} — Retrieve check result
  • Business Documents API (/v1/business/documents/):
    • POST / — Upload document (10MB limit)
    • GET /{documentId} — Download document
  • Questionnaire API (/v1/business/questionnaires/):
    • GET /{questionnaireId} — Preview questionnaire structure
  • Dictionary API (/v1/business/dictionaries/):
    • POST / — Create custom field definition
  • Schemas: Full KYB domain model (30+ enums, request/response objects)
  • Webhooks: BUSINESS_VERIFICATION_STATUS, KYB_APPLICATION_STATUS_CHANGE, KYB_IDV_EMAIL, KYB_QNRE_EMAIL

Changed

  • redocly.yaml — Registered business, questionnaire, dictionary groups
  • package.json — Added scripts for new groups
  • scripts/lint.sh — Added validation for new groups

Removed

  • openapi/kyb.yaml — Superseded by business.yaml
  • openapi/paths/kyb/ — Replaced by paths/business/