Submit compliance decision
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://api-staging.keystoneos.xyz/v1/settlements/{settlement_id}/compliance-decision', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api-staging.keystoneos.xyz/v1/settlements/{settlement_id}/compliance-decision"
payload = {}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)curl --request POST \
--url https://api-staging.keystoneos.xyz/v1/settlements/{settlement_id}/compliance-decision \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{}'{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"idempotency_key": "<string>",
"platform_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"environment_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"template_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"template_version": 123,
"external_reference": "<string>",
"settlement_type": "<string>",
"parties": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"role": "<string>",
"platform_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"environment_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"external_reference": "<string>",
"name": "<string>",
"wallet_address": "<string>",
"chain_id": 123,
"status": "<string>",
"confirmed_at": "2023-11-07T05:31:56Z",
"wallet_address_hint": "<string>",
"counterparty_reference": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
],
"legs": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"settlement_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"leg_index": 123,
"leg_type": "<string>",
"instrument_id": "<string>",
"chain_id": 123,
"token_standard": "<string>",
"quantity": "<string>",
"direction": "<string>",
"party_role": "<string>",
"status": "<string>",
"external_reference": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"recipient_party_role": "<string>"
}
],
"state": "<string>",
"timeout_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"timeout_claimable": true,
"trade_type": "<string>",
"linked_settlement_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"coordinator": "<string>",
"coordinator_chain": "<string>",
"triggered_by": {},
"audit_anchor_hash": "<string>",
"repo_terms": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"settlement_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"tenor_days": 123,
"rate_bps": 123,
"haircut_bps": 123,
"margin_band_lower": "<string>",
"margin_band_upper": "<string>",
"close_leg_settlement_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Settlements
Submit compliance decision
Submit a manual compliance decision for a settlement awaiting compliance review. Used by the platform’s compliance officer after reviewing a FLAGGED settlement.
- approve - advances along the machine’s happy path (COMPLIANCE_CLEARED). Requires screening evidence: a recorded screening outcome for every party from every provider the template requires. A settlement parked because screening was deferred (provider outage) cannot be approved - re-run screening instead.
- reject - routes to the machine’s failure target (REJECTED). Never requires screening evidence.
POST
/
v1
/
settlements
/
{settlement_id}
/
compliance-decision
Submit compliance decision
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://api-staging.keystoneos.xyz/v1/settlements/{settlement_id}/compliance-decision', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api-staging.keystoneos.xyz/v1/settlements/{settlement_id}/compliance-decision"
payload = {}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)curl --request POST \
--url https://api-staging.keystoneos.xyz/v1/settlements/{settlement_id}/compliance-decision \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{}'{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"idempotency_key": "<string>",
"platform_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"environment_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"template_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"template_version": 123,
"external_reference": "<string>",
"settlement_type": "<string>",
"parties": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"role": "<string>",
"platform_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"environment_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"external_reference": "<string>",
"name": "<string>",
"wallet_address": "<string>",
"chain_id": 123,
"status": "<string>",
"confirmed_at": "2023-11-07T05:31:56Z",
"wallet_address_hint": "<string>",
"counterparty_reference": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
],
"legs": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"settlement_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"leg_index": 123,
"leg_type": "<string>",
"instrument_id": "<string>",
"chain_id": 123,
"token_standard": "<string>",
"quantity": "<string>",
"direction": "<string>",
"party_role": "<string>",
"status": "<string>",
"external_reference": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"recipient_party_role": "<string>"
}
],
"state": "<string>",
"timeout_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"timeout_claimable": true,
"trade_type": "<string>",
"linked_settlement_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"coordinator": "<string>",
"coordinator_chain": "<string>",
"triggered_by": {},
"audit_anchor_hash": "<string>",
"repo_terms": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"settlement_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"tenor_days": 123,
"rate_bps": 123,
"haircut_bps": 123,
"margin_band_lower": "<string>",
"margin_band_upper": "<string>",
"close_leg_settlement_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
Auth0 JWT access token. See Authentication for details.
Path Parameters
Body
application/json
Available options:
approve, reject Response
Successful Response
Show child attributes
Show child attributes
Show child attributes
Show child attributes
True when the deadline passed while the settlement's exit still belonged to the chain (deposits pending). The contract accepts deposits and execution strictly before the deadline, so the settlement can no longer execute; where it is registered on-chain, either party can call the permissionless claimTimeout to resolve it, then claimRefund per deposited leg. KeyStone never calls claimTimeout itself.
Show child attributes
Show child attributes