Create subjects

Records a party the org is verifying as part of its own onboarding/compliance — a team member, vendor, customer, or counterparty.

POST /v1/compliance/subjects

Addresshttps://api.hanzo.ai/v1/compliance/subjects
MethodPOST
Operationpost_compliance_subjects
AuthAuthorization: Bearer $HANZO_API_KEY

Records a party the org is verifying as part of its own onboarding/compliance — a team member, vendor, customer, or counterparty. The subject's contact PII (name/email) is sealed at rest and returned only to the owning org; downstream records reference the subject by opaque id.

Request

4 fields, body application/json (required).

FieldInTypeRequiredDescription
emailbodystring—Email is the subject's contact email, sealed at rest.
kindbodystring—Kind is the party type: "individual" (KYC) or "business" (KYB).
namebodystring—Name is the subject's name, sealed at rest.
refbodystring—Ref is the org's own opaque external id for this subject.

Response

StatusBodyMeaning
201compliance.Subjectcreated
defaultproblem-detailsrefused

201 body — 8 fields.

FieldInTypeAlwaysDescription
createdAtbodyinteger (int64)—CreatedAt is when the subject was first recorded, Unix SECONDS.
emailbodystring—Email is the party's address, when the org supplied one.
idbodystring—ID is the opaque handle every other record uses to point at this party.
kindbodystring—Kind is what is being verified: "individual" (a natural person, so KYC) or "business" (a legal entity, so KYB).
namebodystring—Name is the party's name, under the same PII rule as Email.
orgbodystring—Org is the tenant that is doing the verifying — the party who must answer for this record, not the party being verified.
refbodystring—Ref is the org's OWN identifier for this party, carried so a caller can match a subject back to their system without keeping a second mapping.
updatedAtbodyinteger (int64)—UpdatedAt is when the subject's own fields last changed, Unix seconds.

Failure carries the platform error shape — see Errors.

Examples

hanzo compliance subjects create
import { Configuration, ComplianceApi } from 'hanzoai';

const api = new ComplianceApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.postComplianceSubjects({ email: "<email>", kind: "<kind>" });
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import ComplianceApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = ComplianceApi(client).post_compliance_subjects(email="<email>", kind="<kind>")
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.ComplianceAPI.PostComplianceSubjects(context.Background()).Execute()
if err != nil {
	return err
}
use hanzo_client::apis::{configuration::Configuration, compliance_api};

let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();

let result = compliance_api::post_compliance_subjects(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.ComplianceApi;

ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));

var result = new ComplianceApi(client).postComplianceSubjects();
curl -X POST https://api.hanzo.ai/v1/compliance/subjects \
  -H "Authorization: Bearer $HANZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
       "email": "<email>",
       "kind": "<kind>"
     }'

MCP reaches compliance through the compliance tool, which names its 16 operations with its own verbs — this one among them, under a name only MCP declares. describe explains any of them:

curl -X POST https://api.hanzo.ai/v1/mcp \
  -H "Content-Type: application/json" \
  -d '{
       "jsonrpc": "2.0",
       "id": 1,
       "method": "tools/call",
       "params": {
         "name": "describe",
         "arguments": {
           "op": "get_compliance_accreditation"
         }
       }
     }'

Compliance API · All Hanzo APIs · Interactive reference

Was this page useful?