OUTCOME · Create or advance
What changes
Creates or advances only the vasp credential resource described by this contract after authorization, validation, policy, and idempotency gates pass.
Transfer compliance
/api/v2/transfer-compliance/vasp-credentialsPurpose and usage
Create a pending institutional credential commitment for issuer review.
When to use it
Call this when a transfer originator, beneficiary integration, VASP, compliance reviewer, or disclosure agent needs to apply the documented vasp credential transition after re-reading the current authoritative state so it can satisfy the minimum applicable counterparty, credential, wallet-control, preparation, decision, and disclosure requirements for one transfer lifecycle.
OUTCOME · Create or advance
Creates or advances only the vasp credential resource described by this contract after authorization, validation, policy, and idempotency gates pass.
WHY IT MATTERS
ISOLATION + AUTHORITY
Owner, workspace, counterparty, VASP, credential issuer, wallet controller, transfer, reviewer, disclosure recipient, purpose, and retention boundaries remain distinct. A credential, preparation, decision, manifest, envelope, disclosure, or Explorer record neither moves value nor substitutes for wallet authorization, sanctions policy, rail admission, settlement, or finality.
BEFORE YOU CALL
WHAT TO DO NEXT
AGENT GUIDANCE
Use the deployed OpenAPI for exact parameters, schemas and security requirements. The tables below provide integration guidance.
Open this operation in OpenAPIRequest and response
Examples illustrate integration intent; the referenced OpenAPI operation and component schemas define the executable shape.
PARAMETERS
AuthorizationheaderRequiredBearer tokenCredential containing the compliance:write scope.EXAMPLEBearer hc_live_…
Idempotency-KeyheaderRequiredASCII string · 1–128Caller-generated key reused for every retry of the same logical mutation.EXAMPLElaunch-treasury-v1-001
Content-TypeheaderRequiredapplication/jsonSigned mutations accept canonical JSON only.EXAMPLEapplication/json
Content-DigestheaderRequiredRFC 9530 SHA-256 digestDigest of the exact transmitted body bytes.EXAMPLEsha-256=:47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=:
Signature-InputheaderRequiredRFC 9421 signature parametersCovers @method, @path, content-digest, content-type, and idempotency-key; includes keyid, nonce, created, and expires.EXAMPLEsig1=("@method" "@path" "content-digest" "content-type" "idempotency-key");created=1786582800;expires=1786583100;nonce="01J…";keyid="machine-prod"
SignatureheaderRequiredEd25519 HTTP Message SignatureSignature made by an active public key registered to the authenticated client.EXAMPLEsig1=:base64-signature:
didbodyRequiredDID · max 255Institutional DID submitted as a candidate.EXAMPLEdid:web:vasp.example
jurisdictionbodyOptionaljurisdiction identifier · max 16Operating jurisdiction; defaults to GLOBAL.EXAMPLECH
legal_entity_identifierbodyOptionalnon-whitespace string · max 96Optional LEI or comparable institutional identifier.EXAMPLE529900EXAMPLE
regulatory_statusbodyOptionalidentifier · max 32Claimed posture; defaults to UNVERIFIED and remains untrusted until separately reviewed.EXAMPLELICENSED
REQUEST
{
"did": "did:web:vasp.example",
"jurisdiction": "CH",
"legal_entity_identifier": "529900EXAMPLE",
"regulatory_status": "LICENSED"
}RESPONSES
{
"credential_id": "ffffffffffffffffffffffffffffffff",
"legal_entity_identifier": "529900EXAMPLE",
"did": "did:web:vasp.example",
"jurisdiction": "CH",
"regulatory_status": "LICENSED",
"credential_commitment": "7777777777777777777777777777777777777777777777777777777777777777",
"status": "PENDING",
"valid_until": null,
"revoked_at": null,
"created_at": "2026-09-01T18:00:00Z",
"updated_at": "2026-09-01T18:00:00Z"
}{
"code": "invalid_json",
"message": "The JSON body or required signed headers are malformed."
}invalid_json{
"code": "invalid_credentials",
"message": "The bearer credential or RFC 9421 request signature is missing, expired, replayed, or invalid."
}invalid_credentials{
"code": "insufficient_scope",
"message": "The credential lacks the required compliance:write or compliance:review scope."
}insufficient_scope{
"code": "transfer_compliance_conflict",
"message": "The Idempotency-Key conflicts with another request or the requested lifecycle transition is forbidden."
}transfer_compliance_conflict{
"code": "invalid_transfer_compliance_command",
"message": "An identifier, field, commitment, public key, evidence object, or Idempotency-Key is outside the documented contract."
}invalid_transfer_compliance_command{
"code": "transfer_compliance_unavailable",
"message": "The authoritative Core transfer-compliance command boundary is unavailable."
}transfer_compliance_unavailableOPERATIONAL NOTES
This route is implemented in canonical gateway source and appears in the production OpenAPI snapshot observed 2026-10-02T23:27:55.510Z. Authentication, tenant, feature, venue, and market policy still apply.
Verify the exact production OpenAPI operation Return to the V2 directory